Skip to contentallpts

About

all3pts forecasts the NWSL: who wins each match, and how the season ends.

Why this exists

FiveThirtyEight's club soccer predictions put every club's odds in one table. They stopped updating it in 2023, and nothing really replaced it. So I'm building the version I wanted, starting with the NWSL.

What you'll see

Matches lists the season in kickoff order. Each match has a bar with both teams' win chances and the chance of a draw. Home is always on the left, so if the bar leans left, the home team is the favorite. Played matches keep the bar from before kickoff.

Standings shows each team's offense, defense, and overall ratings, plus its odds of making the playoffs, winning the Shield, and winning the title. Every team has a page with its ratings over the season, and every match has a page with the most likely scores and where to watch in the US. Tags point out matches worth a look, measured against every match of the 2024 and 2025 seasons so a tag means the same thing all year.

What the numbers mean

Each match gets three chances that add up to 100%: a home win, a draw, and an away win. They're for the result after 90 minutes plus stoppage time, so a playoff match settled in extra time or on penalties counts as a draw here.

A 45% home win means that across all the matches where the model says 45%, the home side should win about 45 of every 100. One match can't prove a chance right or wrong. Only a lot of matches can, which is what the tests below are for.

How the forecast works

Every club gets an attack rating and a defense rating, fitted to every NWSL, Challenge Cup, and Fall Series match since 2013. The model learns from a blend of 75% expected goals and 25% actual goals, since expected goals are a steadier read on how well a team played. The expected goals come from American Soccer Analysis (opens in a new tab) and start in 2016, so earlier matches use goals alone.

Newer matches count more. A match's weight halves every 180 days. The home side gets a bump the model fits from the same results.

For one match, the two teams' ratings and the home bump give each side an expected number of goals. A Dixon-Coles model, a Poisson model with a fix for low scores like 0-0 and 1-1, turns those into a chance for every scoreline, and adding them up gives the three chances.

For the season, I play out every remaining match 10,000 times with the ratings as they stand, each time drawing a scoreline, then rank the table by the league's tiebreakers and play the playoff bracket. How often each team finishes first, makes the top 8, and wins the bracket gives the Shield, playoff, and title odds. Cards aren't in the data, so teams still level after head-to-head are split at random, and a shootout is a coin flip.

The forecast runs every night, from results that kicked off at least 3 hours earlier. Once a match kicks off, the last forecast issued before it is saved and never changes.

The forecasts on this site are model version 2, issued Sep 29 at 9:32 PM EDT from 1,868 results through Sep 29. This season's results were last updated .

How it was tested

The settings were chosen on one set of seasons and tested on later ones the model never saw while it was being built. In every test, each match was forecast the night before, from only the results known by then.

Periods
PeriodSeasonsMatchesUsed for
Warm-up2013–2015noneTraining only, never scored. No expected goals before 2016.
Development2016–2019, 2021–2023844Choosing the settings. Every choice was made on these seasons.
Holdout2024–2025378The test. Scored once, after the settings were frozen.
LiveSep 24, 2026 on8The forecasts published here, scored as matches finish.

How it did

The Brier score adds up how far each of the three chances was from what happened, squared. 0 is perfect and 2 is as wrong as it gets. The ranked probability score (RPS) treats the results as ordered, so calling a home win when it's a draw costs less than when the away side wins.

League frequency is the bar to clear: the share of home wins, draws, and away wins in every earlier NWSL match, given to every match alike. The difference is the model minus league frequency, so below zero favors the model. The interval comes from resampling the matches 2,000 times, with both forecasts scored on the same matches each time. When the whole interval is below zero, the edge isn't a lucky run of matches.

Brier score, lower is better
PeriodModelLeague frequencyDifference [95%]
Development844 matches0.62360.6505−0.0269 [−0.0411, −0.0125]
Holdout378 matches0.60370.6467−0.0430 [−0.0649, −0.0186]
RPS, lower is better
PeriodModelLeague frequencyDifference [95%]
Development844 matches0.21820.2320−0.0138 [−0.0206, −0.0069]
Holdout378 matches0.21310.2339−0.0208 [−0.0316, −0.0093]

FiveThirtyEight published NWSL forecasts until mid-2023. On the 647 development matches it covered, the model's Brier score was 0.6193 and FiveThirtyEight's 0.6250, a difference of −0.0057 [−0.0158, +0.0050]. The interval spans zero, so the two are level. FiveThirtyEight is here as a historical reference, not a benchmark. Its NWSL probabilities were miscalibrated and lost to closing betting odds (opens in a new tab). Matching or beating it says only that.

Calibration

If the chances are right, results given 30% should happen about 30% of the time. Here are the 378 holdout matches, sorted for each result by the chance the model gave it and cut into 5 equal groups, about 76 matches each. A dot on the dashed line is a group where the chance and what happened agree.

  • Perfectly calibrated
  • Bigger dots, more matches

How often it happened

Home winDrawAway win
050100%
050100%
050100%
050100%

Forecast chance

378 matches is a small sample. 5 groups per result is all it supports. With more, each group would hold too few matches for its rate to mean much.

Holdout, 2024–2025, by group
ResultChances fromMatchesAverage chanceHappened
Home win10.2% to 31.0%7524.9%25.3%
31.0% to 39.3%7635.3%36.8%
39.4% to 46.3%7543.1%41.3%
46.4% to 54.6%7650.5%50.0%
54.9% to 80.8%7663.5%64.5%
Draw11.5% to 20.7%7518.0%17.3%
20.8% to 22.4%7621.7%19.7%
22.4% to 23.9%7523.3%26.7%
23.9% to 25.4%7624.6%25.0%
25.4% to 31.2%7627.0%27.6%
Away win7.7% to 22.5%7517.0%21.3%
22.5% to 29.0%7625.6%15.8%
29.0% to 35.7%7532.3%34.7%
35.9% to 44.6%7639.7%38.2%
44.8% to 76.0%7653.0%55.3%

Each result's Brier score splits into parts. Reliability is how far the chances sit from what happened (lower is better). Resolution is how much the chances tell matches apart (higher is better). Uncertainty is how unpredictable the results were, the same for any forecast. Brier is reliability minus resolution plus uncertainty, plus the within-group variance, minus the within-group covariance. Those last two come from the spread of chances inside each group.

Brier score by result, in parts
ResultBrierReliabilityResolutionUncertaintyWithin-group varianceWithin-group covariance
Holdout, 2024–2025
Home win0.22660.00010.01720.24600.00170.0040
Draw0.17760.00030.00160.17860.0001−0.0001
Away win0.19950.00260.01920.22130.00160.0068
Development, 2016–2019, 2021–2023
Home win0.23120.00040.01340.24540.00160.0029
Draw0.18720.00090.00050.18630.0002−0.0004
Away win0.20520.00060.01160.21760.00150.0029

Most favorites land between 40% and 60%, so that range matters most. In development, 581 matches had a favorite in it. The model gave those favorites 48.6% on average, and they won 47.7% of the time.

The record so far

The tests above are on past seasons. This is the forecast as it was published, saved since Sep 24, 2026. Every forecast is saved before kickoff and never edited, and once a match is played its saved forecast is scored, next to league frequency as it stood when the forecast was issued.

8 finished matches have a saved forecast. On those, the model's Brier score is 0.5122 and league frequency's 0.6119, a difference of −0.0997 [−0.2340, +0.0345]. Its RPS is 0.1970 against 0.2452, a difference of −0.0482 [−0.1093, +0.0144].

8 matches are too few to tell the model from league frequency yet. The holdout had 378.

Limitations

The forecast is issued once a night, from the results known by then. It doesn't see lineups, injuries, suspensions, or late news, so it isn't a substitute for closing betting odds, and it isn't a betting tool. I haven't compared it with betting markets. That waits for an odds source I can verify.

A club in its first season starts at league average. Home advantage follows the fixture feed's flag for a neutral ground, so a match it marks neutral, like the Championship final, gets none. A match no feed has flagged yet is forecast as a home match for the team listed first.

Credits

Where the data comes from

Fixtures and results come from third-party data feeds, and so do the US TV listings. All of it updates every night, and every update gets checked before it goes live. If one fails, the site keeps the last good version. The footer on each league page shows how old the data is.