← Blog · Guide · 6 min read

How to build a fair scoring system for a friends-only prediction league

A scoring system has one job: keep everyone engaged through the whole season. That means rewarding both safe and bold picks, keeping the bottom of the table within reach, and not letting one lucky weekend define the league. Here's how to think about it.

The three things a scoring system has to balance

  1. Skill expression: a knowledgeable predictor should outperform a random one over a season.
  2. Comeback potential: if you're 8 points down at matchday 5, you should feel like you can still catch up by matchday 15.
  3. Drama per matchday: each round should change the leaderboard meaningfully, otherwise people stop checking.

The "outcome + exact score" baseline

For football, this is the standard format and it works well:

The ratio is the important part. 3:1 means an exact-score pick is roughly 5× rarer but pays 3×, so the expected-value math actually rewards confidence rather than punishing it. Lower the multiplier (say 2× instead of 3×) and you make exact-score picks suboptimal and people stop trying them.

The variant we recommend

A slight tweak that we see consistently produces better leagues:

The middle tier solves a common complaint: "I called Real Madrid 2–1 and the actual was 3–2, I got the same as someone who picked 1–0." With three tiers, getting close pays off, and "close but not exact" feels rewarded.

What about basketball?

Exact score is functionally impossible. Replace it with:

The exact ladder doesn't matter — what matters is that it's hard to max out every game, so the "knowledgeable" prediction still has room to differentiate.

Anti-tilt rules: keep the bottom half engaged

The classic problem: by matchday 8, three people are 12+ points clear. The bottom four know they can't catch up. They stop submitting. Two ways to fix this:

Option A: "Best 10 of 14 matchdays"

Your season total is your best N matchdays, not your total points. This means a bad weekend doesn't haunt you forever, and someone joining late can still catch up if their last 10 matchdays are strong.

Option B: Mid-season reset

At the halfway point, scores get compressed (e.g., everyone's points × 0.7) or the league splits into a "winners" bracket and a "challengers" bracket. Brutal but it works — every league with a midseason device retains better than ones without.

The "wildcard" point

Once a season, every player picks one match where their points count double. They have to commit before the match. Most groups we know love this — it rewards conviction and creates one or two "wildcard weekends" that everyone remembers.

What NOT to do

BeTeam ships with the recommended 1 / 2 / 3 system as the default for football and the basketball-adapted tiers for basketball. You can customize the scoring per league when you create it.