APFT Calculator
Calculate your Army Physical Fitness Test score with official FM 7-22 standards. Score push-ups, sit-ups, and 2-mile run by age and gender.
About
The Army Physical Fitness Test (APFT) measures muscular endurance and cardiorespiratory fitness across three events: push-ups, sit-ups, and a timed 2-mile run. Each event is scored on a 0 - 100 point scale using lookup tables from FM 7-22 (TC 3-22.20), segmented by gender and 10 age brackets from 17 - 21 through 62+. A minimum score of 60 per event is required to pass. Failure in any single event constitutes an overall failure regardless of total score. Maximum composite score is 300.
This calculator implements the complete official scoring tables with linear interpolation between breakpoints. Scores are not rounded in the soldier's favor for partial repetitions. The APFT was officially replaced by the ACFT (Army Combat Fitness Test) in October 2020, but APFT standards remain widely referenced for legacy records, ROTC programs, and comparative fitness assessment. Note: this tool does not account for altitude adjustments or temporary medical profiles that may alter event requirements.
Formulas
The composite APFT score is the sum of three individually scored events:
Each event score S is determined by piecewise linear interpolation across the official scoring table for a given gender g and age group a. For a raw input r falling between two table breakpoints (rlow, slow) and (rhigh, shigh):
Pass criteria require each event score to meet or exceed the minimum threshold:
Where Spu = push-up score, Ssu = sit-up score, Srun = 2-mile run score. For the run event, the raw value r is converted to total seconds. Lower run time yields a higher score, so the interpolation direction is inverted. The maximum possible Stotal = 300. A score of 270+ with ≥ 90 per event earns the Extended Scale badge.
Reference Data
| Age Group | Gender | Min Push-ups (60 pts) | Min Sit-ups (60 pts) | Max Run Time (60 pts) | Max Push-ups (100 pts) | Max Sit-ups (100 pts) | Max Run Time (100 pts) |
|---|---|---|---|---|---|---|---|
| 17-21 | Male | 42 | 53 | 15:54 | 71 | 78 | 13:00 |
| 17-21 | Female | 19 | 53 | 18:54 | 42 | 78 | 15:36 |
| 22-26 | Male | 40 | 50 | 16:36 | 75 | 80 | 13:00 |
| 22-26 | Female | 17 | 50 | 19:36 | 46 | 80 | 15:36 |
| 27-31 | Male | 39 | 45 | 17:00 | 77 | 82 | 13:18 |
| 27-31 | Female | 17 | 45 | 20:30 | 50 | 82 | 15:48 |
| 32-36 | Male | 36 | 42 | 17:42 | 75 | 76 | 13:18 |
| 32-36 | Female | 15 | 42 | 21:42 | 48 | 76 | 15:54 |
| 37-41 | Male | 34 | 38 | 18:18 | 73 | 76 | 13:36 |
| 37-41 | Female | 13 | 38 | 22:42 | 46 | 76 | 17:00 |
| 42-46 | Male | 30 | 32 | 18:42 | 66 | 72 | 14:00 |
| 42-46 | Female | 12 | 32 | 23:42 | 40 | 72 | 17:24 |
| 47-51 | Male | 25 | 30 | 19:30 | 59 | 66 | 14:24 |
| 47-51 | Female | 10 | 30 | 24:00 | 34 | 66 | 17:36 |
| 52-56 | Male | 20 | 28 | 19:48 | 56 | 66 | 14:42 |
| 52-56 | Female | 9 | 28 | 24:24 | 31 | 66 | 19:00 |
| 57-61 | Male | 18 | 27 | 19:48 | 53 | 64 | 15:18 |
| 57-61 | Female | 8 | 27 | 24:48 | 28 | 64 | 19:42 |
| 62+ | Male | 16 | 26 | 20:00 | 50 | 63 | 15:42 |
| 62+ | Female | 7 | 26 | 25:00 | 26 | 63 | 20:00 |