DBS Global Explorer

429 teams across 50 leagues in 36 countries · threshold round1 ≥ 5 · post-window 20 · generated 2026-11-12 16:03:12
Or browse: → →
Live round2 — in progress

Teams whose last closed round1 reached the threshold, so the run they are on now is the follow-up. trigger is that round1's length and since its closing draw — where this run started; a round2 has no end date until it is closed by a draw. vs own is the share of the team's own closed round2s shorter than the current run; vs all is the share of every closed round2 from the same trigger length that ran at least this long (hover for the sample size and basis).

Live round1 — building

Teams on a drawless run that has not yet reached the threshold-triggered round2 phase. vs own is the share of the team's own closed round1s shorter than the current run; vs all the share of every closed round1 in the pool that ran at least this long. Teams whose most recent match was a draw are not live and are excluded.

Notable round1 streaks — all time

Longest drawless streaks across every team. Live runs are tagged open and are still climbing.

Notable round2 streaks — all time

Longest follow-up runs after a qualifying round1, anchored by the trigger that opened them.

Pipeline & integrity

From src/project_status.py, the authoritative reporter (python src/dbs.py a1 for the full text report). These counts are variant-independent.

Coverage
Click a histogram bar to expand the matches composing each streak of that length (in the aggregate view, click a bar and then a team badge).
Click a tile to expand the R1 → R2 pairs behind it, match by match (in the aggregate view, click a tile and then a team badge).

For each closed round1 streak with L ≥ threshold, counts draws in the next N matches after the closing draw (N is fixed at build time per team based on their post_window_max).

Round1 length distribution with cutoffs for p95 / p99 / tukey15 / tukey3. Cutoffs computed server-side from the team's own R1 lengths.

A chain is a sequence of consecutive round2 entries where each successor's triggered_by equals the previous entry's length (a round2 that reached threshold re-enters as the next round1). Chains of length ≥ 2. Computed from canonical JSON, so the set differs from the curated chain_analyzer_report.txt.

Top chains

Decomposition of each drawless streak into pure-W and pure-L sub-runs (within-streak) plus pure-D runs (between streaks). Dotted right-axis lines show, per length, the share of pure-W (or pure-L) sub-runs whose terminator was the streak's closing draw vs an intra-streak transition; lengths with fewer than 3 resolved runs are omitted. Dashed vertical marker (per-team only) flags the team's current open pure-run.

Top 25 longest round1 streaks pooled across all teams in the current team's league (or, for the aggregate view, the longest streaks across every league). Open tails are tagged open — if the team is mid-streak that entry is still climbing. Click a column header to sort.

Competitive matches only — friendlies excluded (their venues are unreliable). delta_pp = home_rate − away_rate (percentage points). Source: per-team _draw_analysis_*.txt. Independent of the Competition and Season policy selectors.

All firing teams (sortable)
Signal legend & scope
  • magnet draw-magnet on extended streak (3 baselines agree + current_tail ≥ max(4, team p75)).
  • z-alert drawless-streak z ≥ threshold vs global round1 pool.
  • r2-imminent last closed round1 ≥ threshold and matches-since-close ≤ recency_k.
  • p90 tukey-inner tukey-outer current open tail vs team's own round1 distribution.

Alerts are computed by src/draw_magnets.py on the competitive_only / keep variant only — independent of the Competition and Season policy selectors above.

Draws per matchday
Draw rate by season
Left: draw rate with its 95% interval; the dashed line is the closed-season rate. Right: each scoreline's share of all matches, so a bar's height is the draw rate.
Draw Temperature

Cold means fewer draws than usual. vs own compares the current season with the league's closed seasons; the current season is only part-played, so early numbers move a lot.

Outside band: the closed-season rate falls outside the current season's own 95% interval.

Teams

League rate is blank for leagues not yet backfilled. Live R1 follows the Competition and Season policy selectors above.

Backtest views ignore the Competition and Season policy selectors, except Q2, which takes its match filter (all matches or competitive only) from the Competition selector; Q2 is not available for League only yet. Q1 uses league matches only, Q0 all matches.