A SQL-driven look at every game of the 2026 season, refreshed daily while it's in progress. Built with Python, SQLite, and the balldontlie API. Each section answers one question with one query.
Two things are true at the same time: I love women's basketball, and I am a technologist looking for my next role. This project lives at the intersection of both.
The WNBA does not get enough good data work done about it. The same fifteen storylines get recycled every season. I wanted to ask my own questions and let the data answer them.
So I built one. Nine SQL queries, one dashboard, the entire 2026 season behind it. I taught myself SQL on a dataset I already had opinions about, because window functions and CTEs are easier to learn when you are using them to settle real arguments about real teams. No editorial filter. No narrative I was trying to push. Just the questions I cared about and the answers SQL gave back.
Some answers confirmed what I already thought. A couple genuinely surprised me. That is what good data work is supposed to do.
Total wins for each team across the 2026 season so far.
| Team | Wins | |
|---|---|---|
| 1 | Minnesota Lynx | |
| 2 | Golden State Valkyries | |
| 3 | Las Vegas Aces | |
| 4 | New York Liberty | |
| 5 | Indiana Fever | |
| 6 | Atlanta Dream | |
| 7 | Washington Mystics | |
| 8 | Dallas Wings | |
| 9 | Fire | |
| 10 | Chicago Sky | |
| 11 | Phoenix Mercury | |
| 12 | Los Angeles Sparks | |
| 13 | Tempo | |
| 14 | Connecticut Sun | |
| 15 | Seattle Storm | |
| 16 | TEAM SPOON |
Where teams won and lost. Home court still matters in the W.
| Team | Home W | Home L | Road W | Road L |
|---|---|---|---|---|
| Minnesota Lynx | 14 | 6 | 17 | 2 |
| Golden State Valkyries | 15 | 5 | 13 | 6 |
| Las Vegas Aces | 12 | 7 | 14 | 7 |
| Indiana Fever | 13 | 6 | 12 | 8 |
| Atlanta Dream | 12 | 6 | 13 | 7 |
| Washington Mystics | 13 | 7 | 11 | 8 |
| New York Liberty | 14 | 6 | 10 | 10 |
| Dallas Wings | 13 | 6 | 10 | 10 |
| Fire | 8 | 11 | 7 | 12 |
| Chicago Sky | 10 | 10 | 5 | 14 |
| Phoenix Mercury | 5 | 14 | 8 | 12 |
| Los Angeles Sparks | 6 | 13 | 7 | 12 |
| Tempo | 7 | 13 | 4 | 14 |
| Connecticut Sun | 7 | 13 | 3 | 15 |
| Seattle Storm | 6 | 13 | 2 | 18 |
Average points scored, allowed, and the differential. Positive means the team outscored opponents on average.
| Team | Scored | Allowed | Differential |
|---|---|---|---|
| Minnesota Lynx | 91.6 | 83.3 | +8.3 |
| Golden State Valkyries | 82.5 | 75.6 | +6.9 |
| Indiana Fever | 96.6 | 90.9 | +5.7 |
| Atlanta Dream | 91.1 | 85.4 | +5.6 |
| Las Vegas Aces | 90.4 | 87.0 | +3.4 |
| Dallas Wings | 86.6 | 83.6 | +3.0 |
| New York Liberty | 87.8 | 85.2 | +2.6 |
| Washington Mystics | 82.8 | 82.9 | -0.1 |
| Chicago Sky | 87.2 | 89.8 | -2.6 |
| Phoenix Mercury | 83.7 | 87.7 | -4.0 |
| Fire | 86.7 | 91.4 | -4.7 |
| Seattle Storm | 83.1 | 88.2 | -5.1 |
| Los Angeles Sparks | 87.3 | 92.5 | -5.3 |
| Tempo | 87.0 | 93.6 | -6.6 |
| Connecticut Sun | 78.8 | 86.9 | -8.1 |
The 10 games decided by the largest margins.
| Date | Home | Home Score | Away | Away Score | Margin | |
|---|---|---|---|---|---|---|
| 1 | 2026-07-11 | LV | 106 | PHX | 58 | |
| 2 | 2026-08-09 | NY | 111 | LV | 71 | |
| 3 | 2026-08-21 | LA | 88 | ATL | 124 | |
| 4 | 2026-07-23 | IND | 123 | CON | 88 | |
| 5 | 2026-08-13 | CON | 69 | ATL | 104 | |
| 6 | 2026-06-02 | PHX | 77 | MIN | 111 | |
| 7 | 2026-07-13 | LV | 75 | IND | 109 | |
| 8 | 2026-05-09 | LV | 66 | PHX | 99 | |
| 9 | 2026-06-16 | MIN | 107 | POR | 74 | |
| 10 | 2026-06-06 | ATL | 109 | WSH | 77 |
The 10 nail-biters that came down to a single possession.
| Date | Home | Home Score | Away | Away Score | Margin |
|---|---|---|---|---|---|
| 2026-07-17 | DAL | 0 | NY | 0 | 0 |
| 2026-05-10 | MIN | 90 | ATL | 91 | 1 |
| 2026-05-17 | ATL | 84 | LV | 85 | 1 |
| 2026-05-19 | POR | 83 | CON | 82 | 1 |
| 2026-06-12 | WSH | 86 | TOR | 85 | 1 |
| 2026-06-14 | POR | 84 | DAL | 83 | 1 |
| 2026-06-18 | CHI | 95 | NY | 96 | 1 |
| 2026-06-21 | DAL | 93 | CHI | 92 | 1 |
| 2026-06-22 | LA | 98 | NY | 97 | 1 |
| 2026-06-28 | WSH | 124 | POR | 123 | 1 |
Comparing regular season and playoff scoring patterns. The playoff row will populate once the postseason begins.
| Phase | Games | Avg Total | Avg Margin |
|---|---|---|---|
| Regular Season | 293 | 174.1 | 11.1 |
Top 10 games by combined points so far this season.
| Date | Home | Home Score | Away | Away Score | Total | |
|---|---|---|---|---|---|---|
| 1 | 2026-07-26 | COOP | 122 | SPO | 129 | |
| 2 | 2026-06-28 | WSH | 124 | POR | 123 | |
| 3 | 2026-06-23 | SEA | 110 | DAL | 112 | |
| 4 | 2026-06-25 | TOR | 125 | LA | 97 | |
| 5 | 2026-07-29 | LA | 109 | NY | 113 | |
| 6 | 2026-06-11 | IND | 114 | CHI | 106 | |
| 7 | 2026-06-24 | IND | 109 | PHX | 111 | |
| 8 | 2026-06-26 | CHI | 124 | POR | 94 | |
| 9 | 2026-07-17 | IND | 110 | SEA | 107 | |
| 10 | 2026-05-28 | CHI | 104 | TOR | 111 |
Each team's longest consecutive run of wins. Uses window functions and the gaps-and-islands pattern.
| Team | Streak | |
|---|---|---|
| 1 | Minnesota Lynx | |
| 2 | Golden State Valkyries | |
| 3 | New York Liberty | |
| 4 | Washington Mystics | |
| 5 | Las Vegas Aces | |
| 6 | Atlanta Dream | |
| 7 | Dallas Wings | |
| 8 | Indiana Fever | |
| 9 | Chicago Sky | |
| 10 | Fire | |
| 11 | Los Angeles Sparks | |
| 12 | Phoenix Mercury | |
| 13 | Connecticut Sun | |
| 14 | Seattle Storm | |
| 15 | Tempo | |
| 16 | TEAM SPOON |
Number of players in the database per active 2026 franchise. Includes historical players, not just the current roster.
| Team | Players | |
|---|---|---|
| 1 | Minnesota Lynx | |
| 2 | Phoenix Mercury | |
| 3 | Dallas Wings | |
| 4 | Chicago Sky | |
| 5 | Indiana Fever | |
| 6 | New York Liberty | |
| 7 | Atlanta Dream | |
| 8 | Los Angeles Sparks | |
| 9 | Washington Mystics | |
| 10 | Seattle Storm | |
| 11 | Connecticut Sun | |
| 12 | Las Vegas Aces | |
| 13 | Tempo | |
| 14 | Golden State Valkyries | |
| 15 | Fire | |
| 16 | TEAM COOP | |
| 17 | TEAM SPOON |