PHPackages                             runalyze/age-grade - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. runalyze/age-grade

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

runalyze/age-grade
==================

Age grading for race results (running) based on tables provided by WMA

2.2.0(2y ago)820.2kMITPHPPHP &gt;=8.0

Since Oct 4Pushed 2y ago3 watchersCompare

[ Source](https://github.com/Runalyze/age-grade)[ Packagist](https://packagist.org/packages/runalyze/age-grade)[ RSS](/packages/runalyze-age-grade/feed)WikiDiscussions master Synced today

READMEChangelog (6)Dependencies (2)Versions (8)Used By (0)

Age Grade
=========

[](#age-grade)

[![Latest Stable Version](https://camo.githubusercontent.com/dd561afa13cc1220667a5a5c251e18ec25730231b9b61aa98636e227484ae7b5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72756e616c797a652f6167652d67726164652e737667)](https://packagist.org/packages/runalyze/age-grade)[![Build Status](https://camo.githubusercontent.com/e8157cdcdf48bbfdc2645c85a8b2e15d663d01d7c9cfa28708de220894acfc37/68747470733a2f2f7472617669732d63692e6f72672f52756e616c797a652f6167652d67726164652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Runalyze/age-grade)[![Code Coverage](https://camo.githubusercontent.com/6e491ad89ffe23d13a83ba7021217cda3a5f20f3bd2c4632b39bbb1a3be70aa4/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f52756e616c797a652f6167652d67726164652f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/Runalyze/age-grade/?branch=master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/2480ea4c8753fef71eaf2a03c145cd56107126907113ed73e317dabb3759f7cc/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f52756e616c797a652f6167652d67726164652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/Runalyze/age-grade/?branch=master)[![MIT License](https://camo.githubusercontent.com/303dea9542be6485f9a71df1f1d458783f4a8f1c73c95daa21e450492969e34c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f747762732f626f6f746c696e742e737667)](https://github.com/Runalyze/age-grade/blob/master/LICENSE)

Library to provide age grading for race results (running) based on tables provided by [Alan Jones](http://www.runscore.com/Alan/AgeGrade.html) using standards by WMA ([World Masters Athletics](http://www.world-masters-athletics.org/)) and USATF ([USA Track and Field](http://www.usatf.org/)).

Usage
-----

[](#usage)

```
use Runalyze\AgeGrade\Lookup;
use Runalyze\AgeGrade\Table\MaleTable;

$Lookup = new Lookup(new MaleTable(), 54);
echo $Lookup->getAgeGrade(10.0, 42 * 60 + 25); // output: 0.7329
```

Internally, `getAgeGrade()` returns an `AgeGrade` object that will return the rounded age grade value when transformed to a string. You can fetch more details by respective methods:

```
$Lookup = new Lookup(new MaleTable(), 54);
$AgeGrade = $Lookup->getAgeGrade(10.0, 42 * 60 + 25);
$AgeGrade->getPerformance(); // returns 0.7329
$AgeGrade->getAgeStandard(); // returns 1865
$AgeGrade->getOpenStandard(); // returns 1603
$AgeGrade->getAgeFactor(); // returns 0.8594
```

License
-------

[](#license)

- Code released under [the MIT license](LICENSE).
- Tables are licensed under [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).
- All Masters standards/factors are as approved by the WMA Vice President - Non Stadia, WMA President, and USATF MLDR Committee.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~506 days

Recently: every ~519 days

Total

6

Last Release

1026d ago

Major Versions

1.2.0 → 2.0.02021-10-18

PHP version history (2 changes)v1.0.0PHP &gt;=5.5.9

2.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2135076?v=4)[Michael Pohl](/maintainers/mipapo)[@mipapo](https://github.com/mipapo)

![](https://avatars.githubusercontent.com/u/8313118?v=4)[Hannes](/maintainers/laufhannes)[@laufhannes](https://github.com/laufhannes)

---

Top Contributors

[![laufhannes](https://avatars.githubusercontent.com/u/8313118?v=4)](https://github.com/laufhannes "laufhannes (11 commits)")

---

Tags

age-gradeathleticsrunningwma

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/runalyze-age-grade/health.svg)

```
[![Health](https://phpackages.com/badges/runalyze-age-grade/health.svg)](https://phpackages.com/packages/runalyze-age-grade)
```

###  Alternatives

[nordcoders/laravel-service-maker

Generate services and contracts in Laravel with the artisan command

261.4k](/packages/nordcoders-laravel-service-maker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
