{"calculator":{"slug":"effort-calculator","math":{"href":"https://www.tracktoolspro.com/api/calculators/effort-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":"heuristic","implementationFiles":["lib/formulas/effort.ts"],"equations":["p=totalSeconds/refDistanceMeters; adjustedPace=p*100/effortPercentage; adjustedTime=adjustedPace*targetDistanceMeters; refPacePerMile=p*1609.34; adjustedPacePerMile=adjustedPace*1609.34."],"inputUnits":{"totalSeconds":"s","refDistanceMeters":"m","targetDistanceMeters":"m","effortPercentage":"% reference speed"},"outputUnits":{"/adjustedTime":"s","/refPacePerMile":"s/mile","/adjustedPacePerMile":"s/mile"},"domain":["Positive finite inputs; API effortPercentage >=1; return null if derived numbers are not finite/positive."],"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":["An entered speed ratio is not measured effort, RPE, HR, oxygen consumption or race equivalency. Values above100 remain possible in the HTTP contract."],"mountedPageNotes":[],"workedExamples":[{"input":{"totalSeconds":1200,"refDistanceMeters":5000,"targetDistanceMeters":5000,"effortPercentage":85},"expected":{"/adjustedTime":1411.764705882353},"absoluteTolerance":1e-8,"note":"Illustrative canonical-handler result; not independent validation of an empirical model."}],"constantsAndTables":{"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/effort.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/effort.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."}]},"annotations":{"readOnlyHint":true,"consequentialHint":false},"name":"Running Effort Calculator","description":"Estimate target time from a reference performance and percentage of its speed. The calculation scales time inversely with the selected percentage and linearly with target distance.","category":"Pace & Time","method":"POST","endpoint":"/api/calculators/effort-calculator","page":"/calculators/effort-calculator","inputSchema":{"type":"object","required":["totalSeconds","refDistanceMeters","targetDistanceMeters","effortPercentage"],"properties":{"totalSeconds":{"type":"number","description":"Reference effort time in seconds.","minimum":0},"refDistanceMeters":{"type":"number","description":"Reference effort distance in meters.","minimum":0},"targetDistanceMeters":{"type":"number","description":"Target distance in meters.","minimum":0},"effortPercentage":{"type":"number","description":"Effort percentage, where 100 is the reference effort.","minimum":1}}},"example":{"totalSeconds":1200,"refDistanceMeters":5000,"targetDistanceMeters":5000,"effortPercentage":85}}}