One row per lap per named corner. Decomposes corner skill into braking, mid-corner, and exit phases relative to field median (backward-only trailing-5 window, rebuilt 02g). Grain: (lap_id, corner_name). Null when field sample < 5 drivers. Enables high-res corner-by-corner skill profiling.
WINDOW CHANGE (rebuilt 02g): field medians now use RANGE BETWEEN 5 PRECEDING AND 1 PRECEDING (trailing-5, all drivers at each lap level, excluding the focal lap). Previous construction used FLOOR(lap/5)*5 block buckets which reached forward 1.877 laps on average (38.45% of the median drawn from future, up to 76% at block position 0), placing future label signals in the baseline. Rebuild eliminated reach; contamination signal was weak (corr +0.0344 vs +0.0083 control, marginal; sd 0.116 vs 0.043 block, noise-shaped).
COVERAGE: Lap-2 coverage loss (21.4pp on laps ≤ 6) is deterministic and non-leaking—lap 2 has no predecessor, so trailing window returns NULL. This loss sits on lap_number (already in contract via age_in_stint) and is declarable, not a hazard. No expanding window rescue attempted: lap 1 never reaches any lap to base a median on. An expanding window would pool early and late race track states (2026-09-08, measured trailing-5 vs expanding, identical formula, identical coverage loss on lap 2 in both cases). Trailing-5 kept for consistency with its width replacing the old block.
SIGN CONVENTION (00d, 2026-09-20): all three phases are POSITIVE = SECONDS LOST vs the field median, negative = seconds gained, and corner_residual_total_s is their straight sum and therefore a real “seconds lost at this corner”. The direction of the underlying measure decides the subtraction: braking_point_m and v_min_kph are higher-is-faster so their residuals are (field - own); throttle_point_m is higher-is-slower (on power later) so its residual is (own - field). Before 00d, braking_loss_s alone was built as (own - field), so positive meant braking LATER = faster, while mart_corner_skill_driver summed all three z-scores into corner_skill_index and ordered ASC with no negation in between — one of three terms entered a shipped public leaderboard inverted, and corner_residual_total_s summed a gain with two losses. Fixed at the source rather than negated in the mart (the ruling and the full consumer trace are in _improvements/work/00-corrections.md, 00d). The direction is now pinned against the raw geometry by transform/tests/assert_corner_skill_sign_convention.sql, which no sign-agnostic closure or count test could catch — that is how the defect survived both the 02g and 02c rebuilds of this model.
Seconds lost on corner entry vs the backward-only trailing-5 field median, as (field median - own braking_point_m) * dt_per_dm at the sector-2 trap speed. POSITIVE = braked EARLIER than the field = time LOST. Negative = braked later = time gained. NULL when field_corner_sample_n < 5 or the corner is taken flat (no braking_point_m), both real answers rather than missing data. The (field - own) orientation is the fix 00d made and matches the house convention already in the feature contract (int_lap_telemetry_aggregates’ braking_point_drift_m is base - lap).
mid_corner_residual_s
Yes
Seconds lost at the apex vs the trailing-5 field median, as (field v_min - own v_min) converted at the field apex speed. POSITIVE = carried LESS speed than the field = time LOST. Highest-coverage of the three phases: every corner has an apex.
exit_residual_s
Yes
Seconds lost on exit vs the trailing-5 field median, as (own throttle_point_m - field median) * dt_per_dm. POSITIVE = regained full throttle LATER than the field = time LOST. Note the subtraction runs the other way round from the other two phases because throttle_point_m is higher-is-slower while braking_point_m and v_min_kph are higher-is-faster; all three still read positive = loss.
corner_residual_total_s
Yes
braking_loss_s + mid_corner_residual_s + exit_residual_s: total seconds lost at this corner vs the field median. Non-NULL only where all three phases are measurable (the intersection, 38.59% of corner rows), which is why int_lap_corner_inputs aggregates each phase over its own measurable corners instead of using this column. Only a meaningful total since 00d gave the three phases one sign convention — before that it summed a gain with two losses, which is why 06b moved its headline off it. Closure pinned by transform/tests/assert_corner_closure.sql.
Number of field observations behind this corner/lap’s median. Trailing-5 window (laps t-5 to t-1, RANGE frame): counts valid, non-NULL braking_point_m rows across ALL drivers in that lap interval. Reported UNFLOORED and never NULL, which is the trailing_observation_count contract: the count is what the >= 5 floor is applied to, so flooring it here would make “no prior lap at all” and “four prior laps” indistinguishable and leave the residual NULLs unexplainable. 0 on lap 2, which has no predecessor. The residuals themselves NULL out through trailing_median’s own min_observations=5, and corner_unmapped_flag carries the gate.
TRUE when field_corner_sample_n < 5 (residuals are NULL)
⌘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":"6adc8f0d6db7bf41f81e6ca4","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Transform","count":141},{"language":"default","tag":"Model Reference","count":96},{"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/int/int_corner_skill_residuals","slug":"/reference/models/int/int_corner_skill_residuals","pageMetadata":{"title":"int_corner_skill_residuals","sidebarTitle":"int_corner_skill_residuals","description":"One row per lap per named corner.","href":"/reference/models/int/int_corner_skill_residuals"},"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 lap per named corner.\"\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`,em:`em`,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/residual`,children:`Residual`}),` family.`]}),`\n`,_jsx(_components.p,{children:`One row per lap per named corner. Decomposes corner skill into braking, mid-corner, and exit phases relative to field median (backward-only trailing-5 window, rebuilt 02g). Grain: (lap_id, corner_name). Null when field sample \u003c 5 drivers. Enables high-res corner-by-corner skill profiling.\nWINDOW CHANGE (rebuilt 02g): field medians now use RANGE BETWEEN 5 PRECEDING AND 1 PRECEDING (trailing-5, all drivers at each lap level, excluding the focal lap). Previous construction used FLOOR(lap/5)*5 block buckets which reached forward 1.877 laps on average (38.45% of the median drawn from future, up to 76% at block position 0), placing future label signals in the baseline. Rebuild eliminated reach; contamination signal was weak (corr +0.0344 vs +0.0083 control, marginal; sd 0.116 vs 0.043 block, noise-shaped).\nCOVERAGE: Lap-2 coverage loss (21.4pp on laps ≤ 6) is deterministic and non-leaking—lap 2 has no predecessor, so trailing window returns NULL. This loss sits on lap_number (already in contract via age_in_stint) and is declarable, not a hazard. No expanding window rescue attempted: lap 1 never reaches any lap to base a median on. An expanding window would pool early and late race track states (2026-09-08, measured trailing-5 vs expanding, identical formula, identical coverage loss on lap 2 in both cases). Trailing-5 kept for consistency with its width replacing the old block.\nSIGN CONVENTION (00d, 2026-09-20): all three phases are POSITIVE = SECONDS LOST vs the field median, negative = seconds gained, and corner_residual_total_s is their straight sum and therefore a real “seconds lost at this corner”. The direction of the underlying measure decides the subtraction: braking_point_m and v_min_kph are higher-is-faster so their residuals are (field - own); throttle_point_m is higher-is-slower (on power later) so its residual is (own - field). Before 00d, braking_loss_s alone was built as (own - field), so positive meant braking LATER = faster, while mart_corner_skill_driver summed all three z-scores into corner_skill_index and ordered ASC with no negation in between — one of three terms entered a shipped public leaderboard inverted, and corner_residual_total_s summed a gain with two losses. Fixed at the source rather than negated in the mart (the ruling and the full consumer trace are in _improvements/work/00-corrections.md, 00d). The direction is now pinned against the raw geometry by transform/tests/assert_corner_skill_sign_convention.sql, which no sign-agnostic closure or count test could catch — that is how the defect survived both the 02g and 02c rebuilds of this model.`}),`\n`,_jsx(Heading,{level:`2`,id:`lineage`,children:`Lineage`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n int_corner_metrics --> int_corner_skill_residuals\n int_stint_geometry --> int_corner_skill_residuals\n stg_laps --> int_corner_skill_residuals\n stg_sector_times --> int_corner_skill_residuals\n int_corner_skill_residuals --> int_corner_drift_from_early_stint\n int_corner_skill_residuals --> int_lap_corner_inputs\n int_corner_skill_residuals --> mart_corner_skill_driver\n style int_corner_skill_residuals 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:`intermediate`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Family`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/families/residual`,children:`Residual`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contract enforced`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tags`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`feature_engineering`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upstream`}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/reference/models/int/int_corner_metrics`,children:_jsx(_components.code,{children:`int_corner_metrics`})}),`, `,_jsx(_components.a,{href:`/reference/models/int/int_stint_geometry`,children:_jsx(_components.code,{children:`int_stint_geometry`})}),`, `,_jsx(_components.a,{href:`/reference/models/stg/stg_laps`,children:_jsx(_components.code,{children:`stg_laps`})}),`, `,_jsx(_components.a,{href:`/reference/models/stg/stg_sector_times`,children:_jsx(_components.code,{children:`stg_sector_times`})})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`10 tests`}),` `,_jsx(_components.a,{href:`/transform/ci/overview`,children:`guard`}),` this model - 6 generic, 4 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_id`})}),_jsx(_components.td,{}),_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`})})]}),_jsxs(_components.td,{children:[`PK = lap_id || ‘`,_jsx(_components.em,{children:`C`}),`’ || corner_name`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lap_id`})}),_jsx(_components.td,{}),_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:`FK to stg_laps`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_name`})}),_jsx(_components.td,{}),_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:`Named corner from dim_corners`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`braking_loss_s`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Seconds lost on corner entry vs the backward-only trailing-5 field median, as (field median - own braking_point_m) * dt_per_dm at the sector-2 trap speed. POSITIVE = braked EARLIER than the field = time LOST. Negative = braked later = time gained. NULL when field_corner_sample_n \u003c 5 or the corner is taken flat (no braking_point_m), both real answers rather than missing data. The (field - own) orientation is the fix 00d made and matches the house convention already in the feature contract (int_lap_telemetry_aggregates’ braking_point_drift_m is base - lap).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`mid_corner_residual_s`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Seconds lost at the apex vs the trailing-5 field median, as (field v_min - own v_min) converted at the field apex speed. POSITIVE = carried LESS speed than the field = time LOST. Highest-coverage of the three phases: every corner has an apex.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`exit_residual_s`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Seconds lost on exit vs the trailing-5 field median, as (own throttle_point_m - field median) * dt_per_dm. POSITIVE = regained full throttle LATER than the field = time LOST. Note the subtraction runs the other way round from the other two phases because throttle_point_m is higher-is-slower while braking_point_m and v_min_kph are higher-is-faster; all three still read positive = loss.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_residual_total_s`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`braking_loss_s + mid_corner_residual_s + exit_residual_s: total seconds lost at this corner vs the field median. Non-NULL only where all three phases are measurable (the intersection, 38.59% of corner rows), which is why int_lap_corner_inputs aggregates each phase over its own measurable corners instead of using this column. Only a meaningful total since 00d gave the three phases one sign convention — before that it summed a gain with two losses, which is why 06b moved its headline off it. Closure pinned by transform/tests/assert_corner_closure.sql.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`field_corner_sample_n`})}),_jsx(_components.td,{}),_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:`Number of field observations behind this corner/lap’s median. Trailing-5 window (laps t-5 to t-1, RANGE frame): counts valid, non-NULL braking_point_m rows across ALL drivers in that lap interval. Reported UNFLOORED and never NULL, which is the trailing_observation_count contract: the count is what the >= 5 floor is applied to, so flooring it here would make “no prior lap at all” and “four prior laps” indistinguishable and leave the residual NULLs unexplainable. 0 on lap 2, which has no predecessor. The residuals themselves NULL out through trailing_median’s own min_observations=5, and corner_unmapped_flag carries the gate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`corner_unmapped_flag`})}),_jsx(_components.td,{}),_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:`TRUE when field_corner_sample_n \u003c 5 (residuals are NULL)`})]})]})]})]})}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":"int_corner_skill_residuals","sidebarTitle":"int_corner_skill_residuals","description":"One row per lap per named corner.","href":"/reference/models/int/int_corner_skill_residuals"}}},"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":"int_corner_skill_residuals - Off The Pace • docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-03T18:48:43.148Z","originalFileLocation":"reference/models/int/int_corner_skill_residuals.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 lap per named corner.\">\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=\"int_corner_skill_residuals - Off The Pace • docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"One row per lap per named corner.\">\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/int/int_corner_skill_residuals\">\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=Intermediate\u0026amp;title=int_corner_skill_residuals\u0026amp;description=One+row+per+lap+per+named+corner.\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=99f8c7ea2c9749c9f0b85ca5fe4e70399a6d9cc4dded136a2dabfd2401fd04c4\">\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=\"int_corner_skill_residuals - Off The Pace • docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One row per lap per named corner.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://offthepace.mintlify.site/_mintlify/api/og/v2?division=Intermediate\u0026amp;title=int_corner_skill_residuals\u0026amp;description=One+row+per+lap+per+named+corner.\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=99f8c7ea2c9749c9f0b85ca5fe4e70399a6d9cc4dded136a2dabfd2401fd04c4\">\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/int/int_corner_skill_residuals\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/models/int/int_corner_skill_residuals.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/int/int_corner_skill_residuals#webpage\",\"url\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals\",\"name\":\"int_corner_skill_residuals\",\"description\":\"One row per lap per named corner.\",\"dateModified\":\"2026-10-03T18:48:43.148Z\",\"isPartOf\":{\"@id\":\"https://offthepace.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Model Reference\",\"item\":\"https://offthepace.mintlify.app/reference/models/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intermediate\",\"item\":\"https://offthepace.mintlify.app/reference/models/int/int_cell_power_law_fit\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"int_corner_skill_residuals\",\"item\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals#article\",\"headline\":\"int_corner_skill_residuals\",\"name\":\"int_corner_skill_residuals\",\"description\":\"One row per lap per named corner.\",\"url\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals\",\"mainEntityOfPage\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_corner_skill_residuals#webpage\"},\"dateModified\":\"2026-10-03T18:48:43.148Z\",\"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","description":"Per-corner telemetry 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","description":"One row per lap.","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","href":"/reference/models/dim/dim_constructors"},{"title":"dim_corners","sidebarTitle":"dim_corners","href":"/reference/models/dim/dim_corners"},{"title":"dim_drivers","sidebarTitle":"dim_drivers","href":"/reference/models/dim/dim_drivers"},{"title":"dim_driver_seasons","sidebarTitle":"dim_driver_seasons","href":"/reference/models/dim/dim_driver_seasons"},{"title":"dim_events","sidebarTitle":"dim_events","href":"/reference/models/dim/dim_events"}]}]},{"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":"int_corner_skill_residuals - Off The Pace • docs","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}