{"calculator":{"slug":"hurdle-spacing-calculator","math":{"href":"https://www.tracktoolspro.com/api/calculators/hurdle-spacing-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":"lookup-and-arithmetic","implementationFiles":["lib/formulas/hurdles.ts"],"equations":["requiredStrideToFirst=spec.startToFirst/stepsToFirst; requiredStrideBetween=spec.betweenHurdles/stepsBetween.","If entered strideLength>0, checkMarks[i]=strideLength*i for i=1,2,3; stride differences subtract the RAW gap/step averages, then round."],"inputUnits":{"eventKey":"enum/string (dimensionless)","strideLength":"m","stepsToFirst":"step count","stepsBetween":"step count"},"outputUnits":{"/specs/totalDistance":"m","/specs/startToFirst":"m","/specs/betweenHurdles":"m","/specs/lastToFinish":"m","/specs/numHurdles":"dimensionless index/count","/specs/heights/*/meters":"m","/specs/heights/*/inches":"in","/specs/defaultStepsToFirst":"dimensionless index/count","/specs/defaultStepsBetween":"dimensionless index/count","/requiredStrideToFirst":"m/step","/requiredStrideBetween":"m/rhythm unit","/checkMarks/*/distance":"m","/athleteStride":"m","/strideDiffFirst":"m","/strideDiffBetween":"m"},"domain":["Known event; API whole step counts positive, optional complete nonnegative stride string; blank/zero stride means unspecified."],"rounding":["Average stride/differences0.01m; check-mark multiples retain raw multiplication."],"assumptions":["Uses the entered values and the selected convention; this documentation does not strengthen existing validation."],"limitations":["Spacing per rhythm unit includes flight; it is not a measured ground stride. Retained US HS300mH has8hurdles, WA300mH has7; check local age/state rules."],"mountedPageNotes":[],"workedExamples":[{"input":{"eventKey":"110mH","strideLength":"1.9"},"expected":{"/requiredStrideBetween":3.05},"absoluteTolerance":1e-8,"note":"Illustrative canonical-handler result; not independent validation of an empirical model."}],"constantsAndTables":{"layouts":{"110mH":{"label":"110m Hurdles (Men)","totalDistance":110,"startToFirst":13.72,"betweenHurdles":9.14,"lastToFinish":14.02,"numHurdles":10,"heights":[{"group":"Men","meters":1.067,"inches":42}],"defaultStepsToFirst":8,"defaultStepsBetween":3},"100mH":{"label":"100m Hurdles (Women)","totalDistance":100,"startToFirst":13,"betweenHurdles":8.5,"lastToFinish":10.5,"numHurdles":10,"heights":[{"group":"Women","meters":0.838,"inches":33}],"defaultStepsToFirst":8,"defaultStepsBetween":3},"400mH":{"label":"400m Hurdles","totalDistance":400,"startToFirst":45,"betweenHurdles":35,"lastToFinish":40,"numHurdles":10,"heights":[{"group":"Men","meters":0.914,"inches":36},{"group":"Women","meters":0.762,"inches":30}],"defaultStepsToFirst":22,"defaultStepsBetween":15},"300mH":{"label":"300m Hurdles (HS)","totalDistance":300,"startToFirst":45,"betweenHurdles":35,"lastToFinish":10,"numHurdles":8,"heights":[{"group":"Boys","meters":0.914,"inches":36},{"group":"Girls","meters":0.762,"inches":30}],"defaultStepsToFirst":22,"defaultStepsBetween":15}},"references":"WA layouts plus retained NFHS-style 8-hurdle 300m layout; verify governing rules."},"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/hurdles.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/hurdles.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."},{"title":"NFHS 2021 Track and Field Pre-Meet Notes","url":"https://assets.nfhs.org/umbraco/media/4295114/nfhs-track-and-field-pre-meet-notes_1-2021.pdf","note":"Public 2021pre-meet notes support retained US HS 300m 8-hurdle layout. Not a claim of obtaining the current paid rulebook."}]},"annotations":{"readOnlyHint":true,"consequentialHint":false},"name":"Hurdle Spacing Calculator","description":"Calculate steps to first hurdle, steps between hurdles, and check mark distances for 100mH, 110mH, 300mH, and 400mH events. Includes official specifications and personalized stride analysis.","category":"Sprints & Hurdles","method":"POST","endpoint":"/api/calculators/hurdle-spacing-calculator","page":"/calculators/hurdle-spacing-calculator","inputSchema":{"type":"object","required":["eventKey"],"properties":{"eventKey":{"type":"string","description":"Hurdle event key.","enum":["110mH","100mH","400mH","300mH"],"default":"110mH"},"strideLength":{"type":"string","description":"Optional athlete stride length in meters."},"stepsToFirst":{"type":"integer","description":"Steps from start to first hurdle. Defaults to event standard."},"stepsBetween":{"type":"integer","description":"Steps between hurdles. Defaults to event standard."}}},"example":{"eventKey":"110mH","strideLength":"1.9"}}}