Traction is a running analytics tool built by Luca. It reads training history from Strava and turns it into a picture of what a specific race actually demands and how much of that is currently in place.
It exists because of a small frustration that turns out to be a large one. Most running platforms hand you a single score — a readiness number, a fitness number, a race prediction — with no way to ask where it came from. When the number agrees with how you feel, you believe it. When it does not, you have nothing to check it against, so you either ignore it or trust it against your own judgement. Neither is useful.
What that means in practice
Every score here is scored against something you can name. Weekly volume is measured against the volume your goal time demands, not against a fixed target for an average amateur — so a faster goal raises the bar rather than leaving you pinned at 100. Where the data to judge a system was never loaded, the page says so and leaves the system out. Where the data was loaded and the training simply is not there, it says that instead, and counts it against you.
That last distinction sounds pedantic and is the difference between an honest number and a flattering one. If a missing long run only ever removes a system from the calculation, then skipping your long runs raises your readiness. Plenty of tools work exactly that way.
Where it is honest about its limits
The models here are drawn from published work — Daniels for pace equivalence, the performance-management chart for training load, the durability literature for what happens late in a long race. The specific thresholds are informed estimates, not values fitted against race results, and the app says so where you can see it. The ordering of your systems is more trustworthy than any single number, and it will stay that way until there are enough finished races to calibrate against.
The writing
The notes are mostly working through problems in the open: why an average is the wrong way to combine training qualities for a marathon, what a heart-rate drift number does and does not tell you, where a race predictor quietly breaks. If the reasoning is wrong, it is easier to find when it is written down.
Activity data comes from Strava, and the app keeps its attribution and links intact throughout. It stores no geographic data — routes, start points and GPS traces are deliberately never synced.