The freshness test measures how long before the end of the evaluation window the data
source last received data. If you add filters to the test, only data matching them counts.
The result is shown as Age, in the unit you choose, and you set a threshold on it — for
example, that the data source received data within the last 6 hours.Openlayer measures the age at the end of each
evaluation window, not when the test runs, so
re-running a past window gives the same result.
A data source that stops receiving data fails silently: most tests skip a window with no
data, so nothing alerts you that traffic or a pipeline stopped.
The freshness test turns “no data for too long” into a failing test, so you hear about an
outage, a broken integration, or a stalled job as soon as it exceeds your tolerance.
It needs no knowledge of your schema, which makes it a good default test on every
monitored data source.
Unit: the time unit the age and the threshold are expressed in — minutes, hours,
days, or weeks. The age is fractional, so with hours, 90 minutes is 1.5.
Empty windows still evaluate. The age comes from the data source’s ingestion history,
not from the rows in the window, so a window with no data reports how long it has been
since data last arrived.
Windows before any data arrived are skipped with “No data received yet.” When the test
has filters, the message is “No data matching the filters received yet.”
The age reflects when Openlayer received the data, not timestamps inside it. To measure
how recent the values in a datetime column are, use the
column freshness test.
The freshness test supports automatic thresholds. Use an upper
bound — Upper only in the UI, or operator <= in tests.json — since a growing age is
what signals a problem. Freshness adjusts automatic thresholds in three ways:
The upper bound is never lower than one evaluation window. A data source that streams
constantly sits near an age of zero, and a bound that tight would fail on every short gap.
For example, with a daily evaluation window and hours as the unit, the upper bound is at
least 24.
The test fails once a whole window passes without data, even before there is enough
history to forecast. Until then, the upper bound is one evaluation window, instead of the
test passing by default.
An ongoing outage doesn’t teach the forecast to expect it. The windows since the data
source last received data are left out of the history, so the bound doesn’t grow along
with the outage. Earlier gaps stay in, so a data source that syncs on a schedule still
learns its rhythm.
The freshness test relies on Openlayer recording when each row arrives. On data sources where
that isn’t recorded, such as tables connected from a data warehouse, the test is skipped with
“Freshness isn’t supported for this data backend. Use column freshness to measure a datetime
column instead.” Use the column freshness test on a column
that records when each row was written.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Openlayer","colors":{"primary":"#592FEA","light":"#7A58EE","dark":"#7A58EE"},"logo":{"light":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132","dark":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand-dark.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=7b5e924f18a184a4444ec36e2a23b061","href":"https://openlayer.com"},"favicon":"https://mintcdn.com/openlayer-44/kSF2u3BEB6ygCIR0/favicon.svg?fit=max\u0026auto=format\u0026n=kSF2u3BEB6ygCIR0\u0026q=85\u0026s=956d0871161771d155ff4903add290e5","api":{"openapi":["api-reference/openapi.yaml"],"playground":{"display":"none"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.openlayer.com/v1"}},"appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.gg/t6wS2g6MMB","label":"Community"},{"href":"https://app.openlayer.com/?login=true","label":"Log in"}],"primary":{"type":"button","label":"Get started","href":"https://app.openlayer.com/"}},"footer":{"socials":{"discord":"https://discord.gg/t6wS2g6MMB","linkedin":"https://www.linkedin.com/company/openlayerco","twitter":"https://twitter.com/openlayerco"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"mixpanel":{"projectToken":"401ce9e4de4663c33009eb3d140d3945"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openlayer-44","hasAudioNarration":false,"actualSubdomain":"openlayer-44","customDomains":["docs.openlayer.com"],"gitSource":{"type":"github","owner":"openlayer-ai","repo":"openlayer-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af22577cb304b659132be7d","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":197},{"language":"default","tag":"Tests","count":122},{"language":"default","tag":"Catalog","count":111},{"language":"default","tag":"Reference","count":91},{"language":"default","tag":"REST API","count":64},{"language":"default","tag":"Integrations","count":62},{"language":"default","tag":"Governance","count":35},{"language":"default","tag":"Observability","count":23},{"language":"default","tag":"CLI","count":19},{"language":"default","tag":"No-Code Platforms","count":18}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"tests/catalog/freshness","slug":"/tests/catalog/freshness","pageMetadata":{"title":"Freshness","description":"Learn how to use the freshness test to detect when a data source stops receiving data","href":"/tests/catalog/freshness"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to use the freshness test to detect when a data source stops receiving data\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Tooltip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`definition`,children:`Definition`}),`\n`,_jsxs(_components.p,{children:[`The freshness test measures how long before the end of the evaluation window the data\nsource last received data. If you add filters to the test, only data matching them counts.\nThe result is shown as `,_jsx(_components.strong,{children:`Age`}),`, in the unit you choose, and you set a threshold on it — for\nexample, that the data source received data within the last 6 hours.`]}),`\n`,_jsxs(_components.p,{children:[`Openlayer measures the age at the end of each\n`,_jsx(_components.a,{href:`/monitoring/evaluation-and-delay-windows`,children:`evaluation window`}),`, not when the test runs, so\nre-running a past window gives the same result.`]}),`\n`,_jsx(Heading,{level:`2`,id:`taxonomy`,children:`Taxonomy`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Task types`}),`: LLM, tabular classification, tabular regression, text classification.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Availability`}),`: `,_jsx(Tooltip,{tip:`Monitor a model in production, measure its health, check for drifts and set up alerts.`,children:`monitoring`}),` only.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`This test is only available in monitoring mode, as it reads when data arrived\nin a monitored data source.`})}),`\n`,_jsx(Heading,{level:`2`,id:`why-it-matters`,children:`Why it matters`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A data source that stops receiving data fails silently: most tests skip a window with no\ndata, so nothing alerts you that traffic or a pipeline stopped.`}),`\n`,_jsx(_components.li,{children:`The freshness test turns “no data for too long” into a failing test, so you hear about an\noutage, a broken integration, or a stalled job as soon as it exceeds your tolerance.`}),`\n`,_jsx(_components.li,{children:`It needs no knowledge of your schema, which makes it a good default test on every\nmonitored data source.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`parameters`,children:`Parameters`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unit`}),`: the time unit the age and the threshold are expressed in — `,_jsx(_components.code,{children:`minutes`}),`, `,_jsx(_components.code,{children:`hours`}),`,\n`,_jsx(_components.code,{children:`days`}),`, or `,_jsx(_components.code,{children:`weeks`}),`. The age is fractional, so with `,_jsx(_components.code,{children:`hours`}),`, 90 minutes is `,_jsx(_components.code,{children:`1.5`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-windows-are-evaluated`,children:`How windows are evaluated`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Empty windows still evaluate.`}),` The age comes from the data source’s ingestion history,\nnot from the rows in the window, so a window with no data reports how long it has been\nsince data last arrived.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Windows before any data arrived are skipped`}),` with “No data received yet.” When the test\nhas filters, the message is “No data matching the filters received yet.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The age reflects when Openlayer received the data`}),`, not timestamps inside it. To measure\nhow recent the values in a datetime column are, use the\n`,_jsx(_components.a,{href:`/tests/catalog/column-freshness`,children:`column freshness test`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`automatic-thresholds`,children:`Automatic thresholds`}),`\n`,_jsxs(_components.p,{children:[`The freshness test supports `,_jsx(_components.a,{href:`/tests/test-configuration`,children:`automatic thresholds`}),`. Use an upper\nbound — `,_jsx(_components.strong,{children:`Upper only`}),` in the UI, or operator `,_jsx(_components.code,{children:`\u003c=`}),` in `,_jsx(_components.code,{children:`tests.json`}),` — since a growing age is\nwhat signals a problem. Freshness adjusts automatic thresholds in three ways:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The upper bound is never lower than one evaluation window.`}),` A data source that streams\nconstantly sits near an age of zero, and a bound that tight would fail on every short gap.\nFor example, with a daily evaluation window and `,_jsx(_components.code,{children:`hours`}),` as the unit, the upper bound is at\nleast `,_jsx(_components.code,{children:`24`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The test fails once a whole window passes without data, even before there is enough\nhistory to forecast.`}),` Until then, the upper bound is one evaluation window, instead of the\ntest passing by default.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`An ongoing outage doesn’t teach the forecast to expect it.`}),` The windows since the data\nsource last received data are left out of the history, so the bound doesn’t grow along\nwith the outage. Earlier gaps stay in, so a data source that syncs on a schedule still\nlearns its rhythm.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`unsupported-data-sources`,children:`Unsupported data sources`}),`\n`,_jsxs(_components.p,{children:[`The freshness test relies on Openlayer recording when each row arrives. On data sources where\nthat isn’t recorded, such as tables connected from a data warehouse, the test is skipped with\n“Freshness isn’t supported for this data backend. Use column freshness to measure a datetime\ncolumn instead.” Use the `,_jsx(_components.a,{href:`/tests/catalog/column-freshness`,children:`column freshness test`}),` on a column\nthat records when each row was written.`]}),`\n`,_jsx(Heading,{level:`2`,id:`test-configuration-examples`,children:`Test configuration examples`}),`\n`,_jsxs(_components.p,{children:[`If you are writing a `,_jsx(_components.code,{children:`tests.json`}),`, here are a few valid configurations for the freshness test:`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Monitoring - Automatic threshold`,numberOfLines:`23`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Data source keeps receiving data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Fails when the age of the latest data exceeds the learned upper bound\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"integrity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subtype\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thresholds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"insightName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"insightParameters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"unit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hours\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"measurement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"operator\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003c=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thresholdMode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"automatic\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subpopulationFilters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"monitoring\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usesProductionData\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"evaluationWindow\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"delayWindow\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"syncId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b4dee7dc-4f15-48ca-a282-63e2c04e0689\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Monitoring - Manual threshold`,numberOfLines:`24`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Data received within the last 6 hours\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Fails when the data source hasn't received data for more than 6 hours\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"integrity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subtype\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thresholds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"insightName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"insightParameters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"unit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hours\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"measurement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"freshness\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"operator\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003c=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thresholdMode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"manual\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subpopulationFilters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"monitoring\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usesProductionData\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"evaluationWindow\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"delayWindow\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"syncId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"96622fba-ea00-4e42-8f42-5e8f5f60805f\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/tests/catalog/column-freshness`,children:`Column freshness`}),` — how recent the values in a datetime column are, available in development and monitoring.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/tests/catalog/row-count`,children:`Number of rows`}),` — how much data arrived in a window, rather than when it last arrived.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/monitoring/evaluation-and-delay-windows`,children:`Evaluation and delay windows`}),` — how windows are defined.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Freshness","description":"Learn how to use the freshness test to detect when a data source stops receiving data","href":"/tests/catalog/freshness"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Definition","slug":"definition","depth":2,"children":[]},{"title":"Taxonomy","slug":"taxonomy","depth":2,"children":[]},{"title":"Why it matters","slug":"why-it-matters","depth":2,"children":[]},{"title":"Parameters","slug":"parameters","depth":2,"children":[]},{"title":"How windows are evaluated","slug":"how-windows-are-evaluated","depth":2,"children":[]},{"title":"Automatic thresholds","slug":"automatic-thresholds","depth":2,"children":[]},{"title":"Unsupported data sources","slug":"unsupported-data-sources","depth":2,"children":[]},{"title":"Test configuration examples","slug":"test-configuration-examples","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openlayer-44/a85e4a0a43b4a6e9/.eslintrc.js"],"subdomain":"openlayer-44","siteName":"Openlayer","title":"Freshness - Openlayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T22:33:29.766Z","originalFileLocation":"tests/catalog/freshness.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how to use the freshness test to detect when a data source stops receiving data\">\u003cmeta data-mint-head name=\"application-name\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Freshness - Openlayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to use the freshness test to detect when a data source stops receiving data\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Openlayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openlayer.com/tests/catalog/freshness\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=Catalog\u0026amp;title=Freshness\u0026amp;description=Learn+how+to+use+the+freshness+test+to+detect+when+a+data+source+stops+receiving+data\u0026amp;theme=dc1887e9bfb53e32e10ca56c\u0026amp;signature=56f564bb70be469d6583a7a2e50ce611f4f5f61f8f809c64d10795e1ec01fe51\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Freshness - Openlayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to use the freshness test to detect when a data source stops receiving data\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=Catalog\u0026amp;title=Freshness\u0026amp;description=Learn+how+to+use+the+freshness+test+to+detect+when+a+data+source+stops+receiving+data\u0026amp;theme=dc1887e9bfb53e32e10ca56c\u0026amp;signature=56f564bb70be469d6583a7a2e50ce611f4f5f61f8f809c64d10795e1ec01fe51\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#592FEA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openlayer.com/tests/catalog/freshness\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tests/catalog/freshness.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openlayer.com/#organization\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openlayer.com#website\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openlayer.com/tests/catalog/freshness#webpage\",\"url\":\"https://docs.openlayer.com/tests/catalog/freshness\",\"name\":\"Freshness\",\"description\":\"Learn how to use the freshness test to detect when a data source stops receiving data\",\"dateModified\":\"2026-10-19T22:33:29.766Z\",\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openlayer.com/tests/catalog/freshness#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openlayer.com/tests/catalog/freshness#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tests\",\"item\":\"https://docs.openlayer.com/tests/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Catalog\",\"item\":\"https://docs.openlayer.com/tests/catalog/accuracy\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Freshness\",\"item\":\"https://docs.openlayer.com/tests/catalog/freshness\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openlayer.com/tests/catalog/freshness#article\",\"headline\":\"Freshness\",\"name\":\"Freshness\",\"description\":\"Learn how to use the freshness test to detect when a data source stops receiving data\",\"url\":\"https://docs.openlayer.com/tests/catalog/freshness\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openlayer.com/tests/catalog/freshness#webpage\"},\"dateModified\":\"2026-10-19T22:33:29.766Z\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Openlayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Openlayer","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get started","pages":[{"title":"Introduction","mode":"wide","icon":"album","href":"/introduction"}]},{"group":"Workspace setup","pages":[{"title":"Workspace dashboard","icon":"layout-dashboard","href":"/workspace-and-projects/workspace-dashboard"},{"group":"Projects","icon":"folder","pages":[{"title":"Create a project","hidden":false,"href":"/workspace-and-projects/creating-and-loading-projects"},{"title":"Project dashboards","href":"/workspace-and-projects/project-dashboards"}]},{"title":"Create an API key","icon":"key-round","href":"/workspace-and-projects/find-your-api-key"},{"title":"Plans and usage","icon":"gauge","href":"/workspace-and-projects/plans-and-usage"}]},{"group":"Governance","pages":[{"title":"Overview","icon":"landmark","hidden":false,"href":"/governance/overview"},{"group":"Set up a framework","icon":"rocket","pages":[{"title":"Activate a built-in framework","hidden":false,"href":"/governance/activate-framework"},{"title":"Build a custom framework","hidden":false,"href":"/governance/build-custom-framework"}]},{"group":"Understand requirements","icon":"book-open-check","pages":[{"title":"How frameworks map to requirements","hidden":false,"href":"/governance/framework-requirements"},{"title":"Platform rules","hidden":false,"href":"/governance/platform-rules"},{"title":"Evidence-based rules","hidden":false,"href":"/governance/evidence-based-rules"}]},{"group":"Track compliance","icon":"chart-bar","pages":[{"title":"Track compliance across your workspace","hidden":false,"href":"/governance/workspace-compliance"},{"title":"Track compliance within a project","hidden":false,"href":"/governance/project-compliance"},{"title":"Use the governance API","href":"/governance/api-access"}]},{"title":"Define intake and risk forms","icon":"clipboard-list","href":"/governance/intake-and-risk-forms"},{"title":"Project lifecycle","icon":"refresh-cw","href":"/governance/project-lifecycle"}]},{"group":"Observability","pages":[{"title":"Overview","icon":"telescope","href":"/monitoring/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Instrument your code","hidden":false,"href":"/monitoring/instrument"},{"title":"Other integration paths","href":"/monitoring/alternative-integrations"}]},{"group":"Enrich traces","icon":"grid-2x2-plus","pages":[{"title":"Add metadata to traces","href":"/monitoring/metadata"},{"title":"Custom columns","href":"/monitoring/custom-columns"},{"title":"Trace multimodal data","href":"/monitoring/multimodal"},{"title":"Track users and sessions","href":"/monitoring/sessions-and-users"},{"title":"Log context for RAG systems","href":"/monitoring/context"},{"title":"Redact PII","href":"/monitoring/pii-redaction"},{"title":"Log question for RAG systems","href":"/monitoring/question"},{"title":"Update existing traces","href":"/monitoring/updating-data"}]},{"group":"Beyond traces","icon":"binoculars","pages":[{"title":"Publish traditional ML predictions","href":"/monitoring/publishing-tabular-predictions"},{"title":"Upload a reference dataset","href":"/monitoring/uploading-reference-dataset"}]},{"group":"Concepts","icon":"book-open","pages":[{"title":"Evaluation and delay windows","href":"/monitoring/evaluation-and-delay-windows"},{"title":"LLM cost estimation","href":"/monitoring/cost-estimation"}]},{"group":"Guardrails","icon":"shield-alert","pages":[{"title":"Overview","hidden":false,"href":"/guardrails/overview"}]},{"title":"AI-generated summaries","icon":"sparkles","href":"/monitoring/ai-summaries"},{"title":"Export data","icon":"download","href":"/monitoring/export-data"}]},{"group":"Offline testing","pages":[{"title":"Overview","icon":"git-commit-vertical","href":"/development/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Push and poll using the Openlayer CLI","href":"/guides/cli-push"}]},{"group":"Configure","icon":"braces","pages":[{"title":"openlayer.json","href":"/development/openlayer-json"},{"title":"tests.json","href":"/development/tests-json"},{"title":"Configuring output generation","href":"/development/configuring-output-generation"}]},{"group":"Custom CI/CD setups","icon":"git-compare","pages":[{"title":"GitHub Actions with Openlayer","href":"/guides/gh-actions"}]}]},{"group":"Tests","pages":[{"title":"Overview","hidden":false,"icon":"list-checks","href":"/tests/overview"},{"title":"Browse tests","mode":"frame","icon":"scan-search","href":"/tests/browse"},{"group":"Catalog","icon":"notebook","pages":[{"title":"Accuracy","hidden":false,"href":"/tests/catalog/accuracy"},{"title":"Aggregate metrics","hidden":false,"href":"/tests/catalog/aggregate-metrics"},{"title":"Anomalous column count","hidden":false,"href":"/tests/catalog/anomalous-column-count"},{"title":"Answer correctness","hidden":false,"href":"/tests/catalog/answer-correctness"},{"title":"Answer relevancy","hidden":false,"href":"/tests/catalog/answer-relevancy"},{"title":"Bias","hidden":false,"href":"/tests/catalog/bias"},{"title":"BLEU score","hidden":false,"href":"/tests/catalog/bleu-score"},{"title":"Character length","hidden":false,"href":"/tests/catalog/character-length"},{"title":"Class imbalance ratio","hidden":false,"href":"/tests/catalog/class-imbalance-ratio"},{"title":"Coherence","hidden":false,"href":"/tests/catalog/coherence"},{"title":"Column average","hidden":false,"href":"/tests/catalog/column-average"},{"title":"Column drift","hidden":false,"href":"/tests/catalog/column-drift"},{"title":"Column freshness","href":"/tests/catalog/column-freshness"},{"title":"Column statistics","hidden":false,"href":"/tests/catalog/column-statistic"},{"title":"Column values match","hidden":false,"href":"/tests/catalog/column-values-match"},{"title":"Conciseness","hidden":false,"href":"/tests/catalog/conciseness"},{"title":"Conflicting labels","hidden":false,"href":"/tests/catalog/conflicting-label-count"},{"title":"Contains PII","hidden":false,"href":"/tests/catalog/contains-p-i-i"},{"title":"Valid URLs","hidden":false,"href":"/tests/catalog/contains-valid-url"},{"title":"Context recall","hidden":false,"href":"/tests/catalog/context-recall"},{"title":"Context relevancy","hidden":false,"href":"/tests/catalog/context-relevancy"},{"title":"Context utilization","hidden":false,"href":"/tests/catalog/context-utilization"},{"title":"Correctness","hidden":false,"href":"/tests/catalog/correctness"},{"title":"Correlated features","hidden":false,"href":"/tests/catalog/correlated-feature-count"},{"title":"Data type validation","hidden":false,"href":"/tests/catalog/dtype-validation"},{"title":"Duplicate rows","hidden":false,"href":"/tests/catalog/duplicate-count"},{"title":"Edit distance","hidden":false,"href":"/tests/catalog/edit-distance"},{"title":"Empty features","hidden":false,"href":"/tests/catalog/empty-feature"},{"title":"Empty feature count","hidden":false,"href":"/tests/catalog/empty-feature-count"},{"title":"Exact match","hidden":false,"href":"/tests/catalog/exact-match"},{"title":"Column contains string","hidden":false,"href":"/tests/catalog/expect-column-a-to-be-in-column-b"},{"title":"F1 score","hidden":false,"href":"/tests/catalog/f1"},{"title":"Faithfulness","hidden":false,"href":"/tests/catalog/faithfulness"},{"title":"False positive rate","hidden":false,"href":"/tests/catalog/false-positive-rate"},{"title":"Feature drift","hidden":false,"href":"/tests/catalog/feature-drift-count"},{"title":"Feature values","hidden":false,"href":"/tests/catalog/feature-values"},{"title":"Features missing values","hidden":false,"description":"Learn how to use the features missing values test","href":"/tests/catalog/features-missing-values"},{"title":"Freshness","href":"/tests/catalog/freshness"},{"title":"Geometric mean","hidden":false,"description":"Learn how to use the geometric mean test","href":"/tests/catalog/geometric-mean"},{"title":"Great expectations","hidden":false,"href":"/tests/catalog/great-expectations"},{"title":"Groundedness","hidden":false,"href":"/tests/catalog/groundedness"},{"title":"Group by column statistic","hidden":false,"href":"/tests/catalog/group-by-column-statistic"},{"title":"Group metric parity","href":"/tests/catalog/group-metric-parity"},{"title":"Group outcome disparity","href":"/tests/catalog/group-outcome-disparity"},{"title":"Group performance parity","href":"/tests/catalog/group-performance-parity"},{"title":"Group score disparity","href":"/tests/catalog/group-score-disparity"},{"title":"Hallucination","hidden":false,"href":"/tests/catalog/hallucination"},{"title":"Harmfulness","hidden":false,"href":"/tests/catalog/harmfulness"},{"title":"Has prompt injection","hidden":false,"href":"/tests/catalog/has-prompt-injection-count"},{"title":"Ill-formed rows","hidden":false,"href":"/tests/catalog/ill-formed-count"},{"title":"Is code","hidden":false,"href":"/tests/catalog/is-code"},{"title":"Is JSON","hidden":false,"href":"/tests/catalog/is-json"},{"title":"Jev-as-a-judge","href":"/tests/catalog/jev-as-a-judge-threshold"},{"title":"JSON score","hidden":false,"href":"/tests/catalog/json-score"},{"title":"LLM-as-a-judge","hidden":false,"href":"/tests/catalog/l-l-m-rubric-threshold"},{"title":"Label/target drift","hidden":false,"href":"/tests/catalog/label-drift"},{"title":"Log loss","hidden":false,"href":"/tests/catalog/log-loss"},{"title":"Mean absolute error (MAE)","hidden":false,"href":"/tests/catalog/mae"},{"title":"Maliciousness","hidden":false,"href":"/tests/catalog/maliciousness"},{"title":"Mean absolute percentage error (MAPE)","hidden":false,"href":"/tests/catalog/mape"},{"title":"Max cost","hidden":false,"href":"/tests/catalog/max-cost"},{"title":"Max latency","hidden":false,"href":"/tests/catalog/max-latency"},{"title":"Max tokens","hidden":false,"href":"/tests/catalog/max-tokens"},{"title":"Mean cost","hidden":false,"href":"/tests/catalog/mean-cost"},{"title":"Mean latency","hidden":false,"href":"/tests/catalog/mean-latency"},{"title":"Mean tokens","hidden":false,"href":"/tests/catalog/mean-tokens"},{"title":"Median latency","hidden":false,"href":"/tests/catalog/median-latency"},{"title":"Min latency","hidden":false,"href":"/tests/catalog/min-latency"},{"title":"Mean squared error (MSE)","hidden":false,"href":"/tests/catalog/mse"},{"title":"New categories","hidden":false,"href":"/tests/catalog/new-category-count"},{"title":"New labels","hidden":false,"href":"/tests/catalog/new-label-count"},{"title":"Null rows","hidden":false,"href":"/tests/catalog/null-count"},{"title":"90th latency percentile","hidden":false,"href":"/tests/catalog/p90-latency"},{"title":"95th latency percentile","hidden":false,"href":"/tests/catalog/p95-latency"},{"title":"99th latency percentile","hidden":false,"href":"/tests/catalog/p99-latency"},{"title":"Predictive power score (PPS)","hidden":false,"href":"/tests/catalog/pp-score-value-validation"},{"title":"Precision","hidden":false,"href":"/tests/catalog/precision"},{"title":"Quasi-constant features","hidden":false,"href":"/tests/catalog/quasi-constant-feature"},{"title":"Quasi-constant feature count","hidden":false,"href":"/tests/catalog/quasi-constant-feature-count"},{"title":"Quasi-exact match","hidden":false,"href":"/tests/catalog/quasi-exact-match"},{"title":"R-squared","hidden":false,"href":"/tests/catalog/r2"},{"title":"Recall","hidden":false,"href":"/tests/catalog/recall"},{"title":"Recommends competitor","hidden":false,"href":"/tests/catalog/recommends-competitor"},{"title":"Root mean squared error (RMSE)","hidden":false,"href":"/tests/catalog/rmse"},{"title":"ROC AUC","hidden":false,"href":"/tests/catalog/roc-auc"},{"title":"Number of rows","hidden":false,"href":"/tests/catalog/row-count"},{"title":"Semantic similarity","hidden":false,"href":"/tests/catalog/semantic-similarity"},{"title":"Sentence length","hidden":false,"href":"/tests/catalog/sentence-length"},{"title":"Session coherence","hidden":false,"href":"/tests/catalog/session-coherence"},{"title":"Session context retention","hidden":false,"href":"/tests/catalog/session-context-retention"},{"title":"Session conversation completeness","hidden":false,"href":"/tests/catalog/session-conversation-completeness"},{"title":"Session cost","hidden":false,"href":"/tests/catalog/session-cost"},{"title":"Session duration","hidden":false,"href":"/tests/catalog/session-duration"},{"title":"Session goal achievement","hidden":false,"href":"/tests/catalog/session-goal-achievement"},{"title":"Session guideline adherence","hidden":false,"href":"/tests/catalog/session-guideline-adherence"},{"title":"Session latency","hidden":false,"href":"/tests/catalog/session-latency"},{"title":"Session record count","hidden":false,"href":"/tests/catalog/session-record-count"},{"title":"Session role adherence","hidden":false,"href":"/tests/catalog/session-role-adherence"},{"title":"Session task progression","hidden":false,"href":"/tests/catalog/session-task-progression"},{"title":"Session token count","hidden":false,"href":"/tests/catalog/session-token-count"},{"title":"Session turn relevancy","hidden":false,"href":"/tests/catalog/session-turn-relevancy"},{"title":"Size ratio","hidden":false,"href":"/tests/catalog/size-ratio"},{"title":"Special characters ratio","hidden":false,"href":"/tests/catalog/special-characters-ratio"},{"title":"SQL query","hidden":false,"href":"/tests/catalog/sql-query"},{"title":"SQL query return rows","hidden":false,"href":"/tests/catalog/sql-query-return-rows"},{"title":"String validation","hidden":false,"href":"/tests/catalog/string-validation"},{"title":"Total cost","hidden":false,"href":"/tests/catalog/total-cost"},{"title":"Total tokens","hidden":false,"href":"/tests/catalog/total-tokens"},{"title":"Toxicity","hidden":false,"href":"/tests/catalog/toxicity"},{"title":"Training-validation leakage","hidden":false,"href":"/tests/catalog/train-val-leakage-count"},{"title":"Unauthorized tool calls","hidden":false,"href":"/tests/catalog/unauthorized-tool-calls"}]},{"title":"Tests configuration","hidden":false,"icon":"settings-2","href":"/tests/test-configuration"},{"title":"Manage tests","icon":"list-todo","href":"/tests/manage-tests"},{"title":"Semantic search filters","icon":"text-search","href":"/tests/semantic-search-filters"},{"title":"Custom metrics","icon":"pencil-line","href":"/tests/custom-metrics"}]},{"group":"Gateway","pages":[{"title":"Overview","icon":"route","href":"/gateway/overview"},{"group":"Set up \u0026 connect","icon":"plug","pages":[{"title":"Set up the gateway","href":"/gateway/set-up-the-gateway"},{"title":"Make your first request","href":"/gateway/make-your-first-request"}]},{"group":"Manage API keys","icon":"key-round","pages":[{"title":"Create API keys","href":"/gateway/api-keys"},{"title":"Assign groups","href":"/gateway/groups"},{"title":"Send invites","href":"/gateway/invites"}]},{"group":"Budgets \u0026 usage","icon":"wallet","pages":[{"title":"Set usage limits","href":"/gateway/budgets-and-limits"},{"title":"Track usage","href":"/gateway/usage-and-cost"}]},{"title":"Guardrails","icon":"shield-alert","href":"/gateway/guardrails"},{"title":"Model access","icon":"boxes","href":"/gateway/model-access"},{"title":"Observability","icon":"activity","href":"/gateway/observability"},{"title":"Errors","icon":"circle-alert","href":"/gateway/errors"},{"group":"Routing","icon":"waypoints","pages":[{"title":"Connect providers","href":"/gateway/connect-providers"},{"title":"Route requests","href":"/gateway/route-requests"},{"title":"Use any model from any SDK","href":"/gateway/use-any-model"}]}]},{"group":"Data quality monitoring","pages":[{"title":"Overview","icon":"database-zap","href":"/data-quality-monitoring/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Connect a data source","hidden":false,"href":"/data-quality-monitoring/connect-data-source"}]},{"group":"Concepts","icon":"book-open","pages":[{"title":"Anomaly detection","href":"/data-quality-monitoring/anomaly-detection"}]}]},{"group":"Administration","pages":[{"title":"Security","icon":"lock","href":"/security"},{"title":"Data regions","icon":"globe","href":"/security/data-residency"},{"title":"Roles and permissions","icon":"shield-check","href":"/security/roles-and-permissions"},{"title":"SAML SSO Authentication","icon":"scan-face","href":"/security/saml-sso"},{"title":"Multi-factor Authentication","icon":"shield-check","href":"/security/multi-factor-authentication"},{"title":"Access groups","icon":"users","href":"/security/access-groups"},{"title":"Environment Variables","icon":"hexagon","href":"/security/environment-variables"},{"title":"Data retention","icon":"clock","href":"/workspace-and-projects/data-retention"}]},{"group":"Notifications","pages":[{"title":"Overview","icon":"bell","href":"/notifications/overview"},{"title":"In-app notifications","icon":"inbox","href":"/notifications/in-app"},{"title":"Email notifications","icon":"mail","href":"/notifications/email"},{"title":"Slack notifications","icon":"message-square","href":"/notifications/slack"},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Overview","href":"/security/webhooks/overview"},{"title":"Manage webhooks","href":"/security/webhooks/manage-webhooks"},{"title":"Events and payloads","href":"/security/webhooks/events"},{"title":"Verify signatures","href":"/security/webhooks/verify-signatures"}]}]},{"group":"Other resources","pages":[{"title":"Glossary","icon":"case-sensitive","href":"/glossary"},{"title":"Openlayer MCP","icon":"audio-waveform","href":"/openlayer-mcp"},{"title":"Openlayer Agent Skills","icon":"wand-sparkles","href":"/openlayer-skills"},{"group":"Code examples","icon":"code","pages":[{"title":"Templates","href":"/examples/templates"},{"title":"Monitoring","href":"/examples/monitoring"}]}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Freshness - Openlayer","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}