One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1’s own corner table (stg_circuit_info) rather than maintained by hand.
One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1’s own corner table (stg_circuit_info) rather than maintained by hand. Windows run from the apex minus corner_entry_margin_m to the apex plus corner_exit_margin_m, each end clipped at the neighbouring apex, so consecutive corners overlap only in the stretch between them which is both the exit of one and the approach to the next. Keyed per race because FastF1 publishes geometry per event and venues re-profile mid-history; a race whose corner table is missing borrows the nearest season of the same event slug and says so in geometry_source.
Event slug for the race (bahrain_grand_prix). Carried through int_corner_metrics as a label; nothing in this model pools across slugs.
circuit_id
varchar
Yes
Physical-circuit identifier from dim_circuits. Several event slugs can share one circuit_id (renamed events, double-headers), so it is non-unique here.
Distance of the corner apex from the start line, on the same reference as stg_telemetry.distance_m. Validated against the measured speed minimum on slow corners (median offset 2 m).
Window start: apex − corner_entry_margin_m, floored at the previous apex and at 0. Wide enough to contain the braking zone on corners with a clear approach.
’session’ where the race has its own corner table, ‘nearest_season’ where it borrows the closest season at the same event slug. 143 of 149 races carry their own geometry and four borrow; the two that cannot (2020 Sakhir and Tuscan, one-offs with no sibling event at the same slug) have no geometry anywhere and carry no rows.
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Off The Pace • docs","colors":{"primary":"#e40404"},"logo":{"light":"https://media.brand.dev/ac2251a0-45a7-490a-8cdc-9a56a531fba3.svg","dark":"https://media.brand.dev/ac2251a0-45a7-490a-8cdc-9a56a531fba3.svg"},"appearance":{"default":"dark"},"icons":{"library":"lucide"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Launch App","icon":"gauge","href":"https://off-the-pace.web.app"},{"anchor":"Docs","icon":"book","href":"https://offthepace.mintlify.app/"},{"anchor":"GitHub Repository","icon":{"name":"github","library":"fontawesome"},"href":"https://github.com/JustinClarke/off-the-pace"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"offthepace","hasAudioNarration":false,"actualSubdomain":"offthepace","customDomains":[],"gitSource":{"type":"github","owner":"justinclarke","repo":"off-the-pace","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af0d1536412adac01294931","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Transform","count":140},{"language":"default","tag":"Model Reference","count":95},{"language":"default","tag":"Intermediate","count":53},{"language":"default","tag":"App","count":44},{"language":"default","tag":"Macros","count":26},{"language":"default","tag":"Data","count":20},{"language":"default","tag":"Start Here","count":17},{"language":"default","tag":"Marts","count":17},{"language":"default","tag":"Staging","count":17},{"language":"default","tag":"Machine Learning","count":15}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"justinsavioclarke@outlook.com","showHelpButton":true}},"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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"@media (max-width: 639px){.mobile-grid>div{grid-template-columns:repeat(2, minmax(0, 1fr))!important;gap:0.5rem!important}.mobile-grid>div>a,.mobile-grid>div>div{padding:0.75rem!important;min-height:auto!important}.mobile-grid>div h2,.mobile-grid>div h3,.mobile-grid>div .font-semibold{font-size:0.875rem!important;line-height:1.25rem!important}.mobile-grid>div p{font-size:0.75rem!important;line-height:1rem!important;margin-top:0.25rem!important}.mobile-grid>div svg{width:1.25rem!important;height:1.25rem!important;margin-bottom:0.5rem!important}}"}],"page":{"pagePath":"reference/models/dim/dim_corners","slug":"/reference/models/dim/dim_corners","pageMetadata":{"title":"dim_corners","sidebarTitle":"dim_corners","description":"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1's own corner table (stg_circuit_info) rather than maintained by hand.","href":"/reference/models/dim/dim_corners"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1’s own corner table (stg_circuit_info) rather than maintained by hand.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Mermaid,Note,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Note,{children:[`Part of the `,_jsx(_components.a,{href:`/transform/families/reference`,children:`Reference`}),` family.`]}),`\n`,_jsx(_components.p,{children:`One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1’s own corner table (stg_circuit_info) rather than maintained by hand. Windows run from the apex minus corner_entry_margin_m to the apex plus corner_exit_margin_m, each end clipped at the neighbouring apex, so consecutive corners overlap only in the stretch between them which is both the exit of one and the approach to the next. Keyed per race because FastF1 publishes geometry per event and venues re-profile mid-history; a race whose corner table is missing borrows the nearest season of the same event slug and says so in geometry_source.`}),`\n`,_jsx(Heading,{level:`2`,id:`lineage`,children:`Lineage`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n dim_circuits --> dim_corners\n stg_circuit_info --> dim_corners\n stg_laps --> dim_corners\n dim_corners --> int_corner_metrics\n dim_corners --> int_microsector_corner_class\n style dim_corners fill:#e40404,stroke:#e40404,color:#fff`}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Property`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Layer`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`reference`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Family`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/families/reference`,children:`Reference`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contract enforced`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upstream`}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/reference/models/stg/stg_laps`,children:_jsx(_components.code,{children:`stg_laps`})}),`, `,_jsx(_components.a,{href:`/reference/models/stg/stg_circuit_info`,children:_jsx(_components.code,{children:`stg_circuit_info`})}),`, `,_jsx(_components.a,{href:`/reference/models/dim/dim_circuits`,children:_jsx(_components.code,{children:`dim_circuits`})})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`14 tests`}),` `,_jsx(_components.a,{href:`/transform/ci/overview`,children:`guard`}),` this model - 13 generic, 1 singular.`]}),`\n`,_jsx(Heading,{level:`2`,id:`columns`,children:`Columns`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Nullable`}),_jsx(_components.th,{children:`Tests`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_key`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})}),`, `,_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`unique`})})]}),_jsx(_components.td,{children:`PK, race_id || ’_’ || corner_name.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`race_year`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Season year of the race the window applies to.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`race_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Numeric FastF1 event id, the join key into stg_telemetry.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`track_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Event slug for the race (bahrain_grand_prix). Carried through int_corner_metrics as a label; nothing in this model pools across slugs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`circuit_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Physical-circuit identifier from dim_circuits. Several event slugs can share one circuit_id (renamed events, double-headers), so it is non-unique here.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_name`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Turn label, ‘Turn_’ || corner_number || corner_letter (e.g. Turn_7, Turn_7A).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_number`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`FastF1 corner number, ordered by distance along the lap.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_letter`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Suffix FastF1 uses where one numbered turn has several apexes; NULL otherwise.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`apex_distance_m`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`double`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Distance of the corner apex from the start line, on the same reference as stg_telemetry.distance_m. Validated against the measured speed minimum on slow corners (median offset 2 m).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`start_distance_m`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`double`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Window start: apex − corner_entry_margin_m, floored at the previous apex and at 0. Wide enough to contain the braking zone on corners with a clear approach.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`end_distance_m`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`double`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Window end: apex + corner_exit_margin_m, capped at the next apex so a corner never reaches past its neighbour.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`geometry_race_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})})}),_jsx(_components.td,{children:`Race whose FastF1 corner table produced this window (self, or the borrowed session).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`geometry_source`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`varchar`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/transform/ci/structural`,children:_jsx(_components.code,{children:`not_null`})}),`, `,_jsx(_components.a,{href:`/transform/ci/range-and-domain`,children:_jsx(_components.code,{children:`accepted_values`})})]}),_jsx(_components.td,{children:`’session’ where the race has its own corner table, ‘nearest_season’ where it borrows the closest season at the same event slug. 143 of 149 races carry their own geometry and four borrow; the two that cannot (2020 Sakhir and Tuscan, one-offs with no sibling event at the same slug) have no geometry anywhere and carry no rows.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"dim_corners","sidebarTitle":"dim_corners","description":"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1's own corner table (stg_circuit_info) rather than maintained by hand.","href":"/reference/models/dim/dim_corners"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Lineage","slug":"lineage","depth":2,"children":[]},{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Columns","slug":"columns","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"offthepace","siteName":"Off The Pace • docs","title":"dim_corners - Off The Pace • docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T19:45:32.024Z","originalFileLocation":"reference/models/dim/dim_corners.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=\"dark\"}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=\"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1\u0026#x27;s own corner table (stg_circuit_info) rather than maintained by hand.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Off The Pace • docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/offthepace/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/offthepace/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/offthepace/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/offthepace/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"dim_corners - Off The Pace • docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1\u0026#x27;s own corner table (stg_circuit_info) rather than maintained by hand.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Off The Pace • docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://offthepace.mintlify.app/reference/models/dim/dim_corners\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://offthepace.mintlify.site/_mintlify/api/og/v2?division=Dimensions\u0026amp;title=dim_corners\u0026amp;description=One+row+per+race+%C3%97+circuit+turn%3A+the+telemetry+distance+window+each+corner+owns%2C+derived+from+FastF1%27s+own+corner+table+%28stg_circuit_info%29+rather+than+maintaine\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=e80e25f5a82e4cd0e0d0efb52292b3377f4ed4da7f8573f843a7e8630ba1ea84\">\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=\"dim_corners - Off The Pace • docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1\u0026#x27;s own corner table (stg_circuit_info) rather than maintained by hand.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://offthepace.mintlify.site/_mintlify/api/og/v2?division=Dimensions\u0026amp;title=dim_corners\u0026amp;description=One+row+per+race+%C3%97+circuit+turn%3A+the+telemetry+distance+window+each+corner+owns%2C+derived+from+FastF1%27s+own+corner+table+%28stg_circuit_info%29+rather+than+maintaine\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=e80e25f5a82e4cd0e0d0efb52292b3377f4ed4da7f8573f843a7e8630ba1ea84\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/offthepace/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Off The Pace • docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#e40404\">\u003clink data-mint-head rel=\"canonical\" href=\"https://offthepace.mintlify.app/reference/models/dim/dim_corners\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/models/dim/dim_corners.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://offthepace.mintlify.app/#organization\",\"name\":\"Off The Pace • docs\",\"url\":\"https://offthepace.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://media.brand.dev/ac2251a0-45a7-490a-8cdc-9a56a531fba3.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://offthepace.mintlify.app#website\",\"name\":\"Off The Pace • docs\",\"url\":\"https://offthepace.mintlify.app\",\"publisher\":{\"@id\":\"https://offthepace.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners#webpage\",\"url\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners\",\"name\":\"dim_corners\",\"description\":\"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1's own corner table (stg_circuit_info) rather than maintained by hand.\",\"dateModified\":\"2026-11-08T19:45:32.024Z\",\"isPartOf\":{\"@id\":\"https://offthepace.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Model Reference\",\"item\":\"https://offthepace.mintlify.app/reference/models/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dimensions\",\"item\":\"https://offthepace.mintlify.app/reference/models/dim/dim_circuits\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"dim_corners\",\"item\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners#article\",\"headline\":\"dim_corners\",\"name\":\"dim_corners\",\"description\":\"One row per race × circuit turn: the telemetry distance window each corner owns, derived from FastF1's own corner table (stg_circuit_info) rather than maintained by hand.\",\"url\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners\",\"mainEntityOfPage\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/dim/dim_corners#webpage\"},\"dateModified\":\"2026-11-08T19:45:32.024Z\",\"publisher\":{\"@id\":\"https://offthepace.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://offthepace.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Off The Pace • docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Off The Pace • docs","nav":{"global":{"anchors":[{"anchor":"Launch App","icon":"gauge","href":"https://off-the-pace.web.app"},{"anchor":"Docs","icon":"book","href":"https://offthepace.mintlify.app/"},{"anchor":"GitHub Repository","icon":{"name":"github","library":"fontawesome"},"href":"https://github.com/JustinClarke/off-the-pace"}]},"tabs":[{"tab":"Start Here","icon":"compass","pages":[{"title":"Start Here","href":""}]},{"tab":"Data","icon":"table","pages":[{"title":"Data","href":"/data/overview"}]},{"tab":"Transform","icon":"layers","groups":[{"group":"Concepts","icon":"calculator","pages":[{"title":"Transform layer overview: the model DAG and the eight families","sidebarTitle":"Transform Layer","href":"/transform/overview"},{"title":"The additive lap decomposition identity explained","sidebarTitle":"Additive Identity","href":"/decomposition/additive-identity"},{"title":"How lap time components are identified and estimated","sidebarTitle":"Methodology","href":"/decomposition/methodology"},{"title":"Understanding and predicting tyre cliff onset with ML","sidebarTitle":"Tyre Cliff","href":"/decomposition/tyre-cliff"},{"title":"Driver isolation: pure pace and relative pace","sidebarTitle":"Driver isolation","href":"/decomposition/driver-isolation"},{"title":"Known limitations of the lap decomposition pipeline","sidebarTitle":"Limitations","href":"/decomposition/limitations"}]},{"group":"How the Layer Works","icon":"workflow","pages":[{"title":"Staging family: Bronze Parquet to typed views","sidebarTitle":"Staging","href":"/transform/families/staging"},{"title":"Reference family: seed-backed and laps-derived dimensions","sidebarTitle":"Reference","href":"/transform/families/reference"},{"title":"Physics family: deterministic and EMA lap state","sidebarTitle":"Physics","href":"/transform/families/physics"},{"title":"Pace Baselines family: the curves every lap is measured against","sidebarTitle":"Pace Baselines","href":"/transform/families/pace-baselines"},{"title":"Skill family: de-biasing the car to leave the driver","sidebarTitle":"Skill","href":"/transform/families/skill"},{"title":"Residual Decomposition family: the additive identity and what it leaves over","sidebarTitle":"Residual","href":"/transform/families/residual"},{"title":"Strategy family: pit-stop and safety-car decision support","sidebarTitle":"Strategy","href":"/transform/families/strategy"},{"title":"Feature Marts family: the gold layer","sidebarTitle":"Marts","href":"/transform/families/marts"}]},{"group":"Model Reference","icon":"database","pages":[{"title":"dbt Models","href":"/reference/models/index"},{"group":"Staging","expanded":false,"pages":[{"title":"stg_circuit_info","sidebarTitle":"stg_circuit_info","href":"/reference/models/stg/stg_circuit_info"},{"title":"stg_events","sidebarTitle":"stg_events","href":"/reference/models/stg/stg_events"},{"title":"stg_lap_tyre_qa","sidebarTitle":"stg_lap_tyre_qa","href":"/reference/models/stg/stg_lap_tyre_qa"},{"title":"stg_laps","sidebarTitle":"stg_laps","href":"/reference/models/stg/stg_laps"},{"title":"stg_laps_qualifying","sidebarTitle":"stg_laps_qualifying","href":"/reference/models/stg/stg_laps_qualifying"},{"title":"stg_pits","sidebarTitle":"stg_pits","href":"/reference/models/stg/stg_pits"},{"title":"stg_race_control","sidebarTitle":"stg_race_control","href":"/reference/models/stg/stg_race_control"},{"title":"stg_results","sidebarTitle":"stg_results","href":"/reference/models/stg/stg_results"},{"title":"stg_results_qualifying","sidebarTitle":"stg_results_qualifying","href":"/reference/models/stg/stg_results_qualifying"},{"title":"stg_sector_times","sidebarTitle":"stg_sector_times","href":"/reference/models/stg/stg_sector_times"},{"title":"stg_session_status","sidebarTitle":"stg_session_status","href":"/reference/models/stg/stg_session_status"},{"title":"stg_session_status_qualifying","sidebarTitle":"stg_session_status_qualifying","href":"/reference/models/stg/stg_session_status_qualifying"},{"title":"stg_telemetry","sidebarTitle":"stg_telemetry","href":"/reference/models/stg/stg_telemetry"},{"title":"stg_telemetry_position","sidebarTitle":"stg_telemetry_position","href":"/reference/models/stg/stg_telemetry_position"},{"title":"stg_track_status","sidebarTitle":"stg_track_status","href":"/reference/models/stg/stg_track_status"},{"title":"stg_tyre_allocations","sidebarTitle":"stg_tyre_allocations","href":"/reference/models/stg/stg_tyre_allocations"},{"title":"stg_weather","sidebarTitle":"stg_weather","href":"/reference/models/stg/stg_weather"}]},{"group":"Intermediate","expanded":false,"pages":[{"title":"int_cell_power_law_fit","sidebarTitle":"int_cell_power_law_fit","href":"/reference/models/int/int_cell_power_law_fit"},{"title":"int_circuit_x_constructor_interaction","sidebarTitle":"int_circuit_x_constructor_interaction","href":"/reference/models/int/int_circuit_x_constructor_interaction"},{"title":"int_compound_cliff_predicted","sidebarTitle":"int_compound_cliff_predicted","href":"/reference/models/int/int_compound_cliff_predicted"},{"title":"int_constructor_car_fe","sidebarTitle":"int_constructor_car_fe","href":"/reference/models/int/int_constructor_car_fe"},{"title":"int_constructor_car_fe_isolation","sidebarTitle":"int_constructor_car_fe_isolation","href":"/reference/models/int/int_constructor_car_fe_isolation"},{"title":"int_constructor_deg_sensitivity","sidebarTitle":"int_constructor_deg_sensitivity","href":"/reference/models/int/int_constructor_deg_sensitivity"},{"title":"int_constructor_structural_pace","sidebarTitle":"int_constructor_structural_pace","href":"/reference/models/int/int_constructor_structural_pace"},{"title":"int_constructor_structural_pace_qualifying","sidebarTitle":"int_constructor_structural_pace_qualifying","href":"/reference/models/int/int_constructor_structural_pace_qualifying"},{"title":"int_corner_drift_from_early_stint","sidebarTitle":"int_corner_drift_from_early_stint","href":"/reference/models/int/int_corner_drift_from_early_stint"},{"title":"int_corner_metrics","sidebarTitle":"int_corner_metrics","href":"/reference/models/int/int_corner_metrics"},{"title":"int_corner_skill_residuals","sidebarTitle":"int_corner_skill_residuals","href":"/reference/models/int/int_corner_skill_residuals"},{"title":"int_dirty_air_tax_component","sidebarTitle":"int_dirty_air_tax_component","href":"/reference/models/int/int_dirty_air_tax_component"},{"title":"int_driver_circuit_affinity","sidebarTitle":"int_driver_circuit_affinity","href":"/reference/models/int/int_driver_circuit_affinity"},{"title":"int_driver_circuit_era_affinity","sidebarTitle":"int_driver_circuit_era_affinity","href":"/reference/models/int/int_driver_circuit_era_affinity"},{"title":"int_driver_isolation_lap_pace","sidebarTitle":"int_driver_isolation_lap_pace","href":"/reference/models/int/int_driver_isolation_lap_pace"},{"title":"int_driver_isolation_lap_panel","sidebarTitle":"int_driver_isolation_lap_panel","href":"/reference/models/int/int_driver_isolation_lap_panel"},{"title":"int_driver_isolation_lap_values","sidebarTitle":"int_driver_isolation_lap_values","href":"/reference/models/int/int_driver_isolation_lap_values"},{"title":"int_driver_isolation_stint_tyre","sidebarTitle":"int_driver_isolation_stint_tyre","href":"/reference/models/int/int_driver_isolation_stint_tyre"},{"title":"int_driver_race_skill_loro","sidebarTitle":"int_driver_race_skill_loro","href":"/reference/models/int/int_driver_race_skill_loro"},{"title":"int_driver_season_ratings","sidebarTitle":"int_driver_season_ratings","href":"/reference/models/int/int_driver_season_ratings"},{"title":"int_era_normalized_driver_rating","sidebarTitle":"int_era_normalized_driver_rating","href":"/reference/models/int/int_era_normalized_driver_rating"},{"title":"int_event_corrections","sidebarTitle":"int_event_corrections","href":"/reference/models/int/int_event_corrections"},{"title":"int_field_pace_curve","sidebarTitle":"int_field_pace_curve","href":"/reference/models/int/int_field_pace_curve"},{"title":"int_lap_air_state","sidebarTitle":"int_lap_air_state","href":"/reference/models/int/int_lap_air_state"},{"title":"int_lap_anomaly_flags","sidebarTitle":"int_lap_anomaly_flags","href":"/reference/models/int/int_lap_anomaly_flags"},{"title":"int_lap_corner_drift","sidebarTitle":"int_lap_corner_drift","href":"/reference/models/int/int_lap_corner_drift"},{"title":"int_lap_corner_inputs","sidebarTitle":"int_lap_corner_inputs","href":"/reference/models/int/int_lap_corner_inputs"},{"title":"int_lap_fuel_state","sidebarTitle":"int_lap_fuel_state","href":"/reference/models/int/int_lap_fuel_state"},{"title":"int_lap_fuel_state_qualifying","sidebarTitle":"int_lap_fuel_state_qualifying","href":"/reference/models/int/int_lap_fuel_state_qualifying"},{"title":"int_lap_normalized_pace","sidebarTitle":"int_lap_normalized_pace","href":"/reference/models/int/int_lap_normalized_pace"},{"title":"int_lap_proximity","sidebarTitle":"int_lap_proximity","href":"/reference/models/int/int_lap_proximity"},{"title":"int_lap_residual_decomposed","sidebarTitle":"int_lap_residual_decomposed","href":"/reference/models/int/int_lap_residual_decomposed"},{"title":"int_lap_residual_decomposed_qualifying","sidebarTitle":"int_lap_residual_decomposed_qualifying","href":"/reference/models/int/int_lap_residual_decomposed_qualifying"},{"title":"int_lap_residual_stint_detrend","sidebarTitle":"int_lap_residual_stint_detrend","href":"/reference/models/int/int_lap_residual_stint_detrend"},{"title":"int_lap_telemetry_aggregates","sidebarTitle":"int_lap_telemetry_aggregates","href":"/reference/models/int/int_lap_telemetry_aggregates"},{"title":"int_lap_thermal_proxy","sidebarTitle":"int_lap_thermal_proxy","href":"/reference/models/int/int_lap_thermal_proxy"},{"title":"int_pit_loss_circuit","sidebarTitle":"int_pit_loss_circuit","href":"/reference/models/int/int_pit_loss_circuit"},{"title":"int_pit_strategy_cost_curve","sidebarTitle":"int_pit_strategy_cost_curve","href":"/reference/models/int/int_pit_strategy_cost_curve"},{"title":"int_pit_strategy_value","sidebarTitle":"int_pit_strategy_value","href":"/reference/models/int/int_pit_strategy_value"},{"title":"int_power_law_lap","sidebarTitle":"int_power_law_lap","href":"/reference/models/int/int_power_law_lap"},{"title":"int_qualifying_decomposed","sidebarTitle":"int_qualifying_decomposed","href":"/reference/models/int/int_qualifying_decomposed"},{"title":"int_qualifying_driver_summary","sidebarTitle":"int_qualifying_driver_summary","href":"/reference/models/int/int_qualifying_driver_summary"},{"title":"int_qualifying_push_laps","sidebarTitle":"int_qualifying_push_laps","href":"/reference/models/int/int_qualifying_push_laps"},{"title":"int_qualifying_segments","sidebarTitle":"int_qualifying_segments","href":"/reference/models/int/int_qualifying_segments"},{"title":"int_sc_hazard_history","sidebarTitle":"int_sc_hazard_history","href":"/reference/models/int/int_sc_hazard_history"},{"title":"int_sector_residual_decomposed","sidebarTitle":"int_sector_residual_decomposed","href":"/reference/models/int/int_sector_residual_decomposed"},{"title":"int_stint_end_regime","sidebarTitle":"int_stint_end_regime","href":"/reference/models/int/int_stint_end_regime"},{"title":"int_stint_geometry","sidebarTitle":"int_stint_geometry","href":"/reference/models/int/int_stint_geometry"},{"title":"int_stint_power_law_fit","sidebarTitle":"int_stint_power_law_fit","href":"/reference/models/int/int_stint_power_law_fit"},{"title":"int_synthetic_teammate","sidebarTitle":"int_synthetic_teammate","href":"/reference/models/int/int_synthetic_teammate"},{"title":"int_track_evolution","sidebarTitle":"int_track_evolution","href":"/reference/models/int/int_track_evolution"},{"title":"int_track_geometry","sidebarTitle":"int_track_geometry","href":"/reference/models/int/int_track_geometry"},{"title":"int_tyre_surface_vs_bulk_decoupling","sidebarTitle":"int_tyre_surface_vs_bulk_decoupling","href":"/reference/models/int/int_tyre_surface_vs_bulk_decoupling"}]},{"group":"Marts","expanded":false,"pages":[{"title":"fct_cliff_prediction_features","sidebarTitle":"fct_cliff_prediction_features","href":"/reference/models/fct/fct_cliff_prediction_features"},{"title":"fct_driver_isolation_lap","sidebarTitle":"fct_driver_isolation_lap","href":"/reference/models/fct/fct_driver_isolation_lap"},{"title":"fct_driver_isolation_pair_lap","sidebarTitle":"fct_driver_isolation_pair_lap","href":"/reference/models/fct/fct_driver_isolation_pair_lap"},{"title":"fct_driver_isolation_race","sidebarTitle":"fct_driver_isolation_race","href":"/reference/models/fct/fct_driver_isolation_race"},{"title":"fct_driver_isolation_stint","sidebarTitle":"fct_driver_isolation_stint","href":"/reference/models/fct/fct_driver_isolation_stint"},{"title":"fct_driver_skill_features","sidebarTitle":"fct_driver_skill_features","href":"/reference/models/fct/fct_driver_skill_features"},{"title":"fct_ghost_car_pace","sidebarTitle":"fct_ghost_car_pace","href":"/reference/models/fct/fct_ghost_car_pace"},{"title":"fct_ghost_race_finish","sidebarTitle":"fct_ghost_race_finish","href":"/reference/models/fct/fct_ghost_race_finish"},{"title":"fct_lap_residuals","sidebarTitle":"fct_lap_residuals","href":"/reference/models/fct/fct_lap_residuals"},{"title":"fct_power_law_training","sidebarTitle":"fct_power_law_training","href":"/reference/models/fct/fct_power_law_training"},{"title":"fct_stint_features","sidebarTitle":"fct_stint_features","href":"/reference/models/fct/fct_stint_features"},{"title":"fct_telemetry_deltas","sidebarTitle":"fct_telemetry_deltas","href":"/reference/models/fct/fct_telemetry_deltas"},{"title":"mart_corner_skill_driver","sidebarTitle":"mart_corner_skill_driver","href":"/reference/models/fct/mart_corner_skill_driver"},{"title":"mart_degradation_history_envelope","sidebarTitle":"mart_degradation_history_envelope","href":"/reference/models/fct/mart_degradation_history_envelope"},{"title":"mart_driver_season_summary","sidebarTitle":"mart_driver_season_summary","href":"/reference/models/fct/mart_driver_season_summary"},{"title":"mart_metric_benchmark","sidebarTitle":"mart_metric_benchmark","href":"/reference/models/fct/mart_metric_benchmark"},{"title":"mart_race_driver_summary","sidebarTitle":"mart_race_driver_summary","href":"/reference/models/fct/mart_race_driver_summary"}]},{"group":"Dimensions","expanded":false,"pages":[{"title":"dim_circuits","sidebarTitle":"dim_circuits","href":"/reference/models/dim/dim_circuits"},{"title":"dim_compounds_season","sidebarTitle":"dim_compounds_season","href":"/reference/models/dim/dim_compounds_season"},{"title":"dim_constructors","sidebarTitle":"dim_constructors","description":"One row per constructor (team) name, from a fixed list in the model rather than from the loaded laps (CO-29), so every build, the CI fixture included, has every team.","href":"/reference/models/dim/dim_constructors"},{"title":"dim_corners","sidebarTitle":"dim_corners","href":"/reference/models/dim/dim_corners"},{"title":"dim_drivers","sidebarTitle":"dim_drivers","description":"One row per driver_id.","href":"/reference/models/dim/dim_drivers"},{"title":"dim_driver_seasons","sidebarTitle":"dim_driver_seasons","href":"/reference/models/dim/dim_driver_seasons"}]}]},{"group":"The CI Contract","icon":"shield-check","pages":[{"title":"The CI Contract: how the transform layer's test suite keeps the DAG honest","sidebarTitle":"Overview","href":"/transform/ci/overview"},{"title":"Structural tests: grain and completeness across every model","sidebarTitle":"Structural","href":"/transform/ci/structural"},{"title":"Range \u0026 domain tests: plausibility, enums, and monotonicity","sidebarTitle":"Range \u0026 Domain","href":"/transform/ci/range-and-domain"},{"title":"Identity-closure tests: the additive identities, enforced","sidebarTitle":"Identity-Closure","href":"/transform/ci/identity-closure"},{"title":"Domain-constraint tests: physical and statistical invariants","sidebarTitle":"Domain Constraints","href":"/transform/ci/domain-constraints"},{"title":"Regression gates: baseline comparison, lint, and byte-stability","sidebarTitle":"Regression Gates","href":"/transform/ci/regression-gates"}]},{"group":"Macros","icon":"code","pages":[{"title":"Macros: the seven reusable building blocks","sidebarTitle":"Overview","href":"/transform/macros"},{"title":"dbt Macros","href":"/reference/macros/index"},{"title":"assert_additive_identity","sidebarTitle":"assert_additive_identity","href":"/reference/macros/assert_additive_identity"},{"title":"bayesian_shrinkage","sidebarTitle":"bayesian_shrinkage","href":"/reference/macros/bayesian_shrinkage"},{"title":"circuit_id_from_name","sidebarTitle":"circuit_id_from_name","href":"/reference/macros/circuit_id_from_name"},{"title":"clamp_or_null","sidebarTitle":"clamp_or_null","href":"/reference/macros/clamp_or_null"},{"title":"clean_lap_filter","sidebarTitle":"clean_lap_filter","href":"/reference/macros/clean_lap_filter"},{"title":"cliff_plateau_s","sidebarTitle":"cliff_plateau_s","href":"/reference/macros/cliff_plateau_s"},{"title":"cliff_ramp_frac","sidebarTitle":"cliff_ramp_frac","href":"/reference/macros/cliff_ramp_frac"},{"title":"cliff_ramp_slope_s_per_lap","sidebarTitle":"cliff_ramp_slope_s_per_lap","href":"/reference/macros/cliff_ramp_slope_s_per_lap"},{"title":"cliff_severity_span","sidebarTitle":"cliff_severity_span","href":"/reference/macros/cliff_severity_span"},{"title":"cliff_severity_term","sidebarTitle":"cliff_severity_term","href":"/reference/macros/cliff_severity_term"},{"title":"compound_cliff_wear_s","sidebarTitle":"compound_cliff_wear_s","href":"/reference/macros/compound_cliff_wear_s"},{"title":"driver_isolation_identity_terms","sidebarTitle":"driver_isolation_identity_terms","href":"/reference/macros/driver_isolation_identity_terms"},{"title":"driver_isolation_pure_season_offset","sidebarTitle":"driver_isolation_pure_season_offset","href":"/reference/macros/driver_isolation_pure_season_offset"},{"title":"driver_isolation_reliability","sidebarTitle":"driver_isolation_reliability","href":"/reference/macros/driver_isolation_reliability"},{"title":"fuel_regulatory_max_kg","sidebarTitle":"fuel_regulatory_max_kg","href":"/reference/macros/fuel_regulatory_max_kg"},{"title":"normal_cdf","sidebarTitle":"normal_cdf","href":"/reference/macros/normal_cdf"},{"title":"normalize_compound","sidebarTitle":"normalize_compound","href":"/reference/macros/normalize_compound"},{"title":"posterior_variance","sidebarTitle":"posterior_variance","href":"/reference/macros/posterior_variance"},{"title":"power_law_beta_grid","sidebarTitle":"power_law_beta_grid","href":"/reference/macros/power_law_beta_grid"},{"title":"trailing_median","sidebarTitle":"trailing_median","href":"/reference/macros/trailing_median"},{"title":"trailing_observation_count","sidebarTitle":"trailing_observation_count","href":"/reference/macros/trailing_observation_count"},{"title":"trailing_sum","sidebarTitle":"trailing_sum","href":"/reference/macros/trailing_sum"},{"title":"trailing_value_expr","sidebarTitle":"trailing_value_expr","href":"/reference/macros/trailing_value_expr"},{"title":"trailing_window_frame","sidebarTitle":"trailing_window_frame","href":"/reference/macros/trailing_window_frame"}]}]},{"tab":"Machine Learning","icon":"brain","pages":[{"title":"Machine Learning","href":"/ml/overview"}]},{"tab":"App","icon":"layout-dashboard","pages":[{"title":"App","href":"/app/overview"}]}]},"basePath":"","title":"dim_corners - Off The Pace • docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}