{"calculator":{"slug":"age-grading-calculator","math":{"href":"https://www.tracktoolspro.com/api/calculators/age-grading-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":"table-model","implementationFiles":["lib/formulas/age-grading.ts","lib/formulas/age-grading-data.ts"],"equations":["factor=selected event/sex factors[age-25]; openStandardSeconds=stored sex/event standard. No interpolation.","ageStandardSeconds=openStandardSeconds/factor; percent=100*openStandardSeconds/(factor*actualSeconds); equivalentOpenSeconds=actualSeconds*factor; tier is first descending percent threshold met."],"inputUnits":{"sex":"enum/string (dimensionless)","age":"whole years","eventKey":"enum/string (dimensionless)","actualSeconds":"s"},"outputUnits":{"/percent":"%","/equivalentOpenSeconds":"s","/ageStandardSeconds":"s","/openStandardSeconds":"s","/factor":"dimensionless"},"domain":["API ages25..90 integer, supported event/sex, positive actual time for percent/equivalent; unsupported table selection errors, invalid time may produce null score fields."],"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":["Reference tables, not current world records or eligibility. Stored2015 track naming has unresolved edition provenance;2025 road label identifies the stored author table. Statistical sex/age bands are not physiology measurements."],"mountedPageNotes":[],"workedExamples":[{"input":{"sex":"M","age":50,"eventKey":"5k","actualSeconds":1350},"expected":{"/percent":64.9150575076501,"/factor":0.8775},"absoluteTolerance":1e-8,"note":"Illustrative canonical-handler result; not independent validation of an empirical model."}],"constantsAndTables":{"ageMin":25,"ageMax":90,"eventTables":[{"key":"100m","label":"100m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":9.79,"F":10.49},"factors":{"M":[1,1,1,1,1,1,1,1,1,0.9968,0.9893,0.9823,0.9754,0.9684,0.9615,0.9545,0.948,0.9415,0.935,0.9285,0.922,0.9159,0.9099,0.9038,0.8978,0.8917,0.886,0.8803,0.8747,0.869,0.8633,0.858,0.8527,0.8473,0.842,0.8367,0.8317,0.8267,0.8217,0.8167,0.8117,0.807,0.8023,0.7975,0.7928,0.7881,0.7788,0.7695,0.7603,0.751,0.7417,0.7312,0.7208,0.7103,0.6999,0.6894,0.6778,0.6663,0.6547,0.6432,0.6316,0.6205,0.6093,0.5982,0.587,0.5759],"F":[1,1,1,1,1,1,1,1,1,1,1,1,0.9899,0.9781,0.9663,0.9545,0.944,0.9335,0.923,0.9125,0.902,0.8926,0.8832,0.8739,0.8645,0.8551,0.8466,0.8381,0.8297,0.8212,0.8127,0.805,0.7974,0.7897,0.7821,0.7744,0.7674,0.7604,0.7535,0.7465,0.7395,0.7331,0.7267,0.7204,0.714,0.7076,0.6983,0.689,0.6798,0.6705,0.6612,0.6538,0.6465,0.6391,0.6318,0.6244,0.6071,0.5898,0.5725,0.5552,0.5379,0.5215,0.5052,0.4888,0.4725,0.4561]}},{"key":"200m","label":"200m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":19.32,"F":21.34},"factors":{"M":[1,1,1,1,1,1,0.9959,0.9879,0.98,0.972,0.9641,0.9568,0.9494,0.9421,0.9347,0.9274,0.9206,0.9138,0.9071,0.9003,0.8935,0.8872,0.8809,0.8745,0.8682,0.8619,0.856,0.8501,0.8443,0.8384,0.8325,0.827,0.8215,0.816,0.8105,0.805,0.7999,0.7947,0.7896,0.7844,0.7793,0.7732,0.7671,0.761,0.7549,0.7488,0.7375,0.7263,0.715,0.7038,0.6925,0.6811,0.6697,0.6583,0.6469,0.6355,0.622,0.6086,0.5951,0.5817,0.5682,0.5488,0.5294,0.51,0.4906,0.4712],"F":[1,1,1,1,1,1,1,1,1,1,1,0.994,0.9813,0.9687,0.956,0.9434,0.9323,0.9211,0.91,0.8988,0.8877,0.8778,0.8679,0.858,0.8481,0.8382,0.8293,0.8205,0.8116,0.8028,0.7939,0.7859,0.7779,0.77,0.762,0.754,0.7468,0.7396,0.7324,0.7252,0.718,0.7114,0.7049,0.6983,0.6918,0.6852,0.6792,0.6732,0.6673,0.6613,0.6553,0.6428,0.6303,0.6178,0.6053,0.5928,0.5759,0.5589,0.542,0.525,0.5081,0.4886,0.469,0.4495,0.4299,0.4104]}},{"key":"400m","label":"400m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":43.18,"F":47.6},"factors":{"M":[1,1,1,1,1,1,1,0.9929,0.9854,0.9778,0.9702,0.9632,0.9561,0.9491,0.942,0.935,0.9285,0.9219,0.9154,0.9088,0.9023,0.8962,0.8901,0.884,0.8779,0.8718,0.8661,0.8604,0.8547,0.849,0.8433,0.838,0.8326,0.8273,0.8219,0.8166,0.8116,0.8066,0.8016,0.7966,0.7916,0.7797,0.7677,0.7558,0.7438,0.7319,0.7184,0.7049,0.6913,0.6778,0.6643,0.6531,0.6419,0.6306,0.6194,0.6082,0.5919,0.5756,0.5592,0.5429,0.5266,0.5085,0.4904,0.4724,0.4543,0.4362],"F":[1,1,1,1,1,1,1,0.9927,0.9811,0.9696,0.958,0.9477,0.9374,0.9271,0.9168,0.9065,0.8972,0.888,0.8787,0.8695,0.8602,0.8518,0.8435,0.8351,0.8268,0.8184,0.8108,0.8032,0.7957,0.7881,0.7805,0.7736,0.7667,0.7598,0.7529,0.746,0.7397,0.7333,0.727,0.7206,0.7143,0.7037,0.693,0.6824,0.6717,0.6611,0.6464,0.6317,0.6171,0.6024,0.5877,0.5759,0.5642,0.5524,0.5407,0.5289,0.5155,0.5022,0.4888,0.4755,0.4621,0.449,0.4359,0.4229,0.4098,0.3967]}},{"key":"800m","label":"800m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":101.11,"F":113.28},"factors":{"M":[1,1,1,1,1,1,1,1,1,1,0.9971,0.9878,0.9785,0.9691,0.9598,0.9505,0.942,0.9335,0.9251,0.9166,0.9081,0.9003,0.8926,0.8848,0.8771,0.8693,0.8622,0.855,0.8479,0.8407,0.8336,0.827,0.8205,0.8139,0.8074,0.8008,0.7947,0.7887,0.7826,0.7766,0.7705,0.7624,0.7543,0.7462,0.7381,0.73,0.7191,0.7082,0.6972,0.6863,0.6754,0.6644,0.6534,0.6423,0.6313,0.6203,0.6038,0.5873,0.5708,0.5543,0.5378,0.5159,0.494,0.4722,0.4503,0.4284],"F":[1,1,1,1,1,1,1,1,1,1,1,1,0.9997,0.9906,0.9814,0.9722,0.9638,0.9554,0.9471,0.9387,0.9303,0.9226,0.9149,0.9072,0.8995,0.8918,0.8806,0.8693,0.8581,0.8468,0.8356,0.8239,0.8121,0.8004,0.7886,0.7769,0.7621,0.7473,0.7324,0.7176,0.7028,0.6893,0.6759,0.6624,0.649,0.6355,0.6205,0.6054,0.5904,0.5753,0.5603,0.547,0.5336,0.5203,0.5069,0.4936,0.4808,0.468,0.4552,0.4424,0.4296,0.4172,0.4048,0.3925,0.3801,0.3677]}},{"key":"1500m","label":"1500m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":205.8,"F":232.47},"factors":{"M":[1,1,1,0.9999,0.9991,0.9975,0.9952,0.9922,0.9885,0.984,0.9788,0.9729,0.9662,0.9592,0.9521,0.9451,0.938,0.931,0.924,0.9169,0.9099,0.9028,0.8958,0.8888,0.8817,0.8747,0.8676,0.8606,0.8536,0.8465,0.8395,0.8324,0.8254,0.8184,0.8113,0.8043,0.7972,0.7902,0.7832,0.7761,0.7691,0.762,0.755,0.7479,0.7402,0.7319,0.723,0.7134,0.7031,0.6923,0.6808,0.6687,0.6559,0.6425,0.6285,0.6138,0.5985,0.5825,0.566,0.5488,0.5309,0.5124,0.4933,0.4735,0.4531,0.4321],"F":[1,1,1,1,0.9998,0.9989,0.9971,0.9946,0.9913,0.9871,0.9822,0.9765,0.9701,0.9628,0.9547,0.9459,0.9362,0.9258,0.9151,0.9044,0.8937,0.8831,0.8724,0.8617,0.851,0.8403,0.8297,0.819,0.8083,0.7976,0.7869,0.7763,0.7656,0.7549,0.7442,0.7335,0.7229,0.7122,0.7015,0.6908,0.6801,0.6695,0.6588,0.6481,0.6374,0.6267,0.6161,0.6054,0.5947,0.584,0.5733,0.5627,0.552,0.5413,0.5306,0.5199,0.5087,0.4962,0.4825,0.4676,0.4515,0.4343,0.4158,0.3961,0.3752,0.3531]}},{"key":"mile","label":"Mile","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":222.6,"F":251.6},"factors":{"M":[1,1,1,0.9999,0.9991,0.9975,0.9952,0.9922,0.9885,0.984,0.9788,0.9729,0.9662,0.9592,0.9521,0.9451,0.938,0.931,0.924,0.9169,0.9099,0.9028,0.8958,0.8888,0.8817,0.8747,0.8676,0.8606,0.8536,0.8465,0.8395,0.8324,0.8254,0.8184,0.8113,0.8043,0.7972,0.7902,0.7832,0.7761,0.7691,0.762,0.755,0.7479,0.7402,0.7319,0.723,0.7134,0.7031,0.6923,0.6808,0.6687,0.6559,0.6425,0.6285,0.6138,0.5985,0.5825,0.566,0.5488,0.5309,0.5124,0.4933,0.4735,0.4531,0.4321],"F":[1,1,1,1,0.9998,0.9989,0.9972,0.9948,0.9915,0.9875,0.9827,0.9771,0.9707,0.9636,0.9557,0.9469,0.9375,0.9272,0.9165,0.9058,0.8951,0.8844,0.8737,0.863,0.8523,0.8416,0.8309,0.8202,0.8095,0.7988,0.7881,0.7774,0.7667,0.756,0.7453,0.7346,0.7239,0.7132,0.7025,0.6918,0.6811,0.6704,0.6597,0.649,0.6383,0.6276,0.6169,0.6062,0.5955,0.5848,0.5741,0.5634,0.5527,0.542,0.5313,0.5206,0.5091,0.4965,0.4827,0.4678,0.4516,0.4343,0.4158,0.3961,0.3752,0.3532]}},{"key":"3000m","label":"3000m","surface":"track","edition":"WMA 2015 track factors (Howard Grubb)","standards":{"M":440,"F":501.42},"factors":{"M":[1,1,1,0.9999,0.9991,0.9975,0.9952,0.9922,0.9885,0.984,0.9788,0.9729,0.9662,0.9592,0.9521,0.9451,0.938,0.931,0.924,0.9169,0.9099,0.9028,0.8958,0.8888,0.8817,0.8747,0.8676,0.8606,0.8536,0.8465,0.8395,0.8324,0.8254,0.8184,0.8113,0.8043,0.7972,0.7902,0.7832,0.7761,0.7691,0.762,0.755,0.7479,0.7402,0.7319,0.723,0.7134,0.7031,0.6923,0.6808,0.6687,0.6559,0.6425,0.6285,0.6138,0.5985,0.5825,0.566,0.5488,0.5309,0.5124,0.4933,0.4735,0.4531,0.4321],"F":[1,1,1,1,1,0.9994,0.9981,0.9962,0.9935,0.9902,0.9861,0.9813,0.9759,0.9697,0.9628,0.9553,0.947,0.938,0.9283,0.918,0.9071,0.8962,0.8854,0.8745,0.8636,0.8527,0.8419,0.831,0.8201,0.8092,0.7984,0.7875,0.7766,0.7657,0.7549,0.744,0.7331,0.7222,0.7114,0.7005,0.6896,0.6787,0.6678,0.657,0.6461,0.6352,0.6243,0.6135,0.6026,0.5917,0.5808,0.57,0.5591,0.5482,0.5373,0.5257,0.5131,0.4993,0.4845,0.4686,0.4517,0.4336,0.4145,0.3942,0.3729,0.3506]}},{"key":"5k","label":"5,000m / 5K Road","surface":"road","edition":"WMA/USATF 2025 road factors (Lytton-Jones)","standards":{"M":769,"F":834},"factors":{"M":[1,1,1,1,1,0.9999,0.9988,0.9965,0.993,0.9883,0.9824,0.9755,0.9685,0.9615,0.9545,0.9475,0.9405,0.9335,0.9265,0.9195,0.9125,0.9055,0.8985,0.8915,0.8845,0.8775,0.8705,0.8635,0.8565,0.8495,0.8425,0.8355,0.8285,0.8215,0.8145,0.8075,0.8005,0.7935,0.7865,0.7795,0.7725,0.7655,0.7585,0.7514,0.7436,0.7353,0.7264,0.7169,0.7068,0.696,0.6847,0.6728,0.6603,0.6472,0.6334,0.6191,0.6042,0.5887,0.5726,0.5558,0.5385,0.5206,0.5021,0.483,0.4632,0.4429],"F":[1,1,0.9997,0.999,0.9977,0.9959,0.9936,0.9908,0.9875,0.9836,0.9793,0.9744,0.9691,0.9632,0.9568,0.9499,0.9425,0.9346,0.9262,0.9172,0.9078,0.898,0.8883,0.8786,0.8689,0.8592,0.8495,0.8398,0.8301,0.8204,0.8107,0.8009,0.7912,0.7815,0.7718,0.7621,0.7524,0.7427,0.733,0.7233,0.7136,0.7038,0.6941,0.6844,0.6747,0.665,0.6553,0.6456,0.6359,0.6262,0.6165,0.6067,0.597,0.5868,0.5758,0.564,0.5515,0.5382,0.5242,0.5094,0.4938,0.4775,0.4604,0.4426,0.424,0.4046]}},{"key":"10k","label":"10,000m / 10K Road","surface":"road","edition":"WMA/USATF 2025 road factors (Lytton-Jones)","standards":{"M":1584,"F":1726},"factors":{"M":[1,1,1,1,1,1,0.9996,0.9985,0.9967,0.9942,0.9909,0.9869,0.9822,0.9767,0.9705,0.9636,0.9561,0.9486,0.9411,0.9336,0.9261,0.9186,0.9111,0.9036,0.8961,0.8886,0.8811,0.8736,0.8661,0.8586,0.8511,0.8436,0.8361,0.8286,0.8211,0.8136,0.8061,0.7986,0.7911,0.7836,0.7761,0.7686,0.7611,0.7536,0.7461,0.7386,0.7308,0.7223,0.7131,0.7033,0.6928,0.6816,0.6697,0.6572,0.644,0.6301,0.6156,0.6004,0.5845,0.568,0.5508,0.5329,0.5143,0.4951,0.4752,0.4546],"F":[1,1,1,0.9998,0.9991,0.998,0.9964,0.9944,0.992,0.9891,0.9857,0.9819,0.9777,0.973,0.9679,0.9623,0.9563,0.9499,0.9429,0.9356,0.9278,0.9195,0.9109,0.9017,0.8921,0.8822,0.8723,0.8623,0.8524,0.8425,0.8325,0.8226,0.8126,0.8027,0.7928,0.7828,0.7729,0.7629,0.753,0.7431,0.7331,0.7232,0.7132,0.7033,0.6934,0.6834,0.6735,0.6635,0.6536,0.6437,0.6337,0.6234,0.6123,0.6005,0.5879,0.5745,0.5604,0.5455,0.5299,0.5135,0.4963,0.4784,0.4597,0.4403,0.4201,0.3991]}},{"key":"half-marathon","label":"Half Marathon","surface":"road","edition":"WMA/USATF 2025 road factors (Lytton-Jones)","standards":{"M":3451,"F":3772},"factors":{"M":[1,1,1,1,1,1,1,0.9996,0.9982,0.996,0.9928,0.9888,0.9839,0.9781,0.9714,0.9638,0.956,0.9483,0.9405,0.9327,0.9249,0.9171,0.9094,0.9016,0.8938,0.886,0.8782,0.8705,0.8627,0.8549,0.8471,0.8393,0.8316,0.8238,0.816,0.8082,0.8004,0.7927,0.7849,0.7771,0.7693,0.7615,0.7538,0.746,0.7382,0.7304,0.7223,0.7135,0.704,0.6938,0.683,0.6715,0.6593,0.6464,0.6328,0.6185,0.6036,0.588,0.5717,0.5547,0.537,0.5186,0.4996,0.4799,0.4595,0.4384],"F":[1,1,1,0.9998,0.9991,0.9979,0.9962,0.9941,0.9915,0.9884,0.9849,0.9809,0.9764,0.9714,0.966,0.9601,0.9537,0.9468,0.9395,0.9317,0.9234,0.9147,0.9055,0.8958,0.8856,0.8753,0.8649,0.8546,0.8442,0.8339,0.8235,0.8132,0.8028,0.7925,0.7821,0.7718,0.7614,0.7511,0.7407,0.7304,0.72,0.7097,0.6993,0.689,0.6786,0.6683,0.6579,0.6476,0.6372,0.6269,0.6165,0.6059,0.5945,0.5822,0.5692,0.5554,0.5407,0.5253,0.5091,0.4921,0.4742,0.4556,0.4362,0.4159,0.3949,0.3731]}},{"key":"marathon","label":"Marathon","surface":"road","edition":"WMA/USATF 2025 road factors (Lytton-Jones)","standards":{"M":7235,"F":7796},"factors":{"M":[1,1,1,1,1,1,1,1,1,1,1,0.9999,0.9979,0.9934,0.9865,0.9783,0.9701,0.9619,0.9537,0.9455,0.9373,0.9291,0.9209,0.9127,0.9045,0.8963,0.8881,0.8799,0.8717,0.8635,0.8553,0.8471,0.8389,0.8307,0.8225,0.8143,0.8061,0.7979,0.7897,0.7815,0.7733,0.7651,0.7569,0.7487,0.7405,0.7323,0.7241,0.7155,0.7063,0.6963,0.6857,0.6743,0.6623,0.6495,0.6361,0.6219,0.6071,0.5915,0.5753,0.5583,0.5407,0.5223,0.5033,0.4835,0.4631,0.4419],"F":[0.9988,1,1,0.9998,0.9992,0.9983,0.997,0.9953,0.9932,0.9907,0.9879,0.9847,0.9811,0.9771,0.9727,0.968,0.9629,0.9574,0.9515,0.9453,0.9386,0.9316,0.9242,0.9165,0.9083,0.8998,0.8909,0.8816,0.872,0.8619,0.8515,0.8407,0.8297,0.8186,0.8076,0.7965,0.7854,0.7744,0.7633,0.7523,0.7412,0.7301,0.7191,0.708,0.697,0.6859,0.6748,0.6638,0.6527,0.6413,0.629,0.6159,0.6021,0.5874,0.572,0.5557,0.5386,0.5208,0.5021,0.4827,0.4624,0.4413,0.4195,0.3968,0.3734,0.3491]}}],"performanceTiers":[{"minPercent":100,"label":"World Record Level"},{"minPercent":90,"label":"World Class"},{"minPercent":80,"label":"National Class"},{"minPercent":70,"label":"Regional Class"},{"minPercent":60,"label":"Local Class"},{"minPercent":0,"label":"Developing"}],"provenance":"Stored edition labels are retained; track-edition naming is uncertain. Values are not refreshed from current world records."},"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/age-grading.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/age-grading.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."},{"title":"lib/formulas/age-grading-data.ts","url":"https://github.com/wickthumb/track_tools_pro_marketing/blob/b5a8aca7b85361476e0321a08b7fa5f516fc9535/lib/formulas/age-grading-data.ts","note":"Primary implementation source for these equations/tables, not a claim of scientific calibration."},{"title":"Howard Grubb age-grade calculator / tables","url":"https://www.howardgrubb.co.uk/athletics/wmalookup15.html","note":"Author page rechecked 2026-10-21; its mixed track/road edition naming leaves stored track-table provenance uncertain. Not a coefficient replacement."},{"title":"Alan Lytton-Jones2025 road-table archive","url":"https://raw.githubusercontent.com/AlanLyttonJones/Age-Grade-Tables/master/2025%20Files/AgeGrade.zip","note":"Canonical author2025 road-table archive; retained source checked2026-10-16. No claim these are current world records."}]},"annotations":{"readOnlyHint":true,"consequentialHint":false},"name":"Age-Grading Calculator","description":"This age graded calculator applies published WMA (World Masters Athletics) age factors to your time and returns your age-graded percentage, performance level, and age-graded equivalent open time. It covers track events from 100m to 3000m (WMA 2015 factors) and road events from the 5K to the marathon (2025 road factors), for men and women ages 25-90, using exact per-age published factors rather than five-year approximations.","category":"Conversions & Adjustments","method":"POST","endpoint":"/api/calculators/age-grading-calculator","page":"/calculators/age-grading-calculator","inputSchema":{"type":"object","required":["sex","age","eventKey","actualSeconds"],"properties":{"sex":{"type":"string","description":"Athlete sex.","enum":["M","F"],"default":"M"},"age":{"type":"integer","description":"Athlete age.","minimum":25,"maximum":90},"eventKey":{"type":"string","description":"Age-grading event key."},"actualSeconds":{"type":"number","description":"Actual performance time in seconds.","minimum":0}}},"example":{"sex":"M","age":50,"eventKey":"5k","actualSeconds":1350}}}