One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value’s header described for two years and never computed.
One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value’s header described for two years and never computed. Cost of pitting after L laps on the current set = wear on the old set over those laps + wear on the next set over the rest of the horizon + a compound baseline offset + pit-lane loss discounted by the chance a safety car has already appeared. L = H is the no-stop candidate, which pays no pit term and is what makes a stop have to justify itself. THE SC DISCOUNT IS LOAD-BEARING: under a fixed one-stop the pit loss is the same whenever you take it, so it adds a constant to every candidate and cancels out of the argmin entirely - a longer pit lane would move nothing. Discounting it by 1 - (1 - m)(1 - (1 - h)^L), with h from int_sc_hazard_history, is what makes waiting pay and gives the model the property assert_pit_loss_pushes_optimum_later checks. Per-lap wear is capped at var(‘compound_wear_max_s_per_lap’) — the shared bound, which int_compound_cliff_predicted now applies to the same three terms. The cliff polynomial is unbounded, reaching 136 s/lap extrapolated to age 80 and already 93 s/lap in-sample.
window = this stint’s first lap through the next stint’s last; race = through the driver’s last lap of the race. Both are emitted for every stint that has them.
Cumulative wear over the laps run on the current set, evaluated on its own fitted curve from the age the stint opened on - a stint started on a used set begins part-way up that curve rather than at zero.
Per-lap pace offset between the two compounds (compound_grip_peak plus the optimal-temperature term) over the laps on the new set. Both inputs are per-compound CONSTANTS in compound_cliff_params, never fitted, and grip_peak as typed prices SOFT slower than HARD. var(‘pit_strategy_baseline_delta’) decides whether this term is allowed to move the argmin; setting it FALSE zeroes this column.
Per-racing-lap SC/VSC hazard for the circuit, EB-shrunk, from int_sc_hazard_history. 0.0 for a circuit with no ingested track_status timeline, which makes the discount constant and returns the model to the pit-loss-cancels case.
Fraction of the green-flag pit-lane loss this candidate expects to pay. Non-increasing in the candidate lap - asserted by assert_pit_discount_monotone - and a hard 0 for the no-stop candidate.
Everything that does not scale with pit_lane_loss_s. Split out so a consumer - or assert_pit_loss_pushes_optimum_later - can re-minimise at a different pit loss without rebuilding the curve.
wear_cost_s + pit_lane_loss_s x pit_discount_factor. The argmin target.
⌘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_pit_strategy_cost_curve","slug":"/reference/models/int/int_pit_strategy_cost_curve","pageMetadata":{"title":"int_pit_strategy_cost_curve","sidebarTitle":"int_pit_strategy_cost_curve","description":"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value's header described for two years and never computed.","href":"/reference/models/int/int_pit_strategy_cost_curve"},"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 (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value’s header described for two years and never computed.\"\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/strategy`,children:`Strategy`}),` family.`]}),`\n`,_jsx(_components.p,{children:`One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value’s header described for two years and never computed. Cost of pitting after L laps on the current set = wear on the old set over those laps + wear on the next set over the rest of the horizon + a compound baseline offset + pit-lane loss discounted by the chance a safety car has already appeared. L = H is the no-stop candidate, which pays no pit term and is what makes a stop have to justify itself. THE SC DISCOUNT IS LOAD-BEARING: under a fixed one-stop the pit loss is the same whenever you take it, so it adds a constant to every candidate and cancels out of the argmin entirely - a longer pit lane would move nothing. Discounting it by 1 - (1 - m)(1 - (1 - h)^L), with h from int_sc_hazard_history, is what makes waiting pay and gives the model the property assert_pit_loss_pushes_optimum_later checks. Per-lap wear is capped at var(‘compound_wear_max_s_per_lap’) — the shared bound, which int_compound_cliff_predicted now applies to the same three terms. The cliff polynomial is unbounded, reaching 136 s/lap extrapolated to age 80 and already 93 s/lap in-sample.`}),`\n`,_jsx(Heading,{level:`2`,id:`lineage`,children:`Lineage`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n dim_compounds_season --> int_pit_strategy_cost_curve\n int_pit_loss_circuit --> int_pit_strategy_cost_curve\n int_sc_hazard_history --> int_pit_strategy_cost_curve\n int_stint_geometry --> int_pit_strategy_cost_curve\n stg_weather --> int_pit_strategy_cost_curve\n int_pit_strategy_cost_curve --> int_pit_strategy_value\n style int_pit_strategy_cost_curve 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/strategy`,children:`Strategy`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contract enforced`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tags`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`simulation`}),`, `,_jsx(_components.code,{children:`strategy`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upstream`}),_jsxs(_components.td,{children:[_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_weather`,children:_jsx(_components.code,{children:`stg_weather`})}),`, `,_jsx(_components.a,{href:`/reference/models/dim/dim_compounds_season`,children:_jsx(_components.code,{children:`dim_compounds_season`})}),`, `,_jsx(_components.a,{href:`/reference/models/int/int_pit_loss_circuit`,children:_jsx(_components.code,{children:`int_pit_loss_circuit`})}),`, `,_jsx(_components.a,{href:`/reference/models/int/int_sc_hazard_history`,children:_jsx(_components.code,{children:`int_sc_hazard_history`})})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Model-level tests`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`unique_combination_of_columns`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`18 tests`}),` `,_jsx(_components.a,{href:`/transform/ci/overview`,children:`guard`}),` this model - 16 generic, 2 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:`stint_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 int_stint_geometry. Part of the compound PK.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`horizon_scope`})}),_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/range-and-domain`,children:_jsx(_components.code,{children:`accepted_values`})})]}),_jsx(_components.td,{children:`window = this stint’s first lap through the next stint’s last; race = through the driver’s last lap of the race. Both are emitted for every stint that has them.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`horizon_laps`})}),_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:`Length of the horizon in valid laps.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`candidate_pit_lap_offset`})}),_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:`Laps run on the current set before boxing, in valid laps. Runs 1..horizon_laps; the last value is the no-stop candidate. Part of the compound PK.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`laps_on_new_set`})}),_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:`horizon_laps minus the offset. Zero for the no-stop candidate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`old_wear_cost_s`})}),_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:`Cumulative wear over the laps run on the current set, evaluated on its own fitted curve from the age the stint opened on - a stint started on a used set begins part-way up that curve rather than at zero.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`new_wear_cost_s`})}),_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:`Cumulative wear over the rest of the horizon on the next set, from age 1.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`baseline_cost_s`})}),_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:`Per-lap pace offset between the two compounds (compound_grip_peak plus the optimal-temperature term) over the laps on the new set. Both inputs are per-compound CONSTANTS in compound_cliff_params, never fitted, and grip_peak as typed prices SOFT slower than HARD. var(‘pit_strategy_baseline_delta’) decides whether this term is allowed to move the argmin; setting it FALSE zeroes this column.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sc_hazard_per_lap`})}),_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:`Per-racing-lap SC/VSC hazard for the circuit, EB-shrunk, from int_sc_hazard_history. 0.0 for a circuit with no ingested track_status timeline, which makes the discount constant and returns the model to the pit-loss-cancels case.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sc_probability`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/transform/ci/range-and-domain`,children:_jsx(_components.code,{children:`expect_column_values_to_be_between`})})}),_jsx(_components.td,{children:`P(a caution has appeared within the candidate’s laps) = 1 - (1 - h)^L.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pit_discount_factor`})}),_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/range-and-domain`,children:_jsx(_components.code,{children:`expect_column_values_to_be_between`})})]}),_jsx(_components.td,{children:`Fraction of the green-flag pit-lane loss this candidate expects to pay. Non-increasing in the candidate lap - asserted by assert_pit_discount_monotone - and a hard 0 for the no-stop candidate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`wear_cost_s`})}),_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:`Everything that does not scale with pit_lane_loss_s. Split out so a consumer - or assert_pit_loss_pushes_optimum_later - can re-minimise at a different pit loss without rebuilding the curve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`total_cost_s`})}),_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:`wear_cost_s + pit_lane_loss_s x pit_discount_factor. The argmin target.`})]})]})]})]})}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_pit_strategy_cost_curve","sidebarTitle":"int_pit_strategy_cost_curve","description":"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value's header described for two years and never computed.","href":"/reference/models/int/int_pit_strategy_cost_curve"}}},"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_pit_strategy_cost_curve - Off The Pace • docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T21:11:50.062Z","originalFileLocation":"reference/models/int/int_pit_strategy_cost_curve.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 (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value\u0026#x27;s header described for two years and never computed.\">\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_pit_strategy_cost_curve - Off The Pace • docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value\u0026#x27;s header described for two years and never computed.\">\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_pit_strategy_cost_curve\">\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_pit_strategy_cost_curve\u0026amp;description=One+row+per+%28stint_id%2C+horizon_scope%2C+candidate_pit_lap_offset%29%3A+the+Total_Cost%28L%29+surface+int_pit_strategy_value%27s+header+described+for+two+years+and+never+com\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=5b9cd290ab897d8580f50b2b216debdb142c1d3a0e612a9c9d5d4852c761ce0c\">\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_pit_strategy_cost_curve - Off The Pace • docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value\u0026#x27;s header described for two years and never computed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://offthepace.mintlify.site/_mintlify/api/og/v2?division=Intermediate\u0026amp;title=int_pit_strategy_cost_curve\u0026amp;description=One+row+per+%28stint_id%2C+horizon_scope%2C+candidate_pit_lap_offset%29%3A+the+Total_Cost%28L%29+surface+int_pit_strategy_value%27s+header+described+for+two+years+and+never+com\u0026amp;theme=fd3b448b0951ec74ec361b01\u0026amp;signature=5b9cd290ab897d8580f50b2b216debdb142c1d3a0e612a9c9d5d4852c761ce0c\">\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_pit_strategy_cost_curve\">\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_pit_strategy_cost_curve.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_pit_strategy_cost_curve#webpage\",\"url\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve\",\"name\":\"int_pit_strategy_cost_curve\",\"description\":\"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value's header described for two years and never computed.\",\"dateModified\":\"2026-10-20T21:11:50.062Z\",\"isPartOf\":{\"@id\":\"https://offthepace.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve#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_pit_strategy_cost_curve\",\"item\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve#article\",\"headline\":\"int_pit_strategy_cost_curve\",\"name\":\"int_pit_strategy_cost_curve\",\"description\":\"One row per (stint_id, horizon_scope, candidate_pit_lap_offset): the Total_Cost(L) surface int_pit_strategy_value's header described for two years and never computed.\",\"url\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve\",\"mainEntityOfPage\":{\"@id\":\"https://offthepace.mintlify.app/reference/models/int/int_pit_strategy_cost_curve#webpage\"},\"dateModified\":\"2026-10-20T21:11:50.062Z\",\"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","description":"Empirical circuit-specific pit-lane loss prior, read by int_pit_strategy_value in place of the largely-imputed circuit_reference constant.","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","description":"One row per stint.","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_pit_strategy_cost_curve - Off The Pace • docs","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}