Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.
Exclusive end of the requested range, in UTC without a timezone suffix. Must be later than
fromDate. History without a comparison can cover at most 180 project-local calendar days.
With a comparison, each period can cover at most 90 calendar days and the full range can cover
at most 181 days, including any gap. The extra day allows two 90-day periods to keep matching
weekdays when the baseline starts 91 days earlier.
Saved filter to apply (format svf-<number>), or none for unfiltered data. Omitted: the
project's default saved filter (unfiltered when none is set). A saved filter given here replaces the
default; it is never combined with it. The response's savedFilter says which filter was applied, or
that it was not applicable to the series (then the data is unfiltered). filters apply within the saved filter (AND).
Filter on the series' dimensions and custom tags, in the condition format of saved filters
(saved-filter-v1, see observeSavedFilterCondition), e.g. {"dimension":"osName","notIn":["iOS",null]}.
Combined (AND) with the saved filter and filters; filters.applicationIDs, osNames, browserNames,
osVersions, touchpoints and customTags are compatibility shorthands for conditions of this kind (not
extended; use condition). Unlike the saved filter, a condition that reads a dimension or custom tag the
series does not carry is rejected (400). Together with those filters (the saved filter does not count), the
limits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).
Required for single-position bucket history. Mutually exclusive with selections. Omission requires selections with output totals, or output positions (selections optional there).
Use buckets to follow one selected position over time, with optional cohort breakdowns and period
comparison. Use totals to get counts and rates for several selected positions without time buckets,
comparisons or breakdowns. Use positions to compare two periods across selected positions and find
additional routes whose traffic increased, decreased or began or ended partway through a period.
Positions requires daily intervals and two comparison periods, accepts no breakdowns and returns the
overall funnel comparison in root and individual results in positions.
Positions to compare or total together. Use with totals or positions output, without selection.
With totals, non-root results appear in nodes and the root remains the top-level result.
With positions, requested results appear in positions alongside any additional discovered routes.
Requested positions are included even when they have no traffic.
Optional daily comparison. Both periods must be nonempty, contained within the request range, and baseline must end no later than current starts. Unequal lengths are supported. Periods do not change the daily chart or full-range totals.
Compare cohorts at the selected position, such as browsers or applications. Each dimension is a
separate breakdown of the same filtered traffic and may appear only once. Omit values to include
the groups observed in the requested range. Results from different dimensions can overlap and
should not be added together. The total number of group values across dimensions, multiplied by
the number of time buckets, must not exceed 100000.
Full-period metrics calculated from merged counts/histograms. All values are null when candidate paths could not be interpreted. Counts and totals then cover decoded records only.
Which saved filter shaped the response: none (none requested, or the project has no default),
applied, or notApplicable when the data does not carry a dimension or custom tag the filter reads
(listed in missing); then the data is returned unfiltered.
Present only for batched totals. Explicitly requested non-root node/edge positions in deterministic semantic-prefix order, each with empty buckets and no nested nodes. The top-level result is the root. Unparseable source rows conservatively invalidate all position metrics. No silent truncation.
Output positions only. Requested selections first (request order), then discovered non-stable positions by volume. Counts and summaries equal output totals for the same period and selection.
Independent results for a breakdowns request, in request order. An empty groups array means no values passed the requested support screen. Omit breakdowns for baseline metrics only.
Calculation timings and processed-cell counts. Shard timings overlap and must not be added as end-to-end latency.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Corbado docs","colors":{"primary":"#184aff","light":"#629eff","dark":"#184aff"},"logo":{"light":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-light.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=decbc139fa76d9eeee8dcfbe91ed2094","dark":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-dark.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=398183bb6eb303cda3062b080363672b"},"favicon":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/favicon.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=7e718008fe38fabeacb4a3d75472a491","navbar":{"links":[{"href":"mailto:support@corbado.com","label":"Support"}],"primary":{"type":"button","label":"Start for free","href":"https://app.corbado.com/"}},"footer":{"socials":{"twitter":"https://twitter.com/corbadotech","linkedin":"https://www.linkedin.com/company/corbado"}},"integrations":{"hotjar":{"hjid":"3375029","hjsv":"6"},"koala":{"publicApiKey":"pk_ca0e031974819fc6f69a82b884ff6f1cb661"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://bit.ly/passkeys-community"},{"anchor":"GitHub","icon":"github","href":"https://github.com/corbado"},{"anchor":"Blog","icon":"newspaper","href":"https://www.corbado.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"corbado-43","hasAudioNarration":false,"actualSubdomain":"corbado-43","customDomains":["docs.corbado.com"],"gitSource":{"type":"github","owner":"corbadotech","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec3e1525c041b786079735","collectionId":"dfcf9d0e-3ac9-4252-a39b-21a2d577fca8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec3e1525c041b786079735"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aedee1cde69105c4467d729","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"API Reference","count":184},{"language":"default","tag":"Corbado Connect","count":155},{"language":"default","tag":"Corbado Observe","count":137},{"language":"default","tag":"API endpoints","count":91},{"language":"default","tag":"Backend API","count":69},{"language":"default","tag":"Passkey UI Flows","count":32},{"language":"default","tag":"Alert management","count":23},{"language":"default","tag":"Overview","count":17},{"language":"default","tag":"Web","count":16},{"language":"default","tag":"Analytics and configuration","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"vite-origin","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":"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":[{"filePath":"style.css","content":"html{scroll-behavior:smooth!important}.pk-accent{fill:#184aff}.dark .pk-accent{fill:#629eff}.pk-accent-text{fill:#184aff}.dark .pk-accent-text{fill:#629eff}.pk-node{cursor:pointer;transition:opacity 0.15s ease}.pk-node:hover{opacity:0.72}.observe-visual-light,.observe-visual-dark,.connect-visual-light,.connect-visual-dark{width:100%;height:auto}.observe-visual-light,.connect-visual-light{display:block}.observe-visual-dark,.connect-visual-dark{display:none}.dark .observe-visual-light,.dark .connect-visual-light{display:none}.dark .observe-visual-dark,.dark .connect-visual-dark{display:block}"}],"page":{"pagePath":"api-reference/observe/funnel-metrics","slug":"/api-reference/observe/funnel-metrics","pageMetadata":{"title":"Calculate historical metrics for an exact journey position","description":"Required API key permission: `observe:timeSeries:read`.","deprecated":null,"version":null,"sidebarTitle":"Funnel metrics","openapi":"/api-reference/openapi/observe.yaml post /observe/funnel/metricSeries","href":"/api-reference/observe/funnel-metrics","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Required API key permission: \", _jsx(_components.code, {\n children: \"observe:timeSeries:read\"\n }), \".\"]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Calculate historical metrics for an exact journey position","description":"Required API key permission: `observe:timeSeries:read`.","deprecated":null,"version":null,"sidebarTitle":"Funnel metrics","openapi":"/api-reference/openapi/observe.yaml post /observe/funnel/metricSeries","href":"/api-reference/observe/funnel-metrics","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/corbado-43/07f8b5952369ac3b/content/matomo.js","/_mintlify/custom/corbado-43/3de72dcbd84a772a/content/linkedin-insight-tag.js","/_mintlify/custom/corbado-43/674dd5320b6b99a7/content/commonroom.js"],"openApiReferenceData":{"operation":{"x-mint":{"href":"/api-reference/observe/funnel-metrics"},"summary":"Calculate historical metrics for an exact journey position","operationId":"ObserveFunnelMetricSeriesGet","tags":["ObserveFunnel"],"security":["1005bf1c-f694-485b-bfad-9e3a014a60a6"],"requestBody":"de21b4a1-57b7-44d8-a976-62bee46482ef","responses":{"200":"84b6a683-d590-4b5d-a484-fbab0cfe8587","400":"ae9ec562-7bef-45bd-bff5-c3573420baa1","429":"468a47b7-c66e-4ca8-a978-48b10f4df487"},"description":"Required API key permission: `observe:timeSeries:read`.","method":"post","type":"path","servers":["22c3014f-9385-4d0c-83b4-842924313628"],"path":"/observe/funnel/metricSeries","baseUrlOptions":["https://api.cloud.corbado.io/v1"],"title":"Calculate historical metrics for an exact journey position","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["schemaVersion","name","fromDate","toDate","interval","metrics"],"properties":{"schemaVersion":{"type":"string","enum":["funnel-metric-v1"],"isRequired":true,"uniqueKey":"schemaVersion","typeLabel":"enum\u003cstring>"},"name":{"type":"string","enum":["login-flow-v1","signup-flow-v1","recovery-flow-v1","security-enrollment-flow-v1"],"isRequired":true,"uniqueKey":"name","typeLabel":"enum\u003cstring>"},"fromDate":{"type":"string","description":"Inclusive UTC-naive datetime, YYYY-MM-DDTHH:mm:ss; aligned to project bucket boundaries","isRequired":true,"uniqueKey":"fromDate","typeLabel":"string"},"toDate":{"type":"string","description":"Exclusive end of the requested range, in UTC without a timezone suffix. Must be later than\nfromDate. History without a comparison can cover at most 180 project-local calendar days.\nWith a comparison, each period can cover at most 90 calendar days and the full range can cover\nat most 181 days, including any gap. The extra day allows two 90-day periods to keep matching\nweekdays when the baseline starts 91 days earlier.","isRequired":true,"uniqueKey":"toDate","typeLabel":"string"},"interval":{"type":"string","enum":["daily","hourly"],"isRequired":true,"uniqueKey":"interval","typeLabel":"enum\u003cstring>"},"metrics":{"type":"array","minItems":1,"maxItems":19,"items":{"type":"string","enum":["flowsReached","attemptsReached","occurrences","eventualCompletionRate","attemptCompletionRate","flowErrorRate","retriedFlowRate","eventualCompletionTime","subflowCompletionRate","completedHereRate","dropoffRate","retryHereRate","continueRate","completedHereTime","stepErrorRate","edgeShare","eventualSkipRate","eventualDropoffRate","skippedHereRate"],"uniqueKey":"metrics.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"metrics","typeLabel":"enum\u003cstring>[]"},"savedFilterID":{"type":"string","description":"Saved filter to apply (format `svf-\u003cnumber>`), or `none` for unfiltered data. Omitted: the\nproject's default saved filter (unfiltered when none is set). A saved filter given here replaces the\ndefault; it is never combined with it. The response's `savedFilter` says which filter was applied, or\nthat it was not applicable to the series (then the data is unfiltered). `filters` apply within the saved filter (AND).","example":"svf-123456","x-oapi-codegen-extra-tags":{"validate":"omitempty,max=40"},"uniqueKey":"savedFilterID","typeLabel":"string"},"condition":{"oneOf":[{"type":"object","title":"all","description":"Filter on the series' dimensions and custom tags, in the condition format of saved filters\n(`saved-filter-v1`, see `observeSavedFilterCondition`), e.g. `{\"dimension\":\"osName\",\"notIn\":[\"iOS\",null]}`.\nCombined (AND) with the saved filter and `filters`; `filters.applicationIDs`, `osNames`, `browserNames`,\n`osVersions`, `touchpoints` and `customTags` are compatibility shorthands for conditions of this kind (not\nextended; use `condition`). Unlike the saved filter, a condition that reads a dimension or custom tag the\nseries does not carry is rejected (400). Together with those filters (the saved filter does not count), the\nlimits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["all"],"x-go-type":"json.RawMessage","properties":{"all":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true,"uniqueKey":"condition.oneOf.0.all","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.0","typeLabel":"all · object"},{"type":"object","title":"any","description":"Filter on the series' dimensions and custom tags, in the condition format of saved filters\n(`saved-filter-v1`, see `observeSavedFilterCondition`), e.g. `{\"dimension\":\"osName\",\"notIn\":[\"iOS\",null]}`.\nCombined (AND) with the saved filter and `filters`; `filters.applicationIDs`, `osNames`, `browserNames`,\n`osVersions`, `touchpoints` and `customTags` are compatibility shorthands for conditions of this kind (not\nextended; use `condition`). Unlike the saved filter, a condition that reads a dimension or custom tag the\nseries does not carry is rejected (400). Together with those filters (the saved filter does not count), the\nlimits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["any"],"x-go-type":"json.RawMessage","properties":{"any":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true,"uniqueKey":"condition.oneOf.1.any","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.1","typeLabel":"any · object"},{"type":"object","title":"not","description":"Filter on the series' dimensions and custom tags, in the condition format of saved filters\n(`saved-filter-v1`, see `observeSavedFilterCondition`), e.g. `{\"dimension\":\"osName\",\"notIn\":[\"iOS\",null]}`.\nCombined (AND) with the saved filter and `filters`; `filters.applicationIDs`, `osNames`, `browserNames`,\n`osVersions`, `touchpoints` and `customTags` are compatibility shorthands for conditions of this kind (not\nextended; use `condition`). Unlike the saved filter, a condition that reads a dimension or custom tag the\nseries does not carry is rejected (400). Together with those filters (the saved filter does not count), the\nlimits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["not"],"x-go-type":"json.RawMessage","properties":{"not":{"oneOf":[{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25","isRequired":true}],"isRequired":true,"uniqueKey":"condition.oneOf.2.not","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.2","typeLabel":"not · object"},{"type":"object","title":"dimension","description":"Filter on the series' dimensions and custom tags, in the condition format of saved filters\n(`saved-filter-v1`, see `observeSavedFilterCondition`), e.g. `{\"dimension\":\"osName\",\"notIn\":[\"iOS\",null]}`.\nCombined (AND) with the saved filter and `filters`; `filters.applicationIDs`, `osNames`, `browserNames`,\n`osVersions`, `touchpoints` and `customTags` are compatibility shorthands for conditions of this kind (not\nextended; use `condition`). Unlike the saved filter, a condition that reads a dimension or custom tag the\nseries does not carry is rejected (400). Together with those filters (the saved filter does not count), the\nlimits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["dimension"],"x-go-type":"json.RawMessage","properties":{"dimension":{"type":"string","enum":["application","osName","osVersion","browserName","touchpoint","visitorType"],"isRequired":true,"uniqueKey":"condition.oneOf.3.dimension","typeLabel":"enum\u003cstring>"},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.3.in.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.3.in.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.3.in.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.3.in","typeLabel":"(string | null)[]"},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.3.notIn","typeLabel":"(string | null)[]"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.3","typeLabel":"dimension · object"},{"type":"object","title":"tag","description":"Filter on the series' dimensions and custom tags, in the condition format of saved filters\n(`saved-filter-v1`, see `observeSavedFilterCondition`), e.g. `{\"dimension\":\"osName\",\"notIn\":[\"iOS\",null]}`.\nCombined (AND) with the saved filter and `filters`; `filters.applicationIDs`, `osNames`, `browserNames`,\n`osVersions`, `touchpoints` and `customTags` are compatibility shorthands for conditions of this kind (not\nextended; use `condition`). Unlike the saved filter, a condition that reads a dimension or custom tag the\nseries does not carry is rejected (400). Together with those filters (the saved filter does not count), the\nlimits of saved filter definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["tag"],"x-go-type":"json.RawMessage","properties":{"tag":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"condition.oneOf.4.tag","typeLabel":"string"},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.4.in.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.4.in.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.4.in.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.4.in","typeLabel":"(string | null)[]"},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.4.notIn","typeLabel":"(string | null)[]"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.4","typeLabel":"tag · object"}],"uniqueKey":"condition","typeLabel":"all · object | any · object | not · object | dimension · object | tag · object"},"selection":{"type":"object","description":"Required for single-position bucket history. Mutually exclusive with selections. Omission requires selections with output totals, or output positions (selections optional there).","required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true,"uniqueKey":"selection.kind","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true,"uniqueKey":"selection.scope","typeLabel":"enum\u003cstring>"},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selection.prefix.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selection.prefix.items.[INDEX].decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selection.prefix.items.[INDEX].subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selection.prefix.items.[INDEX].flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selection.prefix.items.[INDEX].specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selection.prefix.items.[INDEX].terminalType","typeLabel":"enum\u003cstring>"}},"uniqueKey":"selection.prefix.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"selection.prefix","typeLabel":"object[]"},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selection.destination.kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selection.destination.decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selection.destination.subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selection.destination.flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selection.destination.specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selection.destination.terminalType","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"selection.destination","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"selection","typeLabel":"object"},"output":{"type":"string","enum":["buckets","totals","positions"],"default":"buckets","description":"Use buckets to follow one selected position over time, with optional cohort breakdowns and period\ncomparison. Use totals to get counts and rates for several selected positions without time buckets,\ncomparisons or breakdowns. Use positions to compare two periods across selected positions and find\nadditional routes whose traffic increased, decreased or began or ended partway through a period.\nPositions requires daily intervals and two comparison periods, accepts no breakdowns and returns the\noverall funnel comparison in root and individual results in positions.","uniqueKey":"output","typeLabel":"enum\u003cstring>"},"selections":{"type":"array","minItems":1,"maxItems":1000,"description":"Positions to compare or total together. Use with totals or positions output, without selection.\nWith totals, non-root results appear in nodes and the root remains the top-level result.\nWith positions, requested results appear in positions alongside any additional discovered routes.\nRequested positions are included even when they have no traffic.","items":{"type":"object","additionalProperties":false,"required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true,"uniqueKey":"selections.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true,"uniqueKey":"selections.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX].terminalType","typeLabel":"enum\u003cstring>"}},"uniqueKey":"selections.items.[INDEX].prefix.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"selections.items.[INDEX].prefix","typeLabel":"object[]"},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selections.items.[INDEX].destination.kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selections.items.[INDEX].destination.decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selections.items.[INDEX].destination.subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selections.items.[INDEX].destination.flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selections.items.[INDEX].destination.specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selections.items.[INDEX].destination.terminalType","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"selections.items.[INDEX].destination","typeLabel":"object"}},"uniqueKey":"selections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"selections","typeLabel":"object[]"},"comparison":{"type":"object","additionalProperties":false,"required":["baseline","current"],"description":"Optional daily comparison. Both periods must be nonempty, contained within the request range, and baseline must end no later than current starts. Unequal lengths are supported. Periods do not change the daily chart or full-range totals.","properties":{"baseline":{"type":"object","additionalProperties":false,"required":["fromDate","toDate"],"properties":{"fromDate":{"type":"string","description":"Inclusive UTC-naive datetime aligned to a project calendar-day boundary","isRequired":true,"uniqueKey":"comparison.baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","description":"Exclusive UTC-naive datetime aligned to a project calendar-day boundary","isRequired":true,"uniqueKey":"comparison.baseline.toDate","typeLabel":"string"}},"isRequired":true,"uniqueKey":"comparison.baseline","typeLabel":"object"},"current":{"type":"object","additionalProperties":false,"required":["fromDate","toDate"],"properties":{"fromDate":{"type":"string","description":"Inclusive UTC-naive datetime aligned to a project calendar-day boundary","isRequired":true,"uniqueKey":"comparison.current.fromDate","typeLabel":"string"},"toDate":{"type":"string","description":"Exclusive UTC-naive datetime aligned to a project calendar-day boundary","isRequired":true,"uniqueKey":"comparison.current.toDate","typeLabel":"string"}},"isRequired":true,"uniqueKey":"comparison.current","typeLabel":"object"}},"uniqueKey":"comparison","typeLabel":"object"},"discovery":{"type":"object","additionalProperties":false,"description":"With positions output, include additional routes whose traffic changed, even when they are absent from the current funnel view.","properties":{"maxExtra":{"type":"integer","minimum":0,"maximum":1000,"default":200,"description":"Maximum additional positions to return, with the busiest first. extrasTruncated reports\nhow many qualifying positions were omitted.","uniqueKey":"discovery.maxExtra","typeLabel":"integer"},"minFlows":{"type":"number","format":"double","minimum":0,"default":1000,"description":"Minimum flow count per seven days for traffic classification, scaled to each period's length.","uniqueKey":"discovery.minFlows","typeLabel":"number\u003cdouble>"},"maxDepth":{"type":"integer","minimum":1,"description":"Maximum number of steps from the start when finding additional positions. Also limits which\npositions can exclude flows from the like-for-like comparison. Requested positions are still\nevaluated in full.","uniqueKey":"discovery.maxDepth","typeLabel":"integer"}},"uniqueKey":"discovery","typeLabel":"object"},"filters":{"type":"object","additionalProperties":false,"description":"Values within a dimension are ORed; dimensions are ANDed. Omitted filters mean all. Null includes rows where a supported dimension is absent or empty.","properties":{"browserHierarchy":{"type":"object","additionalProperties":false,"required":["mode","section","browser"],"properties":{"mode":{"type":"string","enum":["os","device"],"isRequired":true,"uniqueKey":"filters.browserHierarchy.mode","typeLabel":"enum\u003cstring>"},"section":{"type":"string","maxLength":512,"minLength":1,"isRequired":true,"uniqueKey":"filters.browserHierarchy.section","typeLabel":"string"},"browser":{"type":"string","maxLength":512,"minLength":1,"isRequired":true,"uniqueKey":"filters.browserHierarchy.browser","typeLabel":"string"}},"description":"Exact existing OS/browser or derived-device/browser cohort. Unknown labels use (unknown); device sections are desktop, mobile or other.","uniqueKey":"filters.browserHierarchy","typeLabel":"object"},"applicationIDs":{"type":"array","x-go-type":"[]*string","maxItems":100,"description":"Application IDs in `app-\u003cnumber>` format, scoped to the authenticated project. Time-series panels expose\nthe numeric portion as dimensions.applicationId; clients must prefix those string values with app- when\nbuilding this filter. Values are ORed and applied before aggregation to buckets, totals, comparisons,\nbreakdowns and batched selections. Omitted or empty means all applications; valid IDs without matching\nproject data return zero counts. Null includes rows without an application ID.","items":{"oneOf":[{"type":"string","uniqueKey":"filters.applicationIDs.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"filters.applicationIDs.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.applicationIDs.items.[INDEX]","typeLabel":"string | null"},"example":["app-12345678910"],"uniqueKey":"filters.applicationIDs","typeLabel":"(string | null)[]"},"osNames":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"filters.osNames.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"filters.osNames.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.osNames.items.[INDEX]","typeLabel":"string | null"},"x-go-type":"[]*string","uniqueKey":"filters.osNames","typeLabel":"(string | null)[]"},"browserNames":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"filters.browserNames.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"filters.browserNames.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.browserNames.items.[INDEX]","typeLabel":"string | null"},"x-go-type":"[]*string","uniqueKey":"filters.browserNames","typeLabel":"(string | null)[]"},"osVersions":{"type":"array","items":{"type":"string","uniqueKey":"filters.osVersions.items.[INDEX]","typeLabel":"string"},"uniqueKey":"filters.osVersions","typeLabel":"string[]"},"touchpoints":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"filters.touchpoints.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"filters.touchpoints.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.touchpoints.items.[INDEX]","typeLabel":"string | null"},"x-go-type":"[]*string","uniqueKey":"filters.touchpoints","typeLabel":"(string | null)[]"},"customTags":{"type":"object","x-go-type":"map[string][]*string","description":"Physical slots customTag1..20; slot names resolved via project configuration. Null includes absent or empty values.","additionalProperties":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"filters.customTags.additionalProperties.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"filters.customTags.additionalProperties.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.customTags.additionalProperties.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"filters.customTags.additionalProperties","typeLabel":"(string | null)[]"},"uniqueKey":"filters.customTags","typeLabel":"object"},"outcomes":{"type":"array","items":{"type":"string","enum":["complete","incomplete","skipped","invisible","visible-auto-skip"],"uniqueKey":"filters.outcomes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"filters.outcomes","typeLabel":"enum\u003cstring>[]"},"engagement":{"type":"string","enum":["all","engaged","non-engaged"],"uniqueKey":"filters.engagement","typeLabel":"enum\u003cstring>"},"attemptNumbers":{"type":"array","items":{"type":"string","enum":["1","2","3","4+"],"uniqueKey":"filters.attemptNumbers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"filters.attemptNumbers","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"filters","typeLabel":"object"},"breakdowns":{"type":"array","minItems":1,"maxItems":30,"description":"Compare cohorts at the selected position, such as browsers or applications. Each dimension is a\nseparate breakdown of the same filtered traffic and may appear only once. Omit values to include\nthe groups observed in the requested range. Results from different dimensions can overlap and\nshould not be added together. The total number of group values across dimensions, multiplied by\nthe number of time buckets, must not exceed 100000.","items":{"type":"object","additionalProperties":false,"required":["dimension"],"description":"Subsets of the already filtered population. The top-level baseline retains other and missing values. One scan calculates all requested groups. Box dimensions require a subflow target and return occurrence-based boxShare values; flow membership may overlap across retries. boxLeaf accepts one JSON-encoded selector with group and optional secondary field/value or authenticator exclusions, and returns focused occurrence metrics.","properties":{"dimension":{"type":"string","enum":["os","browser","os-browser","device-browser","applicationID","customTag1","customTag2","customTag3","customTag4","customTag5","customTag6","customTag7","customTag8","customTag9","customTag10","customTag11","customTag12","customTag13","customTag14","customTag15","customTag16","customTag17","customTag18","customTag19","customTag20","boxOutcome","boxProvider","boxAutofillType","boxFieldName","boxLeaf"],"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].dimension","typeLabel":"enum\u003cstring>"},"omitEmpty":{"type":"boolean","default":false,"description":"Omit groups with no target or source observations across the whole range. Does not remove low-volume groups.","uniqueKey":"breakdowns.items.[INDEX].omitEmpty","typeLabel":"boolean"},"minWeeklyObservations":{"type":"integer","minimum":0,"description":"Optional daily-only traffic screen after merging. With comparison, uses completed calendar days in its two periods, scaled by completed days / 7. Without comparison, checks the first and last seven days. Zero disables it.","uniqueKey":"breakdowns.items.[INDEX].minWeeklyObservations","typeLabel":"integer"},"values":{"description":"In a breakdowns request, omit values to discover and return every observed nonempty value while calculating the selected population. Explicit lists restrict the returned groups. boxLeaf requires explicit values. All discovered groups share the 100000 group-bucket budget; exceeding it returns an error, never silent truncation.","type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"string","maxLength":512,"minLength":1,"uniqueKey":"breakdowns.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"uniqueKey":"breakdowns.items.[INDEX].values","typeLabel":"string[]"}},"uniqueKey":"breakdowns.items.[INDEX]","typeLabel":"object"},"uniqueKey":"breakdowns","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"schemaVersion":"funnel-metric-v1","fromDate":"\u003cstring>","toDate":"\u003cstring>","metrics":[],"savedFilterID":"svf-123456","condition":{"all":"\u003carray>"},"output":"buckets","selections":[{"prefix":[{"decisionID":"\u003cstring>","flowType":"\u003cstring>","specType":"\u003cstring>"}]}],"discovery":{"maxExtra":200,"minFlows":1000,"maxDepth":2},"filters":{"applicationIDs":["app-12345678910"],"osNames":["\u003cstring>"],"browserNames":["\u003cstring>"],"osVersions":["\u003cstring>"],"touchpoints":["\u003cstring>"],"customTags":{},"outcomes":[],"attemptNumbers":[]},"breakdowns":[{"omitEmpty":false,"minWeeklyObservations":1,"values":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"84b6a683-d590-4b5d-a484-fbab0cfe8587":{"description":"Daily or hourly metrics, including empty buckets","content":{"application/json":{"schema":{"type":"object","required":["schemaVersion","projectID","name","timeZone","timeBasis","selection","buckets","totals","summary","coverage"],"properties":{"schemaVersion":{"type":"string","isRequired":true,"uniqueKey":"schemaVersion","typeLabel":"string"},"projectID":{"type":"string","isRequired":true,"uniqueKey":"projectID","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"timeZone":{"type":"string","isRequired":true,"uniqueKey":"timeZone","typeLabel":"string"},"timeBasis":{"type":"string","enum":["flow-start"],"isRequired":true,"uniqueKey":"timeBasis","typeLabel":"enum\u003cstring>"},"selection":{"type":"object","additionalProperties":false,"required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true,"uniqueKey":"selection.kind","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true,"uniqueKey":"selection.scope","typeLabel":"enum\u003cstring>"},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selection.prefix.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selection.prefix.items.[INDEX].decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selection.prefix.items.[INDEX].subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selection.prefix.items.[INDEX].flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selection.prefix.items.[INDEX].specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selection.prefix.items.[INDEX].terminalType","typeLabel":"enum\u003cstring>"}},"uniqueKey":"selection.prefix.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"selection.prefix","typeLabel":"object[]"},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"selection.destination.kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"selection.destination.decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"selection.destination.subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"selection.destination.flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"selection.destination.specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"selection.destination.terminalType","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"selection.destination","typeLabel":"object"}},"isRequired":true,"uniqueKey":"selection","typeLabel":"object"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"totals","typeLabel":"object"},"summary":{"type":"object","description":"Full-period metrics calculated from merged counts/histograms. All values are null when candidate paths could not be interpreted. Counts and totals then cover decoded records only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"summary","typeLabel":"object"},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","format":"date-time","uniqueKey":"buckets.items.[INDEX].time","typeLabel":"string\u003cdate-time>"},"counts":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"buckets.items.[INDEX].counts.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"buckets.items.[INDEX].counts.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"buckets.items.[INDEX].counts.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"buckets.items.[INDEX].counts.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"buckets.items.[INDEX].counts.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"buckets.items.[INDEX].counts.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"buckets.items.[INDEX].counts.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"buckets.items.[INDEX].counts.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"buckets.items.[INDEX].counts.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"buckets.items.[INDEX].counts.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].counts.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"buckets.items.[INDEX].counts.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"uniqueKey":"buckets.items.[INDEX].counts","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","description":"Nonzero makes every metric in this bucket unavailable","uniqueKey":"buckets.items.[INDEX].unparsedRows","typeLabel":"integer\u003cint64>"},"unparsedWeight":{"type":"number","format":"double","description":"Candidate flow weight that could not be interpreted","uniqueKey":"buckets.items.[INDEX].unparsedWeight","typeLabel":"number\u003cdouble>"},"values":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"buckets.items.[INDEX].values.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"buckets.items.[INDEX].values.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"uniqueKey":"buckets.items.[INDEX].values","typeLabel":"object"}},"uniqueKey":"buckets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"buckets","typeLabel":"object[]"},"coverage":{"type":"object","properties":{"firstBucket":{"type":"string","format":"date-time","uniqueKey":"coverage.firstBucket","typeLabel":"string\u003cdate-time>"},"endExclusive":{"type":"string","format":"date-time","uniqueKey":"coverage.endExclusive","typeLabel":"string\u003cdate-time>"},"snapshotDate":{"type":"string","format":"date","uniqueKey":"coverage.snapshotDate","typeLabel":"string\u003cdate>"},"completeWindow":{"type":"boolean","description":"Bounds lie within recorded coverage; not a completeness guarantee for every interior bucket","uniqueKey":"coverage.completeWindow","typeLabel":"boolean"},"notes":{"type":"array","items":{"type":"string","uniqueKey":"coverage.notes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"coverage.notes","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"coverage","typeLabel":"object"},"savedFilter":{"type":"object","description":"Which saved filter shaped the response: `none` (none requested, or the project has no default),\n`applied`, or `notApplicable` when the data does not carry a dimension or custom tag the filter reads\n(listed in `missing`); then the data is returned unfiltered.","required":["status"],"properties":{"status":{"type":"string","enum":["none","applied","notApplicable"],"isRequired":true,"uniqueKey":"savedFilter.status","typeLabel":"enum\u003cstring>"},"savedFilterID":{"type":"string","description":"Saved filter ID (format `svf-\u003cnumber>`); absent for `none`.","uniqueKey":"savedFilter.savedFilterID","typeLabel":"string"},"version":{"type":"integer","format":"int64","description":"Version of the saved filter's definition that was read.","uniqueKey":"savedFilter.version","typeLabel":"integer\u003cint64>"},"name":{"type":"string","uniqueKey":"savedFilter.name","typeLabel":"string"},"source":{"type":"string","description":"`default`: the project's default saved filter; `explicit`: requested by `savedFilterID`.","enum":["default","explicit"],"uniqueKey":"savedFilter.source","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"What the data does not carry, for `notApplicable`.","items":{"type":"object","description":"A dimension (schema name, e.g. `visitorType`) or a custom tag key a saved filter reads.","properties":{"dimension":{"type":"string","uniqueKey":"savedFilter.missing.items.[INDEX].dimension","typeLabel":"string"},"tag":{"type":"string","uniqueKey":"savedFilter.missing.items.[INDEX].tag","typeLabel":"string"}},"uniqueKey":"savedFilter.missing.items.[INDEX]","typeLabel":"object"},"uniqueKey":"savedFilter.missing","typeLabel":"object[]"}},"uniqueKey":"savedFilter","typeLabel":"object"},"nodes":{"type":"array","description":"Present only for batched totals. Explicitly requested non-root node/edge positions in deterministic semantic-prefix order, each with empty buckets and no nested nodes. The top-level result is the root. Unparseable source rows conservatively invalidate all position metrics. No silent truncation.","items":{"$circularRef":"80db29ac-eabe-41e4-8ffd-6ae5ad62589d"},"uniqueKey":"nodes","typeLabel":"array"},"root":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"root.baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"root.baseline.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"root.baseline.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"root.baseline.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"root.baseline.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"root.baseline.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"root.baseline.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"root.baseline.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"root.baseline.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"root.baseline.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"root.baseline.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"root.baseline.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"root.baseline.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"root.baseline.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.baseline.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"root.baseline.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"root.baseline.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"root.baseline.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"root.baseline.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"root.baseline.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"root.baseline.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"root.baseline.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"root.baseline.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"root.baseline","typeLabel":"object"},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"root.current.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"root.current.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"root.current.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"root.current.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"root.current.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"root.current.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"root.current.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"root.current.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"root.current.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"root.current.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"root.current.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"root.current.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"root.current.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.current.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.current.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"root.current.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"root.current.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"root.current.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"root.current.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"root.current.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"root.current.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"root.current.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"root.current.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.current.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"root.current.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.current.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"root.current.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"root.current.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"root.current.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.current.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.current.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.current.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.current.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"root.current.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"root.current.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"root.current.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"root.current.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"root.current.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"root.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"root.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"root.current.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"root.current.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"root.current.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"root.current.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"root.current.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"root.current.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"root.current","typeLabel":"object"},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","uniqueKey":"root.differences.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"root.differences.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.differences.additionalProperties","typeLabel":"number\u003cdouble> | null"},"isRequired":true,"uniqueKey":"root.differences","typeLabel":"object"},"likeForLike":{"type":"object","required":["baseline","current","differences","excludedFlows"],"description":"Overall funnel comparison after excluding flows that reach positions classified as increased, decreased, started-within-period or stopped-within-period. Use it alongside the full comparison to see how these routes affect the overall result. Includes flow counts and eventual completion, drop-off and skip rates. Omitted when either period contains paths that could not be interpreted. This comparison does not establish the cause of a change.","properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"root.likeForLike.baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"root.likeForLike.baseline.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"root.likeForLike.baseline.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"root.likeForLike.baseline.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"root.likeForLike.baseline.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"root.likeForLike.baseline.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"root.likeForLike.baseline.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"root.likeForLike.baseline.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"root.likeForLike.baseline.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"root.likeForLike.baseline.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"root.likeForLike.baseline.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"root.likeForLike.baseline.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"root.likeForLike.baseline.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"root.likeForLike.baseline.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"root.likeForLike.baseline.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"root.likeForLike.baseline","typeLabel":"object"},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"root.likeForLike.current.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"root.likeForLike.current.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"root.likeForLike.current.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"root.likeForLike.current.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"root.likeForLike.current.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"root.likeForLike.current.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"root.likeForLike.current.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"root.likeForLike.current.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"root.likeForLike.current.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"root.likeForLike.current.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"root.likeForLike.current.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"root.likeForLike.current.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"root.likeForLike.current.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"root.likeForLike.current.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"root.likeForLike.current.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"root.likeForLike.current.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"root.likeForLike.current.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"root.likeForLike.current.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"root.likeForLike.current.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"root.likeForLike.current.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"root.likeForLike.current","typeLabel":"object"},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","uniqueKey":"root.likeForLike.differences.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"root.likeForLike.differences.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"root.likeForLike.differences.additionalProperties","typeLabel":"number\u003cdouble> | null"},"isRequired":true,"uniqueKey":"root.likeForLike.differences","typeLabel":"object"},"excludedFlows":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.excludedFlows.baseline","typeLabel":"number\u003cdouble>"},"current":{"type":"number","format":"double","isRequired":true,"uniqueKey":"root.likeForLike.excludedFlows.current","typeLabel":"number\u003cdouble>"}},"isRequired":true,"uniqueKey":"root.likeForLike.excludedFlows","typeLabel":"object"}},"uniqueKey":"root.likeForLike","typeLabel":"object"}},"uniqueKey":"root","typeLabel":"object"},"positions":{"type":"array","description":"Output positions only. Requested selections first (request order), then discovered non-stable positions by volume. Counts and summaries equal output totals for the same period and selection.","items":{"type":"object","required":["selection","requested","trafficStatus","coverage","baseline","current","differences"],"properties":{"selection":{"type":"object","additionalProperties":false,"required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection.kind","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection.scope","typeLabel":"enum\u003cstring>"},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX].terminalType","typeLabel":"enum\u003cstring>"}},"uniqueKey":"positions.items.[INDEX].selection.prefix.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection.prefix","typeLabel":"object[]"},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection.destination.kind","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$","uniqueKey":"positions.items.[INDEX].selection.destination.decisionID","typeLabel":"string"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"positions.items.[INDEX].selection.destination.subflowType","typeLabel":"enum\u003cstring>"},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog","uniqueKey":"positions.items.[INDEX].selection.destination.flowType","typeLabel":"string"},"specType":{"type":"string","uniqueKey":"positions.items.[INDEX].selection.destination.specType","typeLabel":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix.","uniqueKey":"positions.items.[INDEX].selection.destination.terminalType","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"positions.items.[INDEX].selection.destination","typeLabel":"object"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].selection","typeLabel":"object"},"requested":{"type":"boolean","description":"True for request selections","isRequired":true,"uniqueKey":"positions.items.[INDEX].requested","typeLabel":"boolean"},"trafficStatus":{"type":"string","enum":["comparable","increased","decreased","started-within-period","stopped-within-period","insufficient-data"],"description":"Describes how traffic is distributed across completed calendar days in the two periods. Unfinished and future days are excluded from classification. A period with no completed days is insufficient-data. Totals and rates still include all received observations. These classifications are independent of changes in authentication performance.\n\n- increased: the current period has enough traffic, the baseline does not and baseline traffic per day is at most 25% of current traffic.\n- decreased: the baseline has enough traffic, the current period does not and current traffic per day is at most 25% of baseline traffic.\n- started-within-period: traffic is absent for at least two days at the start of one period, then averages at least 100 flows per active day. The other period has traffic at that edge.\n- stopped-within-period: the corresponding gap occurs at the end of one period.\n- comparable: both periods have enough traffic and neither has a qualifying start or end gap. Volume and completion rates may still differ.\n- insufficient-data: there is not enough evidence for another classification, or a positions request contains paths that could not be interpreted.\n\nEnough traffic means at least 1,000 flows per seven days, scaled to each period's length. For positions output, discovery.minFlows can change this threshold. Step-category groups use occurrences instead of flows.\nIncreased and decreased describe changes between low and substantial traffic; neither means the smaller period had zero traffic. They do not report every change in volume.","isRequired":true,"uniqueKey":"positions.items.[INDEX].trafficStatus","typeLabel":"enum\u003cstring>"},"coverage":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.baseline.days","typeLabel":"integer"},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.baseline.activeDays","typeLabel":"integer"},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.baseline.materialDays","typeLabel":"integer"},"volume":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.baseline.volume","typeLabel":"number\u003cdouble>"},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume","uniqueKey":"positions.items.[INDEX].coverage.baseline.firstDay","typeLabel":"string\u003cdate>"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume","uniqueKey":"positions.items.[INDEX].coverage.baseline.lastDay","typeLabel":"string\u003cdate>"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.baseline","typeLabel":"object"},"current":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.current.days","typeLabel":"integer"},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.current.activeDays","typeLabel":"integer"},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.current.materialDays","typeLabel":"integer"},"volume":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.current.volume","typeLabel":"number\u003cdouble>"},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume","uniqueKey":"positions.items.[INDEX].coverage.current.firstDay","typeLabel":"string\u003cdate>"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume","uniqueKey":"positions.items.[INDEX].coverage.current.lastDay","typeLabel":"string\u003cdate>"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage.current","typeLabel":"object"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].coverage","typeLabel":"object"},"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"positions.items.[INDEX].baseline.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"positions.items.[INDEX].baseline.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"positions.items.[INDEX].baseline.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"positions.items.[INDEX].baseline.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"positions.items.[INDEX].baseline.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"positions.items.[INDEX].baseline.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].baseline.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].baseline","typeLabel":"object"},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"positions.items.[INDEX].current.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"positions.items.[INDEX].current.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"positions.items.[INDEX].current.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"positions.items.[INDEX].current.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"positions.items.[INDEX].current.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"positions.items.[INDEX].current.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].current.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].current.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"positions.items.[INDEX].current.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"positions.items.[INDEX].current.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"positions.items.[INDEX].current","typeLabel":"object"},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","uniqueKey":"positions.items.[INDEX].differences.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"positions.items.[INDEX].differences.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].differences.additionalProperties","typeLabel":"number\u003cdouble> | null"},"isRequired":true,"uniqueKey":"positions.items.[INDEX].differences","typeLabel":"object"},"unavailableMetrics":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"positions.items.[INDEX].unavailableMetrics.additionalProperties","typeLabel":"string"},"description":"Discovered positions only. Requested metrics returned as null, with the reason. Request the position in selections for all metrics.","uniqueKey":"positions.items.[INDEX].unavailableMetrics","typeLabel":"object"},"availableCounters":{"type":"array","items":{"type":"string","uniqueKey":"positions.items.[INDEX].availableCounters.items.[INDEX]","typeLabel":"string"},"description":"Discovered positions only. The totals counters that are populated; all others are not calculated and read 0.","uniqueKey":"positions.items.[INDEX].availableCounters","typeLabel":"string[]"}},"uniqueKey":"positions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"positions","typeLabel":"object[]"},"extrasTruncated":{"type":"integer","description":"Output positions only. Discovered non-stable positions beyond discovery.maxExtra","uniqueKey":"extrasTruncated","typeLabel":"integer"},"comparison":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"comparison.baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"comparison.baseline.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"comparison.baseline.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"comparison.baseline.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"comparison.baseline.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"comparison.baseline.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"comparison.baseline.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"comparison.baseline.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"comparison.baseline.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"comparison.baseline.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"comparison.baseline.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"comparison.baseline.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"comparison.baseline.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"comparison.baseline.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"comparison.baseline.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"comparison.baseline.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"comparison.baseline.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"comparison.baseline.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"comparison.baseline.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"comparison.baseline.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"comparison.baseline.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"comparison.baseline","typeLabel":"object"},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"comparison.current.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"comparison.current.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"comparison.current.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"comparison.current.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"comparison.current.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"comparison.current.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"comparison.current.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"comparison.current.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"comparison.current.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"comparison.current.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"comparison.current.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"comparison.current.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"comparison.current.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"comparison.current.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"comparison.current.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"comparison.current.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"comparison.current.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"comparison.current.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"comparison.current.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"comparison.current.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"comparison.current.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"comparison.current.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"comparison.current.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"comparison.current","typeLabel":"object"},"differences":{"type":"object","description":"Current minus baseline per metric. Rate differences are percentage points, duration differences are seconds, count differences are absolute. Null when either period metric is unavailable.","additionalProperties":{"oneOf":[{"type":"number","format":"double","uniqueKey":"comparison.differences.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"comparison.differences.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"comparison.differences.additionalProperties","typeLabel":"number\u003cdouble> | null"},"isRequired":true,"uniqueKey":"comparison.differences","typeLabel":"object"}},"uniqueKey":"comparison","typeLabel":"object"},"breakdowns":{"type":"array","maxItems":30,"description":"Independent results for a breakdowns request, in request order. An empty groups array means no values passed the requested support screen. Omit breakdowns for baseline metrics only.","items":{"type":"object","required":["dimension","groups"],"description":"One independent grouping of the top-level filtered population. Shares the top-level baseline, dates, coverage and unavailable-metric semantics; dimensions are not nested.","properties":{"dimension":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].dimension","typeLabel":"string"},"groups":{"type":"array","items":{"type":"object","required":["value","buckets","totals","summary"],"properties":{"value":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].value","typeLabel":"string"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].totals","typeLabel":"object"},"summary":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].summary","typeLabel":"object"},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","format":"date-time","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].time","typeLabel":"string\u003cdate-time>"},"counts":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].counts","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","description":"Nonzero makes every metric in this bucket unavailable","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].unparsedRows","typeLabel":"integer\u003cint64>"},"unparsedWeight":{"type":"number","format":"double","description":"Candidate flow weight that could not be interpreted","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].unparsedWeight","typeLabel":"number\u003cdouble>"},"values":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX].values","typeLabel":"object"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].buckets","typeLabel":"object[]"},"comparison":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.baseline","typeLabel":"object"},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.fromDate","typeLabel":"string"},"toDate":{"type":"string","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.toDate","typeLabel":"string"},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.completeToDate","typeLabel":"string"},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.provisional","typeLabel":"boolean"},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.flowsReached","typeLabel":"number\u003cdouble>"},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.attemptsReached","typeLabel":"number\u003cdouble>"},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedFlows","typeLabel":"number\u003cdouble>"},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.flowsWithErrors","typeLabel":"number\u003cdouble>"},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.sourceAttempts","typeLabel":"number\u003cdouble>"},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.skippedFlows","typeLabel":"number\u003cdouble>"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.droppedFlows","typeLabel":"number\u003cdouble>"},"completedAttempts":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedAttempts","typeLabel":"number\u003cdouble>"},"occurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.occurrences","typeLabel":"number\u003cdouble>"},"subflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.subflowOccurrences","typeLabel":"number\u003cdouble>"},"completedSubflowOccurrences":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedSubflowOccurrences","typeLabel":"number\u003cdouble>"},"completedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedHere","typeLabel":"number\u003cdouble>"},"droppedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.droppedHere","typeLabel":"number\u003cdouble>"},"retriedHere":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.retriedHere","typeLabel":"number\u003cdouble>"},"continued":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.continued","typeLabel":"number\u003cdouble>"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.otherEndings","typeLabel":"number\u003cdouble>"},"flowsWithRetries":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.flowsWithRetries","typeLabel":"number\u003cdouble>"},"repeatedFlows":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.repeatedFlows","typeLabel":"number\u003cdouble>"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.embeddedErrorOccurrences","typeLabel":"number\u003cdouble>"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completionDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completionDurationBuckets","typeLabel":"number\u003cdouble>[]"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedHereDurationBuckets.items.[INDEX]","typeLabel":"number\u003cdouble>"},"description":"Same bands for flows completed at this target","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals.completedHereDurationBuckets","typeLabel":"number\u003cdouble>[]"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.totals","typeLabel":"object"},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1.numerator","typeLabel":"number\u003cdouble>"},"denominator":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1.denominator","typeLabel":"number\u003cdouble>"},"percent":{"oneOf":[{"type":"number","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1.percent.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Null when denominator is zero","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1.percent","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.histogram.additionalProperties","typeLabel":"number\u003cdouble>"},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.histogram","typeLabel":"object"},"observations":{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.observations","typeLabel":"number\u003cdouble>"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","x-omitempty":false,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.estimatedP50Seconds","typeLabel":"number\u003cdouble> | null"},"method":{"type":"string","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2.method","typeLabel":"string"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","x-go-type":"any","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary.additionalProperties","typeLabel":"number\u003cdouble> · object · object · null"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.summary","typeLabel":"object"},"unparsedRows":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current.unparsedRows","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.current","typeLabel":"object"},"differences":{"type":"object","description":"Current minus baseline per metric. Rate differences are percentage points, duration differences are seconds, count differences are absolute. Null when either period metric is unavailable.","additionalProperties":{"oneOf":[{"type":"number","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.differences.additionalProperties.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.differences.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.differences.additionalProperties","typeLabel":"number\u003cdouble> | null"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison.differences","typeLabel":"object"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].comparison","typeLabel":"object"},"trafficStatus":{"type":"string","enum":["comparable","increased","decreased","started-within-period","stopped-within-period","insufficient-data"],"description":"Describes how traffic is distributed across completed calendar days in the two periods. Unfinished and future days are excluded from classification. A period with no completed days is insufficient-data. Totals and rates still include all received observations. These classifications are independent of changes in authentication performance.\n\n- increased: the current period has enough traffic, the baseline does not and baseline traffic per day is at most 25% of current traffic.\n- decreased: the baseline has enough traffic, the current period does not and current traffic per day is at most 25% of baseline traffic.\n- started-within-period: traffic is absent for at least two days at the start of one period, then averages at least 100 flows per active day. The other period has traffic at that edge.\n- stopped-within-period: the corresponding gap occurs at the end of one period.\n- comparable: both periods have enough traffic and neither has a qualifying start or end gap. Volume and completion rates may still differ.\n- insufficient-data: there is not enough evidence for another classification, or a positions request contains paths that could not be interpreted.\n\nEnough traffic means at least 1,000 flows per seven days, scaled to each period's length. For positions output, discovery.minFlows can change this threshold. Step-category groups use occurrences instead of flows.\nIncreased and decreased describe changes between low and substantial traffic; neither means the smaller period had zero traffic. They do not report every change in volume.","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].trafficStatus","typeLabel":"enum\u003cstring>"},"coverage":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.days","typeLabel":"integer"},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.activeDays","typeLabel":"integer"},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.materialDays","typeLabel":"integer"},"volume":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.volume","typeLabel":"number\u003cdouble>"},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.firstDay","typeLabel":"string\u003cdate>"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline.lastDay","typeLabel":"string\u003cdate>"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.baseline","typeLabel":"object"},"current":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.days","typeLabel":"integer"},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.activeDays","typeLabel":"integer"},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.materialDays","typeLabel":"integer"},"volume":{"type":"number","format":"double","isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.volume","typeLabel":"number\u003cdouble>"},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.firstDay","typeLabel":"string\u003cdate>"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume","uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current.lastDay","typeLabel":"string\u003cdate>"}},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage.current","typeLabel":"object"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX].coverage","typeLabel":"object"}},"uniqueKey":"breakdowns.items.[INDEX].groups.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"breakdowns.items.[INDEX].groups","typeLabel":"object[]"}},"uniqueKey":"breakdowns.items.[INDEX]","typeLabel":"object"},"uniqueKey":"breakdowns","typeLabel":"object[]"},"unavailableMetrics":{"type":"object","description":"Reasons for unavailable or inapplicable metrics; corresponding values are null","additionalProperties":{"type":"string","uniqueKey":"unavailableMetrics.additionalProperties","typeLabel":"string"},"uniqueKey":"unavailableMetrics","typeLabel":"object"},"diagnostics":{"type":"object","description":"Calculation timings and processed-cell counts. Shard timings overlap and must not be added as end-to-end latency.","required":["rowsScanned","rowsMatched","rowsUnparsed"],"properties":{"rowsScanned":{"type":"integer","format":"int64","description":"Aggregated cells delivered by SQL after all WHERE predicates","isRequired":true,"uniqueKey":"diagnostics.rowsScanned","typeLabel":"integer\u003cint64>"},"rowsMatched":{"type":"integer","format":"int64","description":"Cells whose decoded path contributed to the selection","isRequired":true,"uniqueKey":"diagnostics.rowsMatched","typeLabel":"integer\u003cint64>"},"rowsUnparsed":{"type":"integer","format":"int64","description":"Aggregated cells that could not be decoded after a bounded dictionary refresh. Affected bucket metrics and whole-period summaries are unavailable; counts and totals describe decoded records only.","isRequired":true,"uniqueKey":"diagnostics.rowsUnparsed","typeLabel":"integer\u003cint64>"},"weightUnparsed":{"type":"number","format":"double","description":"Sum of undecodable candidate row weights, not a count of confirmed matches at this position.","uniqueKey":"diagnostics.weightUnparsed","typeLabel":"number\u003cdouble>"}},"additionalProperties":true,"uniqueKey":"diagnostics","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"schemaVersion":"\u003cstring>","projectID":"\u003cstring>","name":"\u003cstring>","timeZone":"\u003cstring>","timeBasis":"flow-start","selection":{"kind":"node","scope":"prefix","prefix":[{"kind":"decision","decisionID":"\u003cstring>","subflowType":"provideIdentifier","flowType":"\u003cstring>","specType":"\u003cstring>","terminalType":"decision-unresolved"}],"destination":{"kind":"decision","decisionID":"\u003cstring>","subflowType":"provideIdentifier","flowType":"\u003cstring>","specType":"\u003cstring>","terminalType":"decision-unresolved"}},"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"buckets":[{"time":"2023-11-07T05:31:56Z","counts":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"unparsedRows":123,"unparsedWeight":123,"values":{}}],"coverage":{"firstBucket":"2023-11-07T05:31:56Z","endExclusive":"2023-11-07T05:31:56Z","snapshotDate":"2023-12-25","completeWindow":true,"notes":["\u003cstring>"]},"savedFilter":{"status":"none","savedFilterID":"\u003cstring>","version":123,"name":"\u003cstring>","source":"default","missing":[{"dimension":"\u003cstring>","tag":"\u003cstring>"}]},"nodes":"\u003carray>","root":{"baseline":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"current":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"differences":{},"likeForLike":{"baseline":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"current":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"differences":{},"excludedFlows":{"baseline":123,"current":123}}},"positions":[{"selection":{"kind":"node","scope":"prefix","prefix":[{"kind":"decision","decisionID":"\u003cstring>","subflowType":"provideIdentifier","flowType":"\u003cstring>","specType":"\u003cstring>","terminalType":"decision-unresolved"}],"destination":{"kind":"decision","decisionID":"\u003cstring>","subflowType":"provideIdentifier","flowType":"\u003cstring>","specType":"\u003cstring>","terminalType":"decision-unresolved"}},"requested":true,"trafficStatus":"comparable","coverage":{"baseline":{"days":123,"activeDays":123,"materialDays":123,"volume":123,"firstDay":"2023-12-25","lastDay":"2023-12-25"},"current":{"days":123,"activeDays":123,"materialDays":123,"volume":123,"firstDay":"2023-12-25","lastDay":"2023-12-25"}},"baseline":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"current":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"differences":{},"unavailableMetrics":{},"availableCounters":["\u003cstring>"]}],"extrasTruncated":123,"comparison":{"baseline":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"current":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"differences":{}},"breakdowns":[{"dimension":"\u003cstring>","groups":[{"value":"\u003cstring>","totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"buckets":[{"time":"2023-11-07T05:31:56Z","counts":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"unparsedRows":123,"unparsedWeight":123,"values":{}}],"comparison":{"baseline":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"current":{"fromDate":"\u003cstring>","toDate":"\u003cstring>","completeToDate":"\u003cstring>","provisional":true,"totals":{"flowsReached":123,"attemptsReached":123,"completedFlows":123,"flowsWithErrors":123,"sourceAttempts":123,"skippedFlows":123,"droppedFlows":123,"completedAttempts":123,"occurrences":123,"subflowOccurrences":123,"completedSubflowOccurrences":123,"completedHere":123,"droppedHere":123,"retriedHere":123,"continued":123,"otherEndings":123,"flowsWithRetries":123,"repeatedFlows":123,"embeddedErrorOccurrences":123,"completionDurationBuckets":[123],"completedHereDurationBuckets":[123]},"summary":{},"unparsedRows":123},"differences":{}},"trafficStatus":"comparable","coverage":{"baseline":{"days":123,"activeDays":123,"materialDays":123,"volume":123,"firstDay":"2023-12-25","lastDay":"2023-12-25"},"current":{"days":123,"activeDays":123,"materialDays":123,"volume":123,"firstDay":"2023-12-25","lastDay":"2023-12-25"}}}]}],"unavailableMetrics":{},"diagnostics":{"rowsScanned":123,"rowsMatched":123,"rowsUnparsed":123,"weightUnparsed":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"ae9ec562-7bef-45bd-bff5-c3573420baa1":{"description":"Invalid selection, filters, metrics or range","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"468a47b7-c66e-4ca8-a978-48b10f4df487":{"description":"Shared history calculation capacity is busy","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"1005bf1c-f694-485b-bfad-9e3a014a60a6":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","scopes":["observe:timeSeries:read"],"schemeName":"bearerAuth"}}},"servers":{"22c3014f-9385-4d0c-83b4-842924313628":{"url":"https://api.cloud.corbado.io/v1"}},"schemas":{"e414b583-bcbc-419e-9b14-f2cd58eb2d25":{"oneOf":[{"type":"object","title":"all","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["all"],"x-go-type":"json.RawMessage","properties":{"all":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true}},"additionalProperties":false},{"type":"object","title":"any","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["any"],"x-go-type":"json.RawMessage","properties":{"any":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true}},"additionalProperties":false},{"type":"object","title":"not","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["not"],"x-go-type":"json.RawMessage","properties":{"not":{"oneOf":[{"isRequired":true}],"isRequired":true}},"additionalProperties":false},{"type":"object","title":"dimension","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["dimension"],"x-go-type":"json.RawMessage","properties":{"dimension":{"type":"string","enum":["application","osName","osVersion","browserName","touchpoint","visitorType"],"isRequired":true},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}}},"additionalProperties":false},{"type":"object","title":"tag","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["tag"],"x-go-type":"json.RawMessage","properties":{"tag":{"type":"string","minLength":1,"maxLength":255,"isRequired":true},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}}},"additionalProperties":false}]},"80db29ac-eabe-41e4-8ffd-6ae5ad62589d":{"type":"object","required":["schemaVersion","projectID","name","timeZone","timeBasis","selection","buckets","totals","summary","coverage"],"properties":{"schemaVersion":{"type":"string","isRequired":true},"projectID":{"type":"string","isRequired":true},"name":{"type":"string","isRequired":true},"timeZone":{"type":"string","isRequired":true},"timeBasis":{"type":"string","enum":["flow-start"],"isRequired":true},"selection":{"type":"object","additionalProperties":false,"required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"]},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog"},"specType":{"type":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix."}}},"isRequired":true},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"]},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog"},"specType":{"type":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix."}},"additionalProperties":false}},"isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Full-period metrics calculated from merged counts/histograms. All values are null when candidate paths could not be interpreted. Counts and totals then cover decoded records only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","format":"date-time"},"counts":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}}},"unparsedRows":{"type":"integer","format":"int64","description":"Nonzero makes every metric in this bucket unavailable"},"unparsedWeight":{"type":"number","format":"double","description":"Candidate flow weight that could not be interpreted"},"values":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]}}}},"isRequired":true},"coverage":{"type":"object","properties":{"firstBucket":{"type":"string","format":"date-time"},"endExclusive":{"type":"string","format":"date-time"},"snapshotDate":{"type":"string","format":"date"},"completeWindow":{"type":"boolean","description":"Bounds lie within recorded coverage; not a completeness guarantee for every interior bucket"},"notes":{"type":"array","items":{"type":"string"}}},"isRequired":true},"savedFilter":{"type":"object","description":"Which saved filter shaped the response: `none` (none requested, or the project has no default),\n`applied`, or `notApplicable` when the data does not carry a dimension or custom tag the filter reads\n(listed in `missing`); then the data is returned unfiltered.","required":["status"],"properties":{"status":{"type":"string","enum":["none","applied","notApplicable"],"isRequired":true},"savedFilterID":{"type":"string","description":"Saved filter ID (format `svf-\u003cnumber>`); absent for `none`."},"version":{"type":"integer","format":"int64","description":"Version of the saved filter's definition that was read."},"name":{"type":"string"},"source":{"type":"string","description":"`default`: the project's default saved filter; `explicit`: requested by `savedFilterID`.","enum":["default","explicit"]},"missing":{"type":"array","description":"What the data does not carry, for `notApplicable`.","items":{"type":"object","description":"A dimension (schema name, e.g. `visitorType`) or a custom tag key a saved filter reads.","properties":{"dimension":{"type":"string"},"tag":{"type":"string"}}}}}},"nodes":{"type":"array","description":"Present only for batched totals. Explicitly requested non-root node/edge positions in deterministic semantic-prefix order, each with empty buckets and no nested nodes. The top-level result is the root. Unparseable source rows conservatively invalidate all position metrics. No silent truncation.","items":{"$circularRef":"80db29ac-eabe-41e4-8ffd-6ae5ad62589d"}},"root":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double"},{"type":"null","format":"double"}]},"isRequired":true},"likeForLike":{"type":"object","required":["baseline","current","differences","excludedFlows"],"description":"Overall funnel comparison after excluding flows that reach positions classified as increased, decreased, started-within-period or stopped-within-period. Use it alongside the full comparison to see how these routes affect the overall result. Includes flow counts and eventual completion, drop-off and skip rates. Omitted when either period contains paths that could not be interpreted. This comparison does not establish the cause of a change.","properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double"},{"type":"null","format":"double"}]},"isRequired":true},"excludedFlows":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"number","format":"double","isRequired":true},"current":{"type":"number","format":"double","isRequired":true}},"isRequired":true}}}}},"positions":{"type":"array","description":"Output positions only. Requested selections first (request order), then discovered non-stable positions by volume. Counts and summaries equal output totals for the same period and selection.","items":{"type":"object","required":["selection","requested","trafficStatus","coverage","baseline","current","differences"],"properties":{"selection":{"type":"object","additionalProperties":false,"required":["kind","scope","prefix"],"properties":{"kind":{"type":"string","enum":["node","edge"],"isRequired":true},"scope":{"type":"string","enum":["prefix","anywhere"],"isRequired":true},"prefix":{"type":"array","maxItems":32,"description":"Exact normalized attempt prefix including the target node (or edge source). Empty prefix selects the flow root. Anywhere requires exactly one step and counts a flow/attempt once even if it matches multiple positions.","items":{"type":"object","additionalProperties":false,"required":["kind"],"description":"Exactly one discriminator-specific field: decisionID, subflowType, flowType or terminalType. specType is exact structural identity, not a wildcard, and is supported only on split subflow types. Decision input/output values do not split the structural node. Predicates on choices are future work.","properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"]},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog"},"specType":{"type":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix."}}},"isRequired":true},"destination":{"type":"object","description":"Required only for edges; immediate next structural step, not an eventual-reach condition or visually folded edge","required":["kind"],"properties":{"kind":{"type":"string","enum":["decision","subflow","flow","terminal"],"isRequired":true},"decisionID":{"type":"string","pattern":"^dec-[0-9]+$"},"subflowType":{"type":"string","enum":["provideIdentifier","passwordLogin","passkeyLogin","passkeyEnrollment","socialLogin","ssoLogin","emailLink","emailOtp","smsOtp","totp","appConfirmation","provideData","setPassword","passkeyDeletion","reset","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"]},"flowType":{"type":"string","description":"Built-in or project-defined flow type from the project catalog"},"specType":{"type":"string"},"terminalType":{"type":"string","enum":["decision-unresolved","decision-resolved"],"description":"Synthetic ending after a final decision; must be last in an exact prefix."}},"additionalProperties":false}},"isRequired":true},"requested":{"type":"boolean","description":"True for request selections","isRequired":true},"trafficStatus":{"type":"string","enum":["comparable","increased","decreased","started-within-period","stopped-within-period","insufficient-data"],"description":"Describes how traffic is distributed across completed calendar days in the two periods. Unfinished and future days are excluded from classification. A period with no completed days is insufficient-data. Totals and rates still include all received observations. These classifications are independent of changes in authentication performance.\n\n- increased: the current period has enough traffic, the baseline does not and baseline traffic per day is at most 25% of current traffic.\n- decreased: the baseline has enough traffic, the current period does not and current traffic per day is at most 25% of baseline traffic.\n- started-within-period: traffic is absent for at least two days at the start of one period, then averages at least 100 flows per active day. The other period has traffic at that edge.\n- stopped-within-period: the corresponding gap occurs at the end of one period.\n- comparable: both periods have enough traffic and neither has a qualifying start or end gap. Volume and completion rates may still differ.\n- insufficient-data: there is not enough evidence for another classification, or a positions request contains paths that could not be interpreted.\n\nEnough traffic means at least 1,000 flows per seven days, scaled to each period's length. For positions output, discovery.minFlows can change this threshold. Step-category groups use occurrences instead of flows.\nIncreased and decreased describe changes between low and substantial traffic; neither means the smaller period had zero traffic. They do not report every change in volume.","isRequired":true},"coverage":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true},"volume":{"type":"number","format":"double","isRequired":true},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume"}},"isRequired":true},"current":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true},"volume":{"type":"number","format":"double","isRequired":true},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume"}},"isRequired":true}},"isRequired":true},"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"differences":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double"},{"type":"null","format":"double"}]},"isRequired":true},"unavailableMetrics":{"type":"object","additionalProperties":{"type":"string"},"description":"Discovered positions only. Requested metrics returned as null, with the reason. Request the position in selections for all metrics."},"availableCounters":{"type":"array","items":{"type":"string"},"description":"Discovered positions only. The totals counters that are populated; all others are not calculated and read 0."}}}},"extrasTruncated":{"type":"integer","description":"Output positions only. Discovered non-stable positions beyond discovery.maxExtra"},"comparison":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"differences":{"type":"object","description":"Current minus baseline per metric. Rate differences are percentage points, duration differences are seconds, count differences are absolute. Null when either period metric is unavailable.","additionalProperties":{"oneOf":[{"type":"number","format":"double"},{"type":"null","format":"double"}]},"isRequired":true}}},"breakdowns":{"type":"array","maxItems":30,"description":"Independent results for a breakdowns request, in request order. An empty groups array means no values passed the requested support screen. Omit breakdowns for baseline metrics only.","items":{"type":"object","required":["dimension","groups"],"description":"One independent grouping of the top-level filtered population. Shares the top-level baseline, dates, coverage and unavailable-metric semantics; dimensions are not nested.","properties":{"dimension":{"type":"string","isRequired":true},"groups":{"type":"array","items":{"type":"object","required":["value","buckets","totals","summary"],"properties":{"value":{"type":"string","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","format":"date-time"},"counts":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}}},"unparsedRows":{"type":"integer","format":"int64","description":"Nonzero makes every metric in this bucket unavailable"},"unparsedWeight":{"type":"number","format":"double","description":"Candidate flow weight that could not be interpreted"},"values":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]}}}},"isRequired":true},"comparison":{"type":"object","required":["baseline","current","differences"],"properties":{"baseline":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"current":{"type":"object","required":["fromDate","toDate","completeToDate","provisional","totals","summary","unparsedRows"],"properties":{"fromDate":{"type":"string","isRequired":true},"toDate":{"type":"string","isRequired":true},"completeToDate":{"type":"string","description":"Exclusive end of completed calendar days within this period, in UTC without a timezone suffix.\nCalculated using the project timezone at request time. Equals fromDate when no day has finished.\nUse days before this boundary for daily traffic-support and start/stop checks. This is a calendar\nboundary, not a guarantee that all events for those days have arrived.","isRequired":true},"provisional":{"type":"boolean","description":"True when the period includes an unfinished or future calendar day. Totals, rates and daily\nbuckets still include all observations received for the requested period and may change.","isRequired":true},"totals":{"type":"object","required":["flowsReached","attemptsReached","completedFlows","flowsWithErrors","sourceAttempts"],"properties":{"flowsReached":{"type":"number","format":"double","description":"Distinct weighted flows matching the target across selected attempts","isRequired":true},"attemptsReached":{"type":"number","format":"double","description":"Weighted selected attempts reaching the node or traversing the edge","isRequired":true},"completedFlows":{"type":"number","format":"double","description":"Matching flows with eventual complete outcome","isRequired":true},"flowsWithErrors":{"type":"number","format":"double","description":"Matching flows with at least one error anywhere in the flow","isRequired":true},"sourceAttempts":{"type":"number","format":"double","description":"All selected attempts reaching the source, including those not taking the edge","isRequired":true},"skippedFlows":{"type":"number","format":"double","description":"Matching flows eventually skipped or hidden or auto-skipped"},"droppedFlows":{"type":"number","format":"double","description":"Matching flows with eventual incomplete outcome"},"completedAttempts":{"type":"number","format":"double"},"occurrences":{"type":"number","format":"double"},"subflowOccurrences":{"type":"number","format":"double"},"completedSubflowOccurrences":{"type":"number","format":"double"},"completedHere":{"type":"number","format":"double"},"droppedHere":{"type":"number","format":"double"},"retriedHere":{"type":"number","format":"double"},"continued":{"type":"number","format":"double"},"otherEndings":{"type":"number","format":"double","description":"Final attempts ending skipped or hidden or auto-skipped at this position"},"flowsWithRetries":{"type":"number","format":"double"},"repeatedFlows":{"type":"number","format":"double"},"embeddedErrorOccurrences":{"type":"number","format":"double","description":"Observed references only; not a historically complete error count"},"completionDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"le3s, le10s, le30s, le1m, le5m, g5m for eventual completed flows"},"completedHereDurationBuckets":{"type":"array","minItems":6,"maxItems":1000,"items":{"type":"number","format":"double"},"description":"Same bands for flows completed at this target"}},"isRequired":true},"summary":{"type":"object","description":"Metrics from merged period counts and duration histograms, never averages of daily percentages or medians. Null when this period has unparsed candidates; counts then cover decoded rows only.","additionalProperties":{"oneOf":[{"type":"number","format":"double","x-go-type":"any"},{"type":"object","required":["numerator","denominator","percent"],"x-go-type":"any","properties":{"numerator":{"type":"number","format":"double","isRequired":true},"denominator":{"type":"number","format":"double","isRequired":true},"percent":{"oneOf":[{"type":"number","description":"Null when denominator is zero","format":"double","isRequired":true},{"type":"null","description":"Null when denominator is zero","format":"double","isRequired":true}],"isRequired":true}}},{"type":"object","description":"Same six flow-duration bands as the funnel. Linear interpolation; the >5m band assumes 300–600 seconds. This is an estimate of end-to-end completion time, not elapsed time within the node.","x-go-type":"any","properties":{"histogram":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"observations":{"type":"number","format":"double"},"estimatedP50Seconds":{"oneOf":[{"type":"number","format":"double","x-omitempty":false},{"type":"null","format":"double","x-omitempty":false}]},"method":{"type":"string"}}},{"type":"null","x-go-type":"any"}]},"isRequired":true},"unparsedRows":{"type":"integer","format":"int64","isRequired":true}},"isRequired":true},"differences":{"type":"object","description":"Current minus baseline per metric. Rate differences are percentage points, duration differences are seconds, count differences are absolute. Null when either period metric is unavailable.","additionalProperties":{"oneOf":[{"type":"number","format":"double"},{"type":"null","format":"double"}]},"isRequired":true}}},"trafficStatus":{"type":"string","enum":["comparable","increased","decreased","started-within-period","stopped-within-period","insufficient-data"],"description":"Describes how traffic is distributed across completed calendar days in the two periods. Unfinished and future days are excluded from classification. A period with no completed days is insufficient-data. Totals and rates still include all received observations. These classifications are independent of changes in authentication performance.\n\n- increased: the current period has enough traffic, the baseline does not and baseline traffic per day is at most 25% of current traffic.\n- decreased: the baseline has enough traffic, the current period does not and current traffic per day is at most 25% of baseline traffic.\n- started-within-period: traffic is absent for at least two days at the start of one period, then averages at least 100 flows per active day. The other period has traffic at that edge.\n- stopped-within-period: the corresponding gap occurs at the end of one period.\n- comparable: both periods have enough traffic and neither has a qualifying start or end gap. Volume and completion rates may still differ.\n- insufficient-data: there is not enough evidence for another classification, or a positions request contains paths that could not be interpreted.\n\nEnough traffic means at least 1,000 flows per seven days, scaled to each period's length. For positions output, discovery.minFlows can change this threshold. Step-category groups use occurrences instead of flows.\nIncreased and decreased describe changes between low and substantial traffic; neither means the smaller period had zero traffic. They do not report every change in volume."},"coverage":{"type":"object","required":["baseline","current"],"properties":{"baseline":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true},"volume":{"type":"number","format":"double","isRequired":true},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume"}},"isRequired":true},"current":{"type":"object","required":["days","activeDays","materialDays","volume"],"description":"Daily presence within the requested comparison period, including observations received on unfinished\ndays. Volume is flows, or occurrences for step-category groups. Traffic classification uses only\ncompleted days; the period result's completeToDate identifies that boundary.","properties":{"days":{"type":"integer","isRequired":true},"activeDays":{"type":"integer","description":"Days with any volume","isRequired":true},"materialDays":{"type":"integer","description":"Days with at least 100","isRequired":true},"volume":{"type":"number","format":"double","isRequired":true},"firstDay":{"type":"string","format":"date","description":"First project-local day with volume"},"lastDay":{"type":"string","format":"date","description":"Last project-local day with volume"}},"isRequired":true}}}}},"isRequired":true}}}},"unavailableMetrics":{"type":"object","description":"Reasons for unavailable or inapplicable metrics; corresponding values are null","additionalProperties":{"type":"string"}},"diagnostics":{"type":"object","description":"Calculation timings and processed-cell counts. Shard timings overlap and must not be added as end-to-end latency.","required":["rowsScanned","rowsMatched","rowsUnparsed"],"properties":{"rowsScanned":{"type":"integer","format":"int64","description":"Aggregated cells delivered by SQL after all WHERE predicates","isRequired":true},"rowsMatched":{"type":"integer","format":"int64","description":"Cells whose decoded path contributed to the selection","isRequired":true},"rowsUnparsed":{"type":"integer","format":"int64","description":"Aggregated cells that could not be decoded after a bounded dictionary refresh. Affected bucket metrics and whole-period summaries are unavailable; counts and totals describe decoded records only.","isRequired":true},"weightUnparsed":{"type":"number","format":"double","description":"Sum of undecodable candidate row weights, not a count of confirmed matches at this position."}},"additionalProperties":true}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","scopes":["observe:timeSeries:read"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi/observe.yaml"},"subdomain":"corbado-43","siteName":"Corbado docs","title":"Calculate historical metrics for an exact journey position - Corbado docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T15:11:48.145Z","originalFileLocation":"api-reference/observe/funnel-metrics.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=\"Required API key permission: observe:timeSeries:read.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Corbado docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_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/corbado-43/noBvchxiQo85SoLM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Calculate historical metrics for an exact journey position - Corbado docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Required API key permission: observe:timeSeries:read.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Corbado docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.corbado.com/api-reference/observe/funnel-metrics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://corbado-43.mintlify.site/_mintlify/api/og/v2?division=Metrics+and+funnels\u0026amp;title=Calculate+historical+metrics+for+an+exact+journey+position\u0026amp;description=Required+API+key+permission%3A+%60observe%3AtimeSeries%3Aread%60.\u0026amp;theme=46938e1ac6053c91ba042440\u0026amp;signature=72414ffcbc2f42ddce740aafde16a0e9661b38168855da4f649bfd237e4d0e23\">\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=\"Calculate historical metrics for an exact journey position - Corbado docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Required API key permission: observe:timeSeries:read.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://corbado-43.mintlify.site/_mintlify/api/og/v2?division=Metrics+and+funnels\u0026amp;title=Calculate+historical+metrics+for+an+exact+journey+position\u0026amp;description=Required+API+key+permission%3A+%60observe%3AtimeSeries%3Aread%60.\u0026amp;theme=46938e1ac6053c91ba042440\u0026amp;signature=72414ffcbc2f42ddce740aafde16a0e9661b38168855da4f649bfd237e4d0e23\">\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/corbado-43/noBvchxiQo85SoLM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Corbado docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#184aff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.corbado.com/api-reference/observe/funnel-metrics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/observe/funnel-metrics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.corbado.com/#organization\",\"name\":\"Corbado docs\",\"url\":\"https://docs.corbado.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-light.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=decbc139fa76d9eeee8dcfbe91ed2094\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.corbado.com#website\",\"name\":\"Corbado docs\",\"url\":\"https://docs.corbado.com\",\"publisher\":{\"@id\":\"https://docs.corbado.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics#webpage\",\"url\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics\",\"name\":\"Calculate historical metrics for an exact journey position\",\"description\":\"Required API key permission: observe:timeSeries:read.\",\"dateModified\":\"2026-11-06T15:11:48.145Z\",\"isPartOf\":{\"@id\":\"https://docs.corbado.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Corbado Observe\",\"item\":\"https://docs.corbado.com/api-reference/observe/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API endpoints\",\"item\":\"https://docs.corbado.com/api-reference/observe/send-events\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Calculate historical metrics for an exact journey position\",\"item\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics#apireference\",\"headline\":\"Calculate historical metrics for an exact journey position\",\"name\":\"Calculate historical metrics for an exact journey position\",\"description\":\"Required API key permission: observe:timeSeries:read.\",\"url\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.corbado.com/api-reference/observe/funnel-metrics#webpage\"},\"dateModified\":\"2026-11-06T15:11:48.145Z\",\"publisher\":{\"@id\":\"https://docs.corbado.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.corbado.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Corbado docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Corbado docs","nav":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://bit.ly/passkeys-community"},{"anchor":"GitHub","icon":"github","href":"https://github.com/corbado"},{"anchor":"Blog","icon":"newspaper","href":"https://www.corbado.com/blog"}]},"tabs":[{"tab":"Start","pages":[{"title":"Start","href":"/start"}]},{"tab":"Corbado Observe","pages":[{"title":"Corbado Observe","href":"/corbado-observe/overview/welcome"}]},{"tab":"Corbado Connect","pages":[{"title":"Corbado Connect","href":"/corbado-connect/overview/welcome"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Corbado Observe and Connect API Reference","sidebarTitle":"Choose an API","href":"/api-reference/overview"}]},{"group":"Corbado Observe","pages":[{"title":"Observe API reference","sidebarTitle":"Overview","href":"/api-reference/observe/overview"},{"title":"Observe API authentication","sidebarTitle":"Authentication","href":"/api-reference/observe/authentication"},{"title":"Observe errors, pagination and limits","sidebarTitle":"Errors and limits","href":"/api-reference/observe/errors"},{"title":"User data export and deletion","sidebarTitle":"User data requests","href":"/api-reference/observe/user-data"},{"group":"API endpoints","pages":[{"group":"Events","pages":[{"title":"Create new events","deprecated":null,"version":null,"sidebarTitle":"Send events","openapi":"/api-reference/openapi/observe.yaml post /observe/events","href":"/api-reference/observe/send-events"},{"title":"Search events by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search events","openapi":"/api-reference/openapi/observe.yaml post /observe/eventSearch","href":"/api-reference/observe/search-events"},{"title":"Search low-level tracking events by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search low events","openapi":"/api-reference/openapi/observe.yaml post /observe/trackingEventLowSearch","href":"/api-reference/observe/search-low-events"}]},{"group":"Catalogs and labels","pages":[{"title":"List flow type definitions","deprecated":null,"version":null,"sidebarTitle":"Flow types","openapi":"/api-reference/openapi/observe.yaml get /observe/flowTypeDefinitions","href":"/api-reference/observe/flow-types"},{"title":"List decisions","deprecated":null,"version":null,"sidebarTitle":"Decisions","openapi":"/api-reference/openapi/observe.yaml get /observe/decisions","href":"/api-reference/observe/decisions"},{"title":"List decision variants","deprecated":null,"version":null,"sidebarTitle":"Decision variants","openapi":"/api-reference/openapi/observe.yaml get /observe/decisionVariants","href":"/api-reference/observe/decision-variants"},{"title":"List challenge variants","deprecated":null,"version":null,"sidebarTitle":"Challenge variants","openapi":"/api-reference/openapi/observe.yaml get /observe/challengeVariants","href":"/api-reference/observe/challenge-variants"},{"title":"List applications","deprecated":null,"version":null,"sidebarTitle":"Applications","openapi":"/api-reference/openapi/observe.yaml get /observe/applications","href":"/api-reference/observe/applications"},{"title":"List email domains","deprecated":null,"version":null,"sidebarTitle":"Email domains","openapi":"/api-reference/openapi/observe.yaml get /observe/emailDomains","href":"/api-reference/observe/email-domains"},{"title":"List labels","deprecated":null,"version":null,"sidebarTitle":"Labels","openapi":"/api-reference/openapi/observe.yaml get /observe/labels","href":"/api-reference/observe/labels"},{"title":"Create label","deprecated":null,"version":null,"sidebarTitle":"Create label","openapi":"/api-reference/openapi/observe.yaml post /observe/labels","href":"/api-reference/observe/create-label"},{"title":"Update label","deprecated":null,"version":null,"sidebarTitle":"Update label","openapi":"/api-reference/openapi/observe.yaml put /observe/labels/{labelID}","href":"/api-reference/observe/update-label"},{"title":"Delete label","description":"Deletes an Observe label.\n\nRequired API key permission: `observe:catalog:delete`.","deprecated":null,"version":null,"sidebarTitle":"Delete label","openapi":"/api-reference/openapi/observe.yaml delete /observe/labels/{labelID}","href":"/api-reference/observe/delete-label"}]},{"group":"Metrics and funnels","pages":[{"title":"Calculate historical metrics for an exact journey position","deprecated":null,"version":null,"sidebarTitle":"Funnel metrics","openapi":"/api-reference/openapi/observe.yaml post /observe/funnel/metricSeries","href":"/api-reference/observe/funnel-metrics"},{"title":"Get project-owned history dictionaries and coverage","description":"Required API key permission: `observe:timeSeries:read`.","deprecated":null,"version":null,"sidebarTitle":"Funnel metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/funnel/metricSeries/metadata","href":"/api-reference/observe/funnel-metadata"},{"title":"Get time series data","deprecated":null,"version":null,"sidebarTitle":"Time series","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries","href":"/api-reference/observe/time-series"},{"title":"Get time series totals","deprecated":null,"version":null,"sidebarTitle":"Time series totals","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/totals","href":"/api-reference/observe/time-series-totals"},{"title":"List time-series definitions","deprecated":null,"version":null,"sidebarTitle":"Time series definitions","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeriesDefinitions","href":"/api-reference/observe/time-series-definitions"}]},{"group":"Data exports","pages":[{"title":"Export time series to downloadable files","deprecated":null,"version":null,"sidebarTitle":"Create time series export","openapi":"/api-reference/openapi/observe.yaml post /observe/timeSeries/export","href":"/api-reference/observe/create-time-series-export"},{"title":"List time series exports","deprecated":null,"version":null,"sidebarTitle":"Time series exports","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports","href":"/api-reference/observe/time-series-exports"},{"title":"Get a time series export by ID","deprecated":null,"version":null,"sidebarTitle":"Time series export","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports/{exportID}","href":"/api-reference/observe/time-series-export"},{"title":"Get a download link for a time series export file","deprecated":null,"version":null,"sidebarTitle":"Time series export download","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports/{exportID}/files/{fileName}/downloadLink","href":"/api-reference/observe/time-series-export-download"},{"title":"List observe table export files","deprecated":null,"version":null,"sidebarTitle":"Table exports","openapi":"/api-reference/openapi/observe.yaml get /observe/tableExports","href":"/api-reference/observe/table-exports"},{"title":"Get observe table export download link","deprecated":null,"version":null,"sidebarTitle":"Table export download","openapi":"/api-reference/openapi/observe.yaml get /observe/tableExports/{filename}/downloadLink","href":"/api-reference/observe/table-export-download"}]},{"group":"User data","pages":[{"title":"Create data deletion jobs","deprecated":null,"version":null,"sidebarTitle":"Delete user data","openapi":"/api-reference/openapi/observe.yaml post /observe/dataDeletionJobs","href":"/api-reference/observe/delete-user-data"},{"title":"Get a data deletion job by ID","deprecated":null,"version":null,"sidebarTitle":"Deletion status","openapi":"/api-reference/openapi/observe.yaml get /observe/dataDeletionJobs/{dataDeletionJobID}","href":"/api-reference/observe/deletion-status"},{"title":"Export observe data by external ID","deprecated":null,"version":null,"sidebarTitle":"Export user","openapi":"/api-reference/openapi/observe.yaml get /observe/dataExports/{externalID}","href":"/api-reference/observe/export-user"}]},{"group":"Metadata","pages":[{"title":"List FIDO MDS authenticator metadata","deprecated":null,"version":null,"sidebarTitle":"Authenticator metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/metadata/mds","href":"/api-reference/observe/authenticator-metadata"},{"title":"List passkey authenticator (AAGUID) metadata","deprecated":null,"version":null,"sidebarTitle":"Passkey authenticator metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/metadata/passkey-aaguid","href":"/api-reference/observe/passkey-authenticator-metadata"}]},{"group":"Saved ID lists","pages":[{"title":"Get Observe ID list","deprecated":null,"version":null,"sidebarTitle":"Id list","openapi":"/api-reference/openapi/observe.yaml get /observe/idLists/{id}","href":"/api-reference/observe/id-list"},{"title":"Create Observe ID list","deprecated":null,"version":null,"sidebarTitle":"Create id list","openapi":"/api-reference/openapi/observe.yaml post /observe/idLists","href":"/api-reference/observe/create-id-list"}]},{"group":"Journeys and users","pages":[{"title":"Search flows by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search flows","openapi":"/api-reference/openapi/observe.yaml post /observe/flowSearch","href":"/api-reference/observe/search-flows"},{"title":"Search subflows by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search subflows","openapi":"/api-reference/openapi/observe.yaml post /observe/subFlowSearch","href":"/api-reference/observe/search-subflows"},{"title":"Search flow tags","deprecated":null,"version":null,"sidebarTitle":"Search flow tags","openapi":"/api-reference/openapi/observe.yaml post /observe/flowTagSearch","href":"/api-reference/observe/search-flow-tags"},{"title":"Search users by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search users","openapi":"/api-reference/openapi/observe.yaml post /observe/userSearch","href":"/api-reference/observe/search-users"},{"title":"Search identifier submissions","deprecated":null,"version":null,"sidebarTitle":"Search identifiers","openapi":"/api-reference/openapi/observe.yaml post /observe/identifierSearch","href":"/api-reference/observe/search-identifiers"},{"title":"Search client environments","deprecated":null,"version":null,"sidebarTitle":"Search client environments","openapi":"/api-reference/openapi/observe.yaml post /observe/clientEnvSearch","href":"/api-reference/observe/search-client-environments"}]},{"group":"Passkey Intelligence","pages":[{"title":"Explain what went wrong for a user","deprecated":null,"version":null,"sidebarTitle":"User diagnosis","openapi":"/api-reference/openapi/observe.yaml post /observe/userDiagnosis","href":"/api-reference/observe/passkey-intelligence/user-diagnosis"},{"title":"Predict the passkey login outcome","deprecated":null,"version":null,"sidebarTitle":"Predict login","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeyIntelligence","href":"/api-reference/observe/passkey-intelligence/predict-login"}]},{"group":"Passkey analysis","pages":[{"title":"List passkey behaviour for a user cohort","deprecated":null,"version":null,"sidebarTitle":"Passkey cohort","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeyCohort","href":"/api-reference/observe/passkey-cohort"},{"title":"Search passkeys","deprecated":null,"version":null,"sidebarTitle":"Search passkeys","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeySearch","href":"/api-reference/observe/search-passkeys"}]},{"group":"Annotations","pages":[{"title":"List annotations","deprecated":null,"version":null,"sidebarTitle":"Annotations","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations","href":"/api-reference/observe/annotations"},{"title":"Create annotation","deprecated":null,"version":null,"sidebarTitle":"Create annotation","openapi":"/api-reference/openapi/observe.yaml post /observe/annotations","href":"/api-reference/observe/create-annotation"},{"title":"Get project memory document","deprecated":null,"version":null,"sidebarTitle":"Annotation document","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/document","href":"/api-reference/observe/annotation-document"},{"title":"Create or update annotation by external key","deprecated":null,"version":null,"sidebarTitle":"Upsert annotation","openapi":"/api-reference/openapi/observe.yaml put /observe/annotations/byExternalKey/{externalKey}","href":"/api-reference/observe/upsert-annotation"},{"title":"Get annotation","deprecated":null,"version":null,"sidebarTitle":"Get annotation","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/{annotationID}","href":"/api-reference/observe/get-annotation"},{"title":"Update annotation","deprecated":null,"version":null,"sidebarTitle":"Update annotation","openapi":"/api-reference/openapi/observe.yaml put /observe/annotations/{annotationID}","href":"/api-reference/observe/update-annotation"},{"title":"Delete annotation","deprecated":null,"version":null,"sidebarTitle":"Delete annotation","openapi":"/api-reference/openapi/observe.yaml delete /observe/annotations/{annotationID}","href":"/api-reference/observe/delete-annotation"},{"title":"List annotation history","deprecated":null,"version":null,"sidebarTitle":"List annotation events","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/{annotationID}/events","href":"/api-reference/observe/list-annotation-events"}]},{"group":"Error management","pages":[{"title":"List error flavours","deprecated":null,"version":null,"sidebarTitle":"Error flavours","openapi":"/api-reference/openapi/observe.yaml get /observe/errorFlavours","href":"/api-reference/observe/error-flavours"},{"title":"Assign error flavours","deprecated":null,"version":null,"sidebarTitle":"Assign error flavours","openapi":"/api-reference/openapi/observe.yaml patch /observe/errorFlavours","href":"/api-reference/observe/assign-error-flavours"},{"title":"Analyze the flow impact of error flavours","deprecated":null,"version":null,"sidebarTitle":"Error impact","openapi":"/api-reference/openapi/observe.yaml post /observe/errorFlavours/impact","href":"/api-reference/observe/error-impact"},{"title":"List errors","deprecated":null,"version":null,"sidebarTitle":"Errors list","openapi":"/api-reference/openapi/observe.yaml get /observe/errors","href":"/api-reference/observe/errors-list"},{"title":"Create error","deprecated":null,"version":null,"sidebarTitle":"Create error","openapi":"/api-reference/openapi/observe.yaml post /observe/errors","href":"/api-reference/observe/create-error"},{"title":"Update error","deprecated":null,"version":null,"sidebarTitle":"Update error","openapi":"/api-reference/openapi/observe.yaml put /observe/errors/{errorID}","href":"/api-reference/observe/update-error"},{"title":"Delete error","deprecated":null,"version":null,"sidebarTitle":"Delete error","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}","href":"/api-reference/observe/delete-error"},{"title":"Upsert error recommendation","deprecated":null,"version":null,"sidebarTitle":"Upsert error recommendation","openapi":"/api-reference/openapi/observe.yaml put /observe/errors/{errorID}/recommendation","href":"/api-reference/observe/upsert-error-recommendation"},{"title":"Delete error recommendation","deprecated":null,"version":null,"sidebarTitle":"Delete error recommendation","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}/recommendation","href":"/api-reference/observe/delete-error-recommendation"},{"title":"Create recommendation asset upload","deprecated":null,"version":null,"sidebarTitle":"Create recommendation asset upload","openapi":"/api-reference/openapi/observe.yaml post /observe/errors/{errorID}/recommendation/assets","href":"/api-reference/observe/create-recommendation-asset-upload"},{"title":"Delete recommendation asset","deprecated":null,"version":null,"sidebarTitle":"Delete recommendation asset","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}/recommendation/assets/{assetID}","href":"/api-reference/observe/delete-recommendation-asset"},{"title":"Confirm recommendation asset upload","deprecated":null,"version":null,"sidebarTitle":"Confirm recommendation asset upload","openapi":"/api-reference/openapi/observe.yaml post /observe/errors/{errorID}/recommendation/assets/{assetID}/confirm","href":"/api-reference/observe/confirm-recommendation-asset-upload"},{"title":"Get recommendation asset download URL","deprecated":null,"version":null,"sidebarTitle":"Recommendation asset download","openapi":"/api-reference/openapi/observe.yaml get /observe/errors/{errorID}/recommendation/assets/{assetID}/downloadUrl","href":"/api-reference/observe/recommendation-asset-download"}]},{"group":"ObserveErrorCode","pages":[{"title":"Get the error dictionary","deprecated":null,"version":null,"sidebarTitle":"Error codes","openapi":"/api-reference/openapi/observe.yaml get /observe/errorCodes","href":"/api-reference/observe/error-codes"}]},{"group":"Alert management","pages":[{"title":"Get alerting summary","deprecated":null,"version":null,"sidebarTitle":"Alert summary","openapi":"/api-reference/openapi/observe.yaml get /observe/alertSummary","href":"/api-reference/observe/alert-summary"},{"title":"List alert rules","deprecated":null,"version":null,"sidebarTitle":"Alert rules","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRules","href":"/api-reference/observe/alert-rules"},{"title":"Create alert rule","deprecated":null,"version":null,"sidebarTitle":"Create alert rule","openapi":"/api-reference/openapi/observe.yaml post /observe/alertRules","href":"/api-reference/observe/create-alert-rule"},{"title":"Simulate alert rule","deprecated":null,"version":null,"sidebarTitle":"Simulate alert rule","openapi":"/api-reference/openapi/observe.yaml post /observe/alertRules/simulate","href":"/api-reference/observe/simulate-alert-rule"},{"title":"Get alert rule","deprecated":null,"version":null,"sidebarTitle":"Alert rule","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/alert-rule"},{"title":"Update alert rule","deprecated":null,"version":null,"sidebarTitle":"Update alert rule","openapi":"/api-reference/openapi/observe.yaml put /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/update-alert-rule"},{"title":"Delete alert rule","deprecated":null,"version":null,"sidebarTitle":"Delete alert rule","openapi":"/api-reference/openapi/observe.yaml delete /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/delete-alert-rule"},{"title":"Evaluate alert rules","deprecated":null,"version":null,"sidebarTitle":"Evaluate alert rules","openapi":"/api-reference/openapi/observe.yaml post /observe/alerts/evaluate","href":"/api-reference/observe/evaluate-alert-rules"},{"title":"List alert contact points","deprecated":null,"version":null,"sidebarTitle":"Alert contact points","openapi":"/api-reference/openapi/observe.yaml get /observe/alertContactPoints","href":"/api-reference/observe/alert-contact-points"},{"title":"Create alert contact point","deprecated":null,"version":null,"sidebarTitle":"Create alert contact point","openapi":"/api-reference/openapi/observe.yaml post /observe/alertContactPoints","href":"/api-reference/observe/create-alert-contact-point"},{"title":"Get alert contact point","deprecated":null,"version":null,"sidebarTitle":"Alert contact point","openapi":"/api-reference/openapi/observe.yaml get /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/alert-contact-point"},{"title":"Update alert contact point","deprecated":null,"version":null,"sidebarTitle":"Update alert contact point","openapi":"/api-reference/openapi/observe.yaml put /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/update-alert-contact-point"},{"title":"Delete alert contact point","deprecated":null,"version":null,"sidebarTitle":"Delete alert contact point","openapi":"/api-reference/openapi/observe.yaml delete /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/delete-alert-contact-point"},{"title":"Send test notification","deprecated":null,"version":null,"sidebarTitle":"Test alert contact point integration","openapi":"/api-reference/openapi/observe.yaml post /observe/alertContactPoints/{alertContactPointID}/integrations/{alertContactPointIntegrationID}/test","href":"/api-reference/observe/test-alert-contact-point-integration"},{"title":"List alert rule types","deprecated":null,"version":null,"sidebarTitle":"Alert rule types","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleTypes","href":"/api-reference/observe/alert-rule-types"},{"title":"List alert rule groups","deprecated":null,"version":null,"sidebarTitle":"Alert rule groups","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleGroups","href":"/api-reference/observe/alert-rule-groups"},{"title":"List alert instances","deprecated":null,"version":null,"sidebarTitle":"Alert instances","openapi":"/api-reference/openapi/observe.yaml get /observe/alertInstances","href":"/api-reference/observe/alert-instances"},{"title":"Get alert instance statistics","deprecated":null,"version":null,"sidebarTitle":"Alert instance statistics","openapi":"/api-reference/openapi/observe.yaml get /observe/alertInstanceStatistics","href":"/api-reference/observe/alert-instance-statistics"},{"title":"Get alert firing","deprecated":null,"version":null,"sidebarTitle":"Alert firing","openapi":"/api-reference/openapi/observe.yaml get /observe/alertFirings/{alertFiringID}","href":"/api-reference/observe/alert-firing"},{"title":"Get alert rule statistics","deprecated":null,"version":null,"sidebarTitle":"Alert rule statistics","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleStatistics","href":"/api-reference/observe/alert-rule-statistics"},{"title":"List alert evaluations","deprecated":null,"version":null,"sidebarTitle":"Alert evaluations","openapi":"/api-reference/openapi/observe.yaml get /observe/alertEvaluations","href":"/api-reference/observe/alert-evaluations"},{"title":"List alert transitions","deprecated":null,"version":null,"sidebarTitle":"Alert transitions","openapi":"/api-reference/openapi/observe.yaml get /observe/alertTransitions","href":"/api-reference/observe/alert-transitions"},{"title":"List alert notifications","deprecated":null,"version":null,"sidebarTitle":"Alert notifications","openapi":"/api-reference/openapi/observe.yaml get /observe/alertNotifications","href":"/api-reference/observe/alert-notifications"}]},{"group":"Experiments","pages":[{"title":"List experiments","deprecated":null,"version":null,"sidebarTitle":"Experiments","openapi":"/api-reference/openapi/observe.yaml get /observe/experiments","href":"/api-reference/observe/experiments"},{"title":"List experiment runs","deprecated":null,"version":null,"sidebarTitle":"Experiment runs","openapi":"/api-reference/openapi/observe.yaml get /observe/experimentRuns","href":"/api-reference/observe/experiment-runs"},{"title":"Create experiment run","deprecated":null,"version":null,"sidebarTitle":"Create experiment run","openapi":"/api-reference/openapi/observe.yaml post /observe/experimentRuns","href":"/api-reference/observe/create-experiment-run"},{"title":"Update experiment run","deprecated":null,"version":null,"sidebarTitle":"Update experiment run","openapi":"/api-reference/openapi/observe.yaml put /observe/experimentRuns/{experimentRunID}","href":"/api-reference/observe/update-experiment-run"},{"title":"Delete experiment run","deprecated":null,"version":null,"sidebarTitle":"Delete experiment run","openapi":"/api-reference/openapi/observe.yaml delete /observe/experimentRuns/{experimentRunID}","href":"/api-reference/observe/delete-experiment-run"}]}]}]},{"group":"Corbado Connect","pages":[{"title":"Connect API reference","sidebarTitle":"Overview","href":"/api-reference/connect/overview"},{"title":"Connect API authentication","sidebarTitle":"Authentication","href":"/api-reference/connect/authentication"},{"title":"Connect API error types","sidebarTitle":"Error types","href":"/api-reference/connect/error-types"},{"title":"Connect Frontend API","sidebarTitle":"Frontend protocol","href":"/api-reference/connect/frontend"},{"group":"Frontend API","pages":[{"group":"Passkey flows","pages":[{"title":"Initialize connect login","deprecated":null,"version":null,"sidebarTitle":"Initialize connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-login"},{"title":"Start connect login","deprecated":null,"version":null,"sidebarTitle":"Start connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/start","href":"/api-reference/connect/frontend/corbadoconnect/start-connect-login"},{"title":"Finish connect login","deprecated":null,"version":null,"sidebarTitle":"Finish connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/finish","href":"/api-reference/connect/frontend/corbadoconnect/finish-connect-login"},{"title":"Initialize connect append","deprecated":null,"version":null,"sidebarTitle":"Initialize connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-append"},{"title":"Start connect append","deprecated":null,"version":null,"sidebarTitle":"Start connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/start","href":"/api-reference/connect/frontend/corbadoconnect/start-connect-append"},{"title":"Finish connect append","deprecated":null,"version":null,"sidebarTitle":"Finish connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/finish","href":"/api-reference/connect/frontend/corbadoconnect/finish-connect-append"},{"title":"Initialize connect management","deprecated":null,"version":null,"sidebarTitle":"Initialize connect management","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-management"},{"title":"Delete connect passkey","deprecated":null,"version":null,"sidebarTitle":"Delete connect passkey","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/delete","href":"/api-reference/connect/frontend/corbadoconnect/delete-connect-passkey"},{"title":"List connect passkeys","deprecated":null,"version":null,"sidebarTitle":"List connect passkeys","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/list","href":"/api-reference/connect/frontend/corbadoconnect/list-connect-passkeys"},{"title":"Create connect event","deprecated":null,"version":null,"sidebarTitle":"Create connect event","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/events","href":"/api-reference/connect/frontend/corbadoconnect/create-connect-event"},{"title":"Send low-level Connect events","deprecated":null,"version":null,"sidebarTitle":"Send low-level Connect events","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/eventsLow","href":"/api-reference/connect/frontend/corbadoconnect/post-v2connecteventslow"},{"title":"Clear connect process","deprecated":null,"version":null,"sidebarTitle":"Clear connect process","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/process/clear","href":"/api-reference/connect/frontend/corbadoconnect/clear-connect-process"}]},{"group":"App association and keys","pages":[{"title":"Get Android Digital Asset Links","deprecated":null,"version":null,"sidebarTitle":"Get Android Digital Asset Links","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/assetlinks.json","href":"/api-reference/connect/frontend/wellknown/get-well-knownassetlinksjson"},{"title":"Get Apple App Site Association","deprecated":null,"version":null,"sidebarTitle":"Get Apple App Site Association","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/apple-app-site-association","href":"/api-reference/connect/frontend/wellknown/get-well-knownapple-app-site-association"},{"title":"Get project signing keys","deprecated":null,"version":null,"sidebarTitle":"Get project signing keys","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/jwks","href":"/api-reference/connect/frontend/wellknown/get-well-knownjwks"}]}]},{"group":"Backend API","pages":[{"group":"Users and passkeys","pages":[{"title":"List users","deprecated":null,"version":null,"sidebarTitle":"List users","openapi":"/api-reference/openapi/connect-backend.yaml get /users","href":"/api-reference/connect/backend/users/list-users"},{"title":"Create a new user","deprecated":null,"version":null,"sidebarTitle":"Create a new user","openapi":"/api-reference/openapi/connect-backend.yaml post /users","href":"/api-reference/connect/backend/users/create-a-new-user"},{"title":"Retrieve a user","deprecated":null,"version":null,"sidebarTitle":"Retrieve a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}","href":"/api-reference/connect/backend/users/retrieve-a-user"},{"title":"Delete a user","deprecated":null,"version":null,"sidebarTitle":"Delete a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}","href":"/api-reference/connect/backend/users/delete-a-user"},{"title":"Update a user","deprecated":null,"version":null,"sidebarTitle":"Update a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}","href":"/api-reference/connect/backend/users/update-a-user"},{"title":"List passkeys for a user","deprecated":null,"version":null,"sidebarTitle":"List passkeys for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/credentials","href":"/api-reference/connect/backend/users/list-passkeys-for-a-user"},{"title":"Delete a passkey for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a passkey for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/credentials/{credentialID}","href":"/api-reference/connect/backend/users/delete-a-passkey-for-a-user"},{"title":"List passkeys for a user including full authenticator data","deprecated":null,"version":null,"sidebarTitle":"List passkeys for a user including full authenticator data","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/fullCredentials","href":"/api-reference/connect/backend/users/list-passkeys-for-a-user-including-full-authenticator-data"}]},{"group":"Identifiers","pages":[{"title":"Create a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Create a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml post /users/{userID}/identifiers","href":"/api-reference/connect/backend/identifiers/create-a-login-identifier-for-a-user"},{"title":"Delete a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/identifiers/{identifierID}","href":"/api-reference/connect/backend/identifiers/delete-a-login-identifier-for-a-user"},{"title":"Update a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Update a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}/identifiers/{identifierID}","href":"/api-reference/connect/backend/identifiers/update-a-login-identifier-for-a-user"},{"title":"List all login identifiers","deprecated":null,"version":null,"sidebarTitle":"List all login identifiers","openapi":"/api-reference/openapi/connect-backend.yaml get /identifiers","href":"/api-reference/connect/backend/identifiers/list-all-login-identifiers"}]},{"group":"Passkey diagnostics","pages":[{"title":"List all passkey events for a user","deprecated":null,"version":null,"sidebarTitle":"List all passkey events for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/passkeyEvents","href":"/api-reference/connect/backend/passkeyevents/list-all-passkey-events-for-a-user"},{"title":"Create a passkey event for a user","deprecated":null,"version":null,"sidebarTitle":"Create a passkey event for a user","openapi":"/api-reference/openapi/connect-backend.yaml post /users/{userID}/passkeyEvents","href":"/api-reference/connect/backend/passkeyevents/create-a-passkey-event-for-a-user"},{"title":"Delete a passkey event for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a passkey event for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/passkeyEvents/{passkeyEventID}","href":"/api-reference/connect/backend/passkeyevents/delete-a-passkey-event-for-a-user"},{"title":"List all passkey challenges for a user","deprecated":null,"version":null,"sidebarTitle":"List all passkey challenges for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/passkeyChallenges","href":"/api-reference/connect/backend/passkeychallenges/list-all-passkey-challenges-for-a-user"},{"title":"Update a passkey challenge for a user","deprecated":null,"version":null,"sidebarTitle":"Update a passkey challenge for a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}/passkeyChallenges/{passkeyChallengeID}","href":"/api-reference/connect/backend/passkeychallenges/update-a-passkey-challenge-for-a-user"}]},{"group":"Connect tokens","pages":[{"title":"List all ConnectTokens","deprecated":null,"version":null,"sidebarTitle":"List all connecttokens","openapi":"/api-reference/openapi/connect-backend.yaml get /connectTokens","href":"/api-reference/connect/backend/connecttokens/list-all-connecttokens"},{"title":"Create a connectToken","deprecated":null,"version":null,"sidebarTitle":"Create a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml post /connectTokens","href":"/api-reference/connect/backend/connecttokens/create-a-connecttoken"},{"title":"Delete a ConnectToken","deprecated":null,"version":null,"sidebarTitle":"Delete a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml delete /connectTokens/{connectTokenID}","href":"/api-reference/connect/backend/connecttokens/delete-a-connecttoken"},{"title":"Update a ConnectToken","deprecated":null,"version":null,"sidebarTitle":"Update a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml patch /connectTokens/{connectTokenID}","href":"/api-reference/connect/backend/connecttokens/update-a-connecttoken"}]},{"group":"Passkey ceremonies","pages":[{"title":"Start creating a new passkey","deprecated":null,"version":null,"sidebarTitle":"Start creating a new passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/append/start","href":"/api-reference/connect/backend/passkeys/start-creating-a-new-passkey"},{"title":"Finish creating a new passkey","deprecated":null,"version":null,"sidebarTitle":"Finish creating a new passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/append/finish","href":"/api-reference/connect/backend/passkeys/finish-creating-a-new-passkey"},{"title":"Start login with an existing passkey","deprecated":null,"version":null,"sidebarTitle":"Start login with an existing passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/login/start","href":"/api-reference/connect/backend/passkeys/start-login-with-an-existing-passkey"},{"title":"Finish login with an existing passkey","deprecated":null,"version":null,"sidebarTitle":"Finish login with an existing passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/login/finish","href":"/api-reference/connect/backend/passkeys/finish-login-with-an-existing-passkey"},{"title":"Verify signedPasskeyData from a passkey login","deprecated":null,"version":null,"sidebarTitle":"Verify signedpasskeydata from a passkey login","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/verifySignedData","href":"/api-reference/connect/backend/passkeys/verify-signedpasskeydata-from-a-passkey-login"},{"title":"Start login with an existing passkey (Conditional UI)","deprecated":null,"version":null,"sidebarTitle":"Start login with an existing passkey conditional ui","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/mediation/start","href":"/api-reference/connect/backend/passkeys/start-login-with-an-existing-passkey-conditional-ui"},{"title":"Finish login with an existing passkey (Conditional UI)","deprecated":null,"version":null,"sidebarTitle":"Finish login with an existing passkey conditional ui","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/mediation/finish","href":"/api-reference/connect/backend/passkeys/finish-login-with-an-existing-passkey-conditional-ui"}]},{"group":"Data exports","pages":[{"title":"List project exports","deprecated":null,"version":null,"sidebarTitle":"List project exports","openapi":"/api-reference/openapi/connect-backend.yaml get /exports/{exportType}","href":"/api-reference/connect/backend/exports/list-project-exports"},{"title":"Get download link for an export file","deprecated":null,"version":null,"sidebarTitle":"Get download link for an export file","openapi":"/api-reference/openapi/connect-backend.yaml get /exports/{exportType}/{filename}/downloadLink","href":"/api-reference/connect/backend/exports/get-download-link-for-an-export-file"}]},{"group":"Analytics and configuration","pages":[{"title":"Get project statistics","deprecated":null,"version":null,"sidebarTitle":"Get project statistics","openapi":"/api-reference/openapi/connect-backend.yaml get /stats","href":"/api-reference/connect/backend/connect-reads/get-stats"},{"title":"Get statistics over time","deprecated":null,"version":null,"sidebarTitle":"Get statistics over time","openapi":"/api-reference/openapi/connect-backend.yaml get /statsByTime","href":"/api-reference/connect/backend/connect-reads/get-statsbytime"},{"title":"List applications","deprecated":null,"version":null,"sidebarTitle":"List applications","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/applications","href":"/api-reference/connect/backend/connect-reads/get-connectapplications"},{"title":"Search Connect processes","deprecated":null,"version":null,"sidebarTitle":"Search Connect processes","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/processSearch","href":"/api-reference/connect/backend/connect-reads/post-connectprocesssearch"},{"title":"Get Connect processes by ID","deprecated":null,"version":null,"sidebarTitle":"Get Connect processes by ID","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/processList","href":"/api-reference/connect/backend/connect-reads/post-connectprocesslist"},{"title":"List process events","deprecated":null,"version":null,"sidebarTitle":"List process events","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processes/{processID}/events","href":"/api-reference/connect/backend/connect-reads/get-connectprocesses-events"},{"title":"Get process metadata","deprecated":null,"version":null,"sidebarTitle":"Get process metadata","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processMetadata/{processID}","href":"/api-reference/connect/backend/connect-reads/get-connectprocessmetadata"},{"title":"List subprocesses","deprecated":null,"version":null,"sidebarTitle":"List subprocesses","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processes/{processID}/subProcesses","href":"/api-reference/connect/backend/connect-reads/get-connectprocesses-subprocesses"},{"title":"List process errors","deprecated":null,"version":null,"sidebarTitle":"List process errors","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processErrors","href":"/api-reference/connect/backend/connect-reads/get-connectprocesserrors"},{"title":"List error patterns","deprecated":null,"version":null,"sidebarTitle":"List error patterns","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processErrorPatterns","href":"/api-reference/connect/backend/connect-reads/get-connectprocesserrorpatterns"},{"title":"List devices for multiple users","deprecated":null,"version":null,"sidebarTitle":"List devices for multiple users","openapi":"/api-reference/openapi/connect-backend.yaml post /devices","href":"/api-reference/connect/backend/connect-reads/list-devices-for-multiple-users"},{"title":"List shared devices for a user","deprecated":null,"version":null,"sidebarTitle":"List shared devices for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /sharedDevices","href":"/api-reference/connect/backend/connect-reads/get-shareddevices"},{"title":"List Android app configurations","deprecated":null,"version":null,"sidebarTitle":"List Android app configurations","openapi":"/api-reference/openapi/connect-backend.yaml get /androidappconfig","href":"/api-reference/connect/backend/connect-reads/get-androidappconfig"},{"title":"List Passkey Intelligence rulesets","deprecated":null,"version":null,"sidebarTitle":"List Passkey Intelligence rulesets","openapi":"/api-reference/openapi/connect-backend.yaml get /passkeyIntelligence/{projectID}/rulesetsMetadata","href":"/api-reference/connect/backend/connect-reads/get-passkeyintelligence-rulesetsmetadata"},{"title":"Get a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Get a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml get /passkeyIntelligence/{projectID}/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connect-reads/get-passkeyintelligence-rulesets"},{"title":"Get project configuration","deprecated":null,"version":null,"sidebarTitle":"Get project configuration","openapi":"/api-reference/openapi/connect-backend.yaml get /projectConfig","href":"/api-reference/connect/backend/connect-reads/get-projectconfig"}]},{"group":"App configuration","pages":[{"title":"Create an application","deprecated":null,"version":null,"sidebarTitle":"Create an application","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/applications","href":"/api-reference/connect/backend/connectmanagement/post-connectapplications"},{"title":"Create an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Create an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml post /androidappconfig","href":"/api-reference/connect/backend/connectmanagement/post-androidappconfig"},{"title":"Update an application","deprecated":null,"version":null,"sidebarTitle":"Update an application","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/applications/{applicationID}","href":"/api-reference/connect/backend/connectmanagement/put-connectapplications"},{"title":"Delete an application","deprecated":null,"version":null,"sidebarTitle":"Delete an application","openapi":"/api-reference/openapi/connect-backend.yaml delete /connect/applications/{applicationID}","href":"/api-reference/connect/backend/connectmanagement/delete-connectapplications"},{"title":"Update an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Update an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml put /androidappconfig/{androidAppConfigID}","href":"/api-reference/connect/backend/connectmanagement/put-androidappconfig"},{"title":"Delete an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Delete an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml delete /androidappconfig/{androidAppConfigID}","href":"/api-reference/connect/backend/connectmanagement/delete-androidappconfig"},{"title":"Create a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Create a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /passkeyIntelligence/{projectID}/rulesets","href":"/api-reference/connect/backend/connectmanagement/post-passkeyintelligence-rulesets"},{"title":"Activate a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Activate a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /passkeyIntelligence/{projectID}/rulesets/{rulesetID}/activate","href":"/api-reference/connect/backend/connectmanagement/post-passkeyintelligence-rulesets-activate"}]},{"group":"Rollout configuration","pages":[{"title":"Get Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Get Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/config","href":"/api-reference/connect/backend/connectrollout/get-connectconfig"},{"title":"Update Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Update Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/config","href":"/api-reference/connect/backend/connectrollout/put-connectconfig"},{"title":"Create Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Create Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/config","href":"/api-reference/connect/backend/connectrollout/post-connectconfig"},{"title":"List rollout rulesets","deprecated":null,"version":null,"sidebarTitle":"List rollout rulesets","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesetsMetadata","href":"/api-reference/connect/backend/connectrollout/get-connectrulesetsmetadata"},{"title":"Create a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Create a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets"},{"title":"Get a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Get a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets"},{"title":"Update a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Update a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml patch /connect/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connectrollout/patch-connectrulesets"},{"title":"Activate a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Activate a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets/{rulesetID}/activate","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets-activate"},{"title":"List identifier allowlists","deprecated":null,"version":null,"sidebarTitle":"List identifier allowlists","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/identifierWhitelists","href":"/api-reference/connect/backend/connectrollout/get-connectidentifierwhitelists"},{"title":"Create an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Create an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/identifierWhitelists","href":"/api-reference/connect/backend/connectrollout/post-connectidentifierwhitelists"},{"title":"Update an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Update an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/identifierWhitelists/{identifierWhitelistID}","href":"/api-reference/connect/backend/connectrollout/put-connectidentifierwhitelists"},{"title":"Delete an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Delete an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml delete /connect/identifierWhitelists/{identifierWhitelistID}","href":"/api-reference/connect/backend/connectrollout/delete-connectidentifierwhitelists"},{"title":"List rollout simulations","deprecated":null,"version":null,"sidebarTitle":"List rollout simulations","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}/simulations","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets-simulations"},{"title":"Create a rollout simulation","deprecated":null,"version":null,"sidebarTitle":"Create a rollout simulation","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets/{rulesetID}/simulations","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets-simulations"},{"title":"Get rollout simulation status","deprecated":null,"version":null,"sidebarTitle":"Get rollout simulation status","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}/simulations/{simulationID}","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets-simulations-1"}]}]}]}]},{"tab":"Passkey UI Flows","pages":[{"title":"Passkey UI Flows","href":"/passkey-ui-flows/overview"}]}]},"basePath":"","title":"Calculate historical metrics for an exact journey position - Corbado docs","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}