{"calculator":{"slug":"critical-velocity-calculator","math":{"href":"https://www.tracktoolspro.com/api/calculators/critical-velocity-calculator","jsonPointer":"/calculator/math","version":"2026-10-21.1","implementationVersion":"b5a8aca7b85361476e0321a08b7fa5f516fc9535","scope":"Canonical HTTP function and documented corresponding mounted-form math. This is public inspectable documentation, not access control or independent empirical validation.","unitNotation":"Input paths use [] and *; output paths are JSON Pointers with * (one segment) and ** (descendants). Empty output path denotes scalar result. Units apply to numeric quantities or explicitly described numeric strings; labels/statuses/booleans are dimensionless. More specific units, including count/index exceptions, override broad patterns.","interfaceNotes":["HTTP input is described by the adjacent inputSchema. The original handlers may accept numeric strings; this metadata adds no validation.","Mounted forms accept displayed clock/unit strings and enforce their own limits. Mounted tools limit strings to 200 characters and numeric parts to magnitude 1000000. Do not assume mounted/API input interchangeability.","Some legacy extreme/invalid tuples can produce null/empty results or nonfinite numbers serialized as null. Those are unavailable answers, not exact numerical predictions. Per-calculator domain describes the intended mathematical inputs."],"kind":"model-fit","implementationFiles":["lib/formulas/critical-velocity.ts"],"equations":["Normalize two efforts by duration. cs=(d2-d1)/(t2-t1); dPrime=d1-cs*t1; pacePerMile=1609.34/cs, perKm=1000/cs, per400=400/cs.","Optional predictedSeconds=(targetDistanceMeters-dPrime)/cs; predictedDistanceMeters=dPrime+cs*targetTimeSeconds.","Tinman mode: cvVelocity=(5000/fiveKSeconds)*0.9533; CV pace=unitMeters/cvVelocity; fiveK pace=fiveKSeconds*unitMeters/5000."],"inputUnits":{"mode":"enum/string (dimensionless)","d1Meters":"m","t1Seconds":"s","d2Meters":"m","t2Seconds":"s","targetDistanceMeters":"m","targetTimeSeconds":"s","fiveKSeconds":"s"},"outputUnits":{"/cs":"m/s","/dPrime":"m","/pacePerMileSeconds":"s/mile","/pacePerKmSeconds":"s/km","/pacePer400mSeconds":"s/400m","/predictedSeconds":"s","/predictedDistanceMeters":"m","/cvVelocity":"m/s","/cvPacePerMileSeconds":"s/mile","/cvPacePerKmSeconds":"s/km","/fiveKPacePerMileSeconds":"s/mile","/fiveKPacePerKmSeconds":"s/km"},"domain":["Positive finite efforts, distinct increasing duration/distance and dPrime>=0; otherwise null. Prediction requires distance>dPrime or positive target duration; missing predictions are null."],"rounding":["Raw IEEE-754 numbers; the mounted page formats clocks separately."],"assumptions":["Uses the entered values and the selected convention; this documentation does not strengthen existing validation."],"limitations":["Two-point line has no fit-error estimate; D-prime is not measured anaerobic capacity. Tinman0.9533 is a heuristic, not validated across athletes."],"mountedPageNotes":[],"workedExamples":[{"input":{"mode":"twoPoint","d1Meters":1600,"t1Seconds":300,"d2Meters":3200,"t2Seconds":650,"targetDistanceMeters":5000},"expected":{"/cs":4.571428571428571,"/dPrime":228.57142857142867},"absoluteTolerance":1e-8,"note":"Illustrative canonical-handler result; not independent validation of an empirical model."}],"constantsAndTables":{"tinmanFactor":0.9533,"metersPerMile":1609.34},"sources":[{"title":"Canonical HTTP binding at the documented implementation revision","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/calculator-functions.ts","note":"Existing calculation handler; math metadata is additive."},{"title":"lib/formulas/critical-velocity.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/critical-velocity.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."}]},"annotations":{"readOnlyHint":true,"consequentialHint":false},"name":"Critical Velocity Calculator","description":"This critical velocity calculator implements two models side by side. The two-point critical speed model is the physiology standard: from two all-out efforts it computes CS = (D2 − D1) ÷ (T2 − T1) and D′ (anaerobic distance capacity) = D1 − CS × T1, then predicts time for any distance via T = (D − D′) ÷ CS, valid for roughly 2–30 minute efforts. The Tinman/Schwartz estimate is the popular single-race shortcut: CV velocity = 5K velocity × 0.9533, i.e. CV pace is your 5K pace divided by 0.9533 — a slightly slower pace used for CV repeats.","category":"Training & Fitness","method":"POST","endpoint":"/api/calculators/critical-velocity-calculator","page":"/calculators/critical-velocity-calculator","inputSchema":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string","description":"Calculation mode.","enum":["twoPoint","tinman"],"default":"twoPoint"},"d1Meters":{"type":"number","description":"First effort distance in meters.","minimum":0},"t1Seconds":{"type":"number","description":"First effort time in seconds.","minimum":0},"d2Meters":{"type":"number","description":"Second effort distance in meters.","minimum":0},"t2Seconds":{"type":"number","description":"Second effort time in seconds.","minimum":0},"targetDistanceMeters":{"type":"number","description":"Optional distance to predict from the CS model.","minimum":0},"targetTimeSeconds":{"type":"number","description":"Optional time to predict distance from the CS model.","minimum":0},"fiveKSeconds":{"type":"number","description":"5K time in seconds for Tinman mode.","minimum":0}}},"example":{"mode":"twoPoint","d1Meters":1600,"t1Seconds":300,"d2Meters":3200,"t2Seconds":650,"targetDistanceMeters":5000}}}