How to Calculate Your Acute:Chronic Ratio From Strava
Strava will not hand you an acute:chronic workload ratio. There’s no tab for it, no number on the dashboard, and the closest thing it does offer (Fitness and Freshness) uses different window lengths than the research the ratio comes from. So if you want to know whether the block your AI coach just wrote is ramping you at a sane rate, you have to do a small amount of arithmetic yourself. It takes about ten minutes to set up and roughly ninety seconds a week to maintain.
This page covers the calculation end to end: which load metric to use, how to get the weekly numbers out of Strava, the formula in both its rolling-average and exponentially-weighted forms, and the specific ways the number lies to you. For where ACWR sits among the other things that actually predict running injury, read the broader overview at Training Load and Injury Risk first or after. This page assumes you already want the number and just need it computed correctly.
What the ratio actually measures
Acute load is what you’ve done recently, normally the last 7 days. Chronic load is what you’re used to, normally the average week over the last 28 days. Divide the first by the second and you get a unitless number describing how far today’s training sits from your recent normal.
A ratio of 1.0 means this week looked exactly like your average of the last month. 1.4 means this week was 40% heavier than you’re conditioned for. 0.6 means you backed off hard, or got ill, or went on holiday.
The idea comes from Tim Gabbett’s work in team sports, popularised by a 2016 British Journal of Sports Medicine paper that described a “sweet spot” around 0.8 to 1.3 and an elevated-risk zone above about 1.5. Those thresholds were derived from rugby, cricket and Australian football squads, not from recreational marathoners, and they have taken a serious methodological beating since. More on that below, because it changes how much weight you should put on any single reading.
Step 1: Pick one load metric and commit to it
The ratio is a comparison of like with like, so the metric matters less than the consistency. Your options, from Strava data:
| Metric | Where it comes from | Best for | Weakness |
|---|---|---|---|
| Distance (km) | Every run, always present | Bone and connective-tissue loading, marathon builds | Blind to intensity; a 10 km tempo counts the same as a 10 km jog |
| Moving time (min) | Every run | Runners with variable terrain, trail, or mixed paces | Blind to intensity too, but slightly fairer across hilly weeks |
| Relative Effort | Strava’s HR-based score (Training Load if you subscribe) | Runners with consistent chest-strap or wrist HR | Needs HR on every run; wildly sensitive to a bad HR reading |
| sRPE (session RPE) | You calculate it: minutes × RPE 1 to 10 | Everyone, honestly the best option | Requires you to log a number after each run |
For most recreational runners building toward a half or a full, weekly distance is the metric to start with, because that’s what your plan is written in and what your bones respond to. If you’re training for a 5K where the volume barely moves but the intensity swings hard, distance will tell you almost nothing and you want sRPE or Relative Effort instead.
A worked sRPE week, so you can see the shape of it:
Mon Easy 45 min RPE 3 = 135 AU
Tue 6 x 800m, 60 min RPE 8 = 480 AU
Wed Easy 40 min RPE 3 = 120 AU
Thu Tempo 50 min RPE 7 = 350 AU
Fri Rest = 0 AU
Sat Long 105 min RPE 5 = 525 AU
Sun Easy 30 min RPE 2 = 60 AU
Weekly = 1670 AU
Moving time comes straight off Strava; the RPE is yours, entered in the “Perceived Exertion” field on the activity or just in a spreadsheet.
Step 2: Get the weekly numbers out of Strava
Three routes, in increasing order of effort and usefulness.
The Training Log view. Go to strava.com/athlete/training on desktop. You get one row per week with weekly totals, and a toggle for distance, time and elevation. Subscribers also see weekly Relative Effort. Read off the last eight weeks into a spreadsheet and you’re done in two minutes. This is the fastest way to get your first ratio.
The bulk export. Settings → My Account → Download or Delete Your Account → Request your archive. Strava emails you a zip within a few hours. Inside is activities.csv, one row per activity, with date, activity type, elapsed time, moving time, distance and Relative Effort. One gotcha that catches everyone: the file carries more than one distance field and they are not in the same units, so find a run whose distance you know by heart and check which column matches before you build formulas on it. Filter Activity Type to Run and you have a clean daily series.
Fitness and Freshness. If you subscribe, strava.com/athletes/<your id>/training plots Fitness and Fatigue. Fitness is a 42-day exponentially weighted average of your Relative Effort; Fatigue is a 7-day one. Fatigue ÷ Fitness gives you something very close to an EWMA acute:chronic ratio, just with a 42-day chronic window instead of 28. Hover the chart, read both numbers, divide. If Fatigue is 71 and Fitness is 58, you’re sitting at 1.22. The longer chronic window makes it a bit more forgiving than a true 28-day ACWR, so treat it as a slightly optimistic proxy rather than the real thing.
Step 3: The arithmetic
Here’s a real marathon build, weekly kilometres:
Week 1 32
Week 2 36
Week 3 40
Week 4 30 (down week)
Week 5 44
Week 6 48
Week 7 52
Week 8 38 (down week)
End of Week 8. Acute load is Week 8’s total: 38 km. Chronic load is the mean of Weeks 5 to 8: (44 + 48 + 52 + 38) ÷ 4 = 45.5 km. Ratio = 38 ÷ 45.5 = 0.84.
Now roll back to the end of Week 7, which was the hard one. Acute = 52. Chronic = mean of Weeks 4 to 7 = (30 + 44 + 48 + 52) ÷ 4 = 43.5. Ratio = 52 ÷ 43.5 = 1.20. Inside the commonly cited band, despite Week 7 feeling like the biggest week of the block. That’s the useful thing about the calculation: it puts a hard week in the context of the three before it rather than in the context of how your legs felt on Sunday night.
In a spreadsheet with dates in column A and daily load in column B, the rolling version for every day looks like this:
Acute (C2): =SUMIFS($B:$B,$A:$A,">"&A2-7, $A:$A,"<="&A2)
Chronic (D2): =SUMIFS($B:$B,$A:$A,">"&A2-28,$A:$A,"<="&A2)/4
ACWR (E2): =IF(D2=0,"",C2/D2)
Fill down. You now have a daily ratio, which is more informative than a weekly one because it catches the Tuesday-after-a-long-run spike that a Sunday-to-Sunday view hides.
Coupled, uncoupled, and why your number looks low
Notice that in the calculation above, Week 7 appears in both the numerator and the denominator. That’s the standard “coupled” form, and it’s mathematically awkward: a big week inflates the chronic average it’s being compared against, which drags the ratio back toward 1.0 and mutes exactly the spike you were trying to detect.
The uncoupled version fixes it by excluding the acute week from the chronic average. Same Week 7: chronic = mean of Weeks 4 to 6 = (30 + 44 + 48) ÷ 3 = 40.7. Ratio = 52 ÷ 40.7 = 1.28. Meaningfully higher than 1.20.
Consider a runner who does 40, 42, 38, 44 km and then goes on a training camp and runs 72. Coupled: 72 ÷ ((42 + 38 + 44 + 72) ÷ 4) = 72 ÷ 49 = 1.47. Uncoupled: 72 ÷ 41.3 = 1.74. The coupled number puts them just under the threshold everyone quotes; the uncoupled number says they blew straight past it. The uncoupled figure is the more honest description of what happened. Whichever you pick, pick one, because the two are not comparable and switching between them will make your trend line meaningless.
The daily EWMA version
Rolling averages treat a run from 27 days ago as exactly as relevant as yesterday’s, then drop it off a cliff on day 29. Exponentially weighted moving averages decay smoothly instead, which is both more physiologically plausible and what Strava, Garmin and TrainingPeaks all use internally.
The decay constants are λ = 2 ÷ (N + 1), so 0.25 for a 7-day acute window and 0.069 for a 28-day chronic one. Each day:
EWMA_today = (load_today × λ) + (EWMA_yesterday × (1 − λ))
Say yesterday your acute EWMA sat at 7.2 km/day and your chronic at 6.1 km/day. Today you run a 22 km long run.
Acute: (22 × 0.25) + (7.2 × 0.75) = 5.50 + 5.40 = 10.90
Chronic: (22 × 0.069) + (6.1 × 0.931) = 1.52 + 5.68 = 7.20
Ratio: 10.90 ÷ 7.20 = 1.51
Spikes to 1.51 the evening of the long run, then decays back over the easy days that follow. This is why a single daily EWMA reading means very little on a Sunday and quite a lot on a Thursday. Seed it by setting both EWMAs to your average daily load over the previous four weeks and letting it run.
Strava-specific traps that produce nonsense ratios
Missing activities poison everything. Treadmill sessions you didn’t upload, the parkrun your watch ate, the bike commute logged under a different sport: every gap makes your chronic load look smaller than it is, which inflates every subsequent ratio. If you cross-train seriously, either include those activities in your load metric with a sensible weighting or accept that your run-only ratio is a partial picture.
A new plan always starts with a bad number. Started running in earnest three weeks ago? Your 28-day chronic window contains a fortnight of nothing, so your ratio will read somewhere north of 1.5 no matter how conservative the plan is. Give it a full four weeks of real data before you take any reading seriously. Same applies coming back from injury, illness or a two-week holiday.
Distance and intensity diverge. Runna and Garmin Coach both tend to hold volume flat and turn up quality during the sharpening phase. A distance-based ACWR will sit contentedly at 1.0 through a block that’s frying your Achilles. If your plan’s hard sessions are getting harder while the mileage stays put, switch your metric to sRPE or Relative Effort for that phase.
Relative Effort is only as good as your HR strap. One run where your wrist optical sensor locked onto your cadence and reported 178 bpm for an easy jog will add a spurious 100-plus points to your week, and it stays in your chronic window for a month. Spot-check outliers and correct or exclude them.
Race weeks break the model both ways. A marathon is a single-session load spike that no 7-day window handles gracefully, and the two easy weeks after it drive your ratio down to 0.5 or lower, which the literature associates with its own (weakly evidenced) risk. Don’t chase a number back up to 1.0 during a taper or a recovery block.
Reading the number without overreading it
Franco Impellizzeri and colleagues have published a sustained methodological critique of ACWR since 2019, and the short version is: the sweet-spot thresholds are not well evidenced, the coupled form has a spurious-correlation problem, the ratio discards information that the raw acute and chronic values retain, and almost none of the validation work was done on endurance athletes. Garmin’s own Load Ratio feature frames a wider band than Gabbett’s original, roughly 0.8 to 1.5, and adjusts it per athlete.
Use it as one input, not a verdict. Practically:
- Below 0.8 with no taper or illness explaining it: you’re detraining, which is a problem for race day, not usually for your tissues.
- 0.8 to 1.3 with a rising chronic load: this is the shape a good build has.
- 1.3 to 1.5: fine occasionally, as a deliberate overload week, with a genuine down week behind it and another ahead.
- Above 1.5 for two consecutive weeks: your plan is progressing faster than you’re adapting. That’s a conversation to have with whatever wrote it.
- Above 1.5 at any point with a nagging niggle already present: stop reading spreadsheets and back off.
The trend matters more than the level. A chronic load creeping up week after week with the ratio hovering near 1.1 is the picture you want; a ratio pinned at 1.0 while chronic load stays flat means you’re maintaining, not building.
The genuinely useful move: calculate it forward
Every AI plan gives you next week’s sessions in advance, which means you can compute the ratio before you run it rather than after. Take the marathon build above, sitting at 45.5 km chronic after Week 8.
Runna prescribes 58 km for Week 9. Projected chronic = (48 + 52 + 38 + 58) ÷ 4 = 49. Projected ratio = 58 ÷ 49 = 1.18. Green light.
Suppose instead it prescribes 68 km. Projected chronic = (48 + 52 + 38 + 68) ÷ 4 = 51.5. Projected ratio = 68 ÷ 51.5 = 1.32. That’s a real jump on the back of a down week, and the honest response is to split the difference: run 60 to 62, tell the app you modified the week, and let it recalculate.
Doing this on a Sunday evening for the week ahead takes two minutes and is the single highest-value habit in this whole page. It converts ACWR from a post-mortem tool into a steering one.
Tools that will do the sums for you
If you’d rather not maintain a spreadsheet, intervals.icu is free, connects directly to Strava, and gives you ATL, CTL, ramp rate and load-ratio charts with configurable window lengths. Runalyze is also free and computes TRIMP-based load. Elevate for Strava, a browser extension, overlays a configurable fitness trend on Strava’s own pages. TrainingPeaks premium plots ACWR directly if you’re already paying for it. Garmin watches from the Forerunner 255 and Fenix 6 upward show Acute Load and Load Ratio natively under Training Status, calculated from their own EPOC-based load rather than from Strava, so expect the numbers to differ from anything you compute by hand.
Whichever route you take, write down which metric and which coupling you chose, and put that note in the same sheet. Six weeks from now, when the ratio reads 1.38 and you’re trying to remember whether that’s the coupled distance version or the uncoupled sRPE one, you’ll want it.