Job ticket 926988 · consumer · coach's ledger · no subscription
Strava records free and sells the understanding at US$79.99 a year.
The subscribe page's own table says it: recording, community and history are free; 'analyze workouts with advanced insights', Fitness Score and goals are subscriber-only. But a week of your activities pasted as lines is all the analysis needs — judgment a free-tier model does without a wall. Keep recording wherever you record; keep the ledger here.
Strava is a trademark of Strava, Inc. This is an independent, unaffiliated comparison built on Strava's own published subscription page, linked below and re-read every thirty days.
The coach's ledger — rendered in this browser
Sample data is illustrative, not a claim about Strava. Every Strava figure on this page comes from the linked pricing page, read 2026-09-28.
The prompt pack
Two prompts, each mapped one-to-one onto a Strava feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.
Loading the pack from tools.json… If this fails, the full prompt text is still readable below.
One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.
What Strava's own pricing page says
Read from strava.com — subscribe on 2026-09-28. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.
| The job | Strava free | The subscription | This page + a free-tier model |
|---|---|---|---|
| Recording & history | Included, US$0 | — | You keep recording wherever you do |
| 'Advanced insights' | Subscriber-only | US$79.99/yr | A load-and-drift audit of your pasted week |
| Fitness Score & effort | Subscriber-only | US$79.99/yr | A committed readiness memo, no fake scores |
| Segments & leaderboards | Subscriber-only | US$6.67/mo | Out of scope — multiplayer stays theirs |
What this replaces, and what it does not
A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Strava wins.
Analysis as files
A week ledger and a readiness memo per run, exported as Markdown — filed next to your training log, however you keep it.
Your activities stay yours
Nothing is stored, synced or tracked. No GPS, no app install, no location ever touches this page.
Verdicts, not dashboards
The memo commits in one sentence and names its reason — a readable answer, not a wall of charts.
Not a tracking app
No recording, no maps, no live segments. Strava's recording is genuinely free; keep using it.
Not a social network
No kudos, clubs or leaderboards — the multiplayer half of Strava stays exactly where it is.
No invented metrics
No Fitness Score, no VO2max, no fabricated paces. If the paste lacks a number, the memo says what to measure instead.
The prompts, in full, as text
Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.
Prompt 01 — 1. Week audit · strava-week-audit v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite
Replaces: 'Analyze workouts with advanced insights' — the subscriber verb: a pasted week becomes a load-and-drift ledger with your hours re-added and stamped.
Why this model: Auditing a week is precise arithmetic plus one voice of judgment; a free Flash-lite at low temperature keeps durations and totals intact and flags drift instead of moralizing. Fallback ally: Groq Cloud — free tier.
System prompt (1530 chars):
You keep the coach's ledger: the reader pastes a week of activities — day, sport, duration, distance, effort — and you return an audit sheet: one row per day with load and one observation, a stamped weekly total, and footnotes that name drift, not sin. You read like a coach who has seen a thousand weeks: specific, calm, allergic to jargon.
Return ONLY one JSON object. No markdown fences, no commentary, no preamble.
{
"kicker": string (max 8 words),
"headline": string (max 8 words),
"subhead": string (max 20 words),
"rows": [ { "label": string (the line item), "value": string (the finding, quote or number) } ],
"stat": { "value": string (one count or price, digits), "label": string (max 12 words, what the number is) },
"footnotes": [ string (one short footnote per assumption made) ]
}
Hard rules:
1. Return one row per activity day: label is the day and sport, value is the load in plain numbers plus one clause of observation.
2. The stat is the week's total time, re-added exactly from the pasted durations — count twice before you finalize.
3. The subhead states the shape of the week ('three runs, one long', 'all intensity, no easy') in at most 10 words.
4. Footnotes name at most three things: the biggest drift from balance, the day most likely to have been too hard, and the one easy win for next week.
5. Compute intensity balance from the pasted efforts only; never invent pace, power or heart-rate data that was not pasted.
6. Rest days are entries too: one row stating what the rest protected.
User message template:
Variables:
{{week}}— Paste your week of activities (max 2000 chars) sample data shipped with the tool{{goal}}— What you're training for (max 200 chars) sample data shipped with the tool
Output schema (the answer must match this exactly):
Decoding: temperature 0.2 · max 1800 output tokens · responseMimeType application/json · budget ~450 in / ~700 out for a week · cost per run: 1 request against Gemini's free daily messages; the relay floor needs no key at all.
Prompt 02 — 2. Race-readiness memo · strava-readiness-memo v1.0.0 · best ally: Google Gemini API — Free usage tier · openai/gpt-oss-20b
Replaces: Fitness Score and 'measure effort across activities' — the scored judgment layer: your pasted weeks against a goal date, returned as a plain-words risk memo.
Why this model: A readiness memo is judgment prose over pasted numbers with a fixed shape; a free instruct model at low temperature commits to a verdict, a reason and a next step instead of hedging in all directions. Fallback ally: Google Gemini API — Free usage tier.
System prompt (1589 chars):
You write the readiness memo: the reader pastes two to four weeks of summary lines and a goal with a date, and you return a one-page memo that commits — readiness in one sentence, the biggest risk in one sentence, the next two weeks in three moves. No fitness scores invented, no tables of fake metrics; the memo's authority is that it reads your actual weeks and says something specific.
Return ONLY one JSON object. No markdown fences, no commentary, no preamble.
{
"kicker": string (max 8 words),
"headline": string (max 8 words),
"subhead": string (max 20 words),
"rows": [ { "label": string (the line item), "value": string (the finding, quote or number) } ],
"stat": { "value": string (one count or price, digits), "label": string (max 12 words, what the number is) },
"footnotes": [ string (one short footnote per assumption made) ]
}
Hard rules:
1. Return rows in this order: 'Readiness', 'Biggest risk', 'Move 1', 'Move 2', 'Move 3', each row's value one sentence, at most 30 words.
2. The Readiness row commits: on track / on track with one concern / behind — and says why in the same sentence.
3. Every move names a week day-count ('this week', 'next week') and a concrete session shape, not a vibe.
4. The stat is the countdown: days to the goal date, computed from the pasted date and today's stated date.
5. If the pasted weeks show injury signs (effort climbing while duration falls, pain mentioned), Move 1 is a check-up instruction, not a workout.
6. Never invent pace targets from nothing; if a target is useful, say what to base it on instead of a number.
User message template:
Variables:
{{weeks}}— Paste 2–4 weekly summaries (max 1500 chars) sample data shipped with the tool{{race}}— Goal and date (max 200 chars) sample data shipped with the tool
Output schema (the answer must match this exactly):
Decoding: temperature 0.3 · max 1400 output tokens · responseMimeType application/json · budget ~350 in / ~500 out per memo · cost per run: 1 request against a free OpenRouter daily pool; the relay floor needs no key at all.
Questions worth asking before you cancel
What exactly does the subscription add on Strava?
The page's own table is the answer: 'Analyze workouts with advanced insights', Fitness Score over time, goals, routes (save offline, draw your own), segment leaderboards, challenges and effort measurement. Free keeps recording, community, safety and history. Read 2026-09-28.
Can this really replace Strava's analysis?
It replaces the reading of your own week — the ledger and the verdict. It does not replace recording, maps or segments, and it never pretends to. That seam is the honesty of the page.
Is it accurate without heart-rate or power data?
It reasons from what you paste — durations, distances, your own effort ratings. The discipline is that it never invents the numbers it lacks; a memo built on thin data says so.
Where do my activities go?
Nowhere. No account, no storage, no analytics beyond the site beacon. Paste, render, download, clear the tab.
Does it work without an API key?
Yes. Copy the printed prompt into any free chat model, paste the JSON answer into the relay box, and the clipboard renders it exactly the same way.
Send this to someone still paying for it
Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.