{"calculator":{"slug":"combined-events-calculator","math":{"href":"https://www.tracktoolspro.com/api/calculators/combined-events-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":"scoring-formula","implementationFiles":["lib/formulas/combined-events.ts"],"equations":["Track: points=floor(A*(B-P)^C), P in seconds. Jumps: convert entered meters to centimeters, then points=floor(A*(P-B)^C). Throws: meters, points=floor(A*(P-B)^C).","A mark not beating the selected B threshold scores0. Floor each event before total=sum(eventScores). Blank/null/missing marks are unentered with0points; malformed entered marks produce event-specific errors, never numeric-prefix scores."],"inputUnits":{"eventType":"enum/string (dimensionless)","performances.*":"track:s or M:SS.xx; jumps/throws:m"},"outputUnits":{"/total":"integer scoring points","/eventScores/*":"integer scoring points"},"domain":["Decathlon/heptathlon; strict positive track time or complete nonnegative decimal field mark; finite numeric marks accepted directly. Reject bad clocks, trailing text, negative/unsupported values and nonfinite scored results. Unknown event keys are ignored."],"rounding":["Each event Math.floor before sum. Meter-to-centimeter conversion for jumps only."],"assumptions":["Uses the entered values and the selected convention; this documentation does not strengthen existing validation."],"limitations":["Retained coefficients and entered partial/complete total only. No forecast of missing marks, qualification guarantee or training recommendation."],"mountedPageNotes":[],"workedExamples":[{"input":{"eventType":"decathlon","performances":{"100m":"10.55","longJump":"7.80","shotPut":"15.00"}},"expected":{"/total":2763,"/eventScores/longJump":1010},"absoluteTolerance":1e-8,"note":"Illustrative canonical-handler result; not independent validation of an empirical model."}],"constantsAndTables":{"scoringCoefficients":{"decathlon":{"100m":{"A":25.4347,"B":18,"C":1.81,"type":"track"},"longJump":{"A":0.14354,"B":220,"C":1.4,"type":"jump"},"shotPut":{"A":51.39,"B":1.5,"C":1.05,"type":"throw"},"highJump":{"A":0.8465,"B":75,"C":1.42,"type":"jump"},"400m":{"A":1.53775,"B":82,"C":1.81,"type":"track"},"110mH":{"A":5.74352,"B":28.5,"C":1.92,"type":"track"},"discus":{"A":12.91,"B":4,"C":1.1,"type":"throw"},"poleVault":{"A":0.2797,"B":100,"C":1.35,"type":"jump"},"javelin":{"A":10.14,"B":7,"C":1.08,"type":"throw"},"1500m":{"A":0.03768,"B":480,"C":1.85,"type":"track"}},"heptathlon":{"100mH":{"A":9.23076,"B":26.7,"C":1.835,"type":"track"},"highJump":{"A":1.84523,"B":75,"C":1.348,"type":"jump"},"shotPut":{"A":56.0211,"B":1.5,"C":1.05,"type":"throw"},"200m":{"A":4.99087,"B":42.5,"C":1.81,"type":"track"},"longJump":{"A":0.188807,"B":210,"C":1.41,"type":"jump"},"javelin":{"A":15.9803,"B":3.8,"C":1.04,"type":"throw"},"800m":{"A":0.11193,"B":254,"C":1.88,"type":"track"}}},"sourceEdition":"1984 combined-event coefficient system, retained by product; distinct from 2025 general athletics tables."},"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/combined-events.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/combined-events.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."},{"title":"World Athletics / IAAF Combined Events Scoring Tables","url":"https://worldathletics.org/download/download?filename=53f7d332-be0c-434c-8467-1d9078966147.pdf&urlslug=IAAF+Scoring+Tables+for+Combined+Events","note":"1984 combined-event coefficient system; formula units and event-wise floor. Distinct from general 2025 athletics points."}]},"annotations":{"readOnlyHint":true,"consequentialHint":false},"name":"Combined Events Calculator","description":"Score entered decathlon or heptathlon marks using the retained World Athletics combined-event coefficients. Read integer event points and their partial or complete total; blank events are unentered. This does not predict missing marks or recommend training priorities.","category":"Field Events","method":"POST","endpoint":"/api/calculators/combined-events-calculator","page":"/calculators/combined-events-calculator","inputSchema":{"type":"object","required":["eventType","performances"],"properties":{"eventType":{"type":"string","description":"Combined event type.","enum":["decathlon","heptathlon"],"default":"decathlon"},"performances":{"type":"object","description":"Event performances keyed by event id. Track marks are positive seconds or M:SS.xx with clock seconds below 60; jumps and throws are nonnegative meters. Blank events are unentered. Malformed entered marks are rejected."}}},"example":{"eventType":"decathlon","performances":{"100m":"10.55","longJump":"7.80","shotPut":"15.00"}}}}