How Rivalo works

Two minutes for the idea. The details are below if you want them.

The whole game in four lines

  1. 1Run about as much as you usually do → your Form is 100.
  2. 2Run more than usual → above 100. Run less → below 100.
  3. 3Each week you're matched with one person in your division. Higher Form wins.
  4. 4Speed doesn't matter. A 7-min/km beginner beats a 4-min/km racer who had a lazy week.
1

Your Form, in plain words

Form answers one question: "compared to a normal week for you, how much did you run this week?"

We look at your last 8 weeks on Strava and work out your usual week. Then we compare this week to it:

Half your usual week≈ 72
20% less than usual≈ 91
Exactly your usual week100
20% more than usual≈ 107
50% more than usual≈ 116
Double your usual week≈ 128

Form always lands between 60 and 140, so one heroic week can't break the scale. Your Home screen shows your usual week and this week side by side, live.

2

What counts as “how much”

Mostly minutes. A hard run counts a little more than an easy one, but only a little: a run at your usual pace counts ×1, your hardest efforts count at most ×1.3 and your easiest at least ×0.7. "Hard" and "easy" are measured against your own usual pace, never anyone else's.

Only runs count (road, trail, treadmill). Rides, walks and manually typed-in activities are ignored.

3

“Can I cheat by taking it easy at first?”

People ask this a lot, so straight answers:

  • Running slowly at first doesn't help. "Hard" and "easy" are relative to your own usual pace. If you jog everything, jogging becomes your usual pace and counts as normal. Speeding up later gains you at most a few points, once, and then your usual pace catches up with you.
  • Running less at first mostly hurts you. Every quiet week is a fixture you lose (a week with no runs scores 60). And your usual week is measured against the higher of your last 8 weeks and your last 26 weeks, so a short quiet stretch doesn't lower the bar. Every big week also raises your usual week for the weeks after it.
  • Being fast doesn't help either. Nothing about your pace compared to other people enters the score. Ever.

The only reliable strategy is the boring one: run a bit more than you normally would, consistently.

4

Your first three weeks

It takes 3 weeks with runs before we know what "usual" means for you. Until then you're in Placement: you get a Form score from your very first run, judged against a starter baseline (a neutral 60-minute week, blended with whatever history you already have), and your Form is capped at 105 so a monster first week can't farm wins before your real baseline exists.

If you haven't logged a single run yet, you count as Form 60 — the same score as a zero-run week — so an opponent who actually ran beats you. If you were already running before you joined, your Strava history counts and you may skip placement entirely.

5

The health floor

Under 60 active minutes in a week, your Form is capped at 99. So a single 10-minute jog can't win a fixture even if it's technically "more than usual". Get to 60 minutes and the cap disappears.

6

Fixtures: one opponent per week

Your division has up to 10 people. Each week you're paired with one of them, rotating so you meet everyone.

The week runs Monday 00:00 to Sunday 23:59 UTC (that's 02:00 Monday night Dutch time, 01:00 in winter). On Monday both Forms are locked and compared:

Higher FormWin · 3 points
Within 1.0 of each otherDraw · 1 point each
Lower FormLoss · 0 points
Bye (odd number in division)1 point, no opponent
Either of you restingVoid · 1 point each
Opponent has never logged a runThey count as Form 60 — beat it and you win
Neither of you has ever logged a runVoid · 1 point each
Example
You: Form 103.4. Opponent: Form 108.9. You ran a good week; they ran a better one compared to themselves. They take 3 points, you take 0. Next week, new opponent.
7

The table, promotion and relegation

A season is long enough for everyone to play everyone: one week per opponent (plus a bye round each in odd-sized divisions), never shorter than 6 weeks — a full division of 10 runs 9 weeks. Points decide the table; ties are broken by total Form across the season.

At the end, the top 2 go up a division and the bottom 2 go down (Division 1 can't go up; the lowest division can't go down). A new season starts the following Monday with fresh points.

8

Rest weeks

You get 1 rest week per season, free. Injured, travelling, or just done? Declare it for the coming week. It locks once that week starts, so it can't be used to dodge a fixture you're already losing. Your fixture is voided (1 point each), and that week is left out of your usual week, so resting never drags down your future Form.

Without a rest week, a zero-run week scores 60 and loses.

Out longer — a real injury, a long trip? After 3+ weeks without a run, your first run back resets your usual week: you're judged against your post-layoff self (briefly back in placement), not your old peak. The reset is floored by how recently fit you were, fading ~15% per week away, so a short fake break keeps a high bar while a long genuine one gets a fresh start. Staying inactive keeps the old bar — quiet weeks still score 60.

9

Joining mid-season

If you connect after a season has started, you can join right away. You're placed in the lowest division; if there's a spare slot you get fixtures, otherwise you collect byes (1 point a week) until the season ends and you're placed properly in the next one.

10

Strava

When you connect, we import your last 28 weeks of runs so your usual week is ready from day one. New runs sync automatically within a minute of you saving them on Strava; "Sync Strava now" forces it.

For the nerds: the exact formula

Load for a run = minutes × intensity, where intensity = your pace on that run ÷ your median pace over the last 8 weeks, clamped to 0.7–1.3. Weekly load is the sum over the week's runs.

Usual week (baseline) = the higher of the average weekly load over your last 8 weeks and over your last 26 weeks, counting only weeks with at least one run and skipping declared rest weeks.

Placement: with n < 3 weeks of history, baseline = (2 × 60 + n × your average) ÷ (2 + n) — a neutral 60-load week worth 2 virtual weeks, fading out as real weeks arrive — and Form is capped at 105. From 3 weeks on, the prior is gone and only your own history counts.

Comeback: a layoff of 3+ consecutive zero-run weeks resets the baseline windows at your first run back (placement rules apply until 3 post-layoff weeks exist). The reset is floored at your pre-layoff 8-week average × 0.85layoff weeks. No reset happens while you stay inactive.

Form = 100 + 40 × ln(this week's load ÷ usual week)

Clamped to 60–140. Capped at 99 when under 60 active minutes. A draw is any pair of Forms within 1.0 of each other.

Worked example
Your usual week is 180. This week you ran three times for 210.
210 ÷ 180 = 1.17 → ln(1.17) = 0.155 → 40 × 0.155 = 6.2 → Form 106.2.
Back to settings
Powered by Strava