What ForeScorps does
ForeScorps produces a full-season forecast for every Drum Corps International contest – a projected score and placement for each corps in each class – from the start of the season, updated every time new scores post. Forecasts are model estimates with an 80% range, not guarantees.
How the models evolve
ForeScorps' models keep learning on two different clocks. Every day, each model automatically retrains and re-forecasts against the newest official scores – no human step, and no change to how the model works. Larger changes – a new model, a different algorithm, a materially different approach – are handled differently: they're built and tested against every historical season first, reviewed by a human expert before anything is published, and given their own version number and launch date, so it's always clear which model produced a given number and when it changed.
Version 4 – final-week calibrated ensemble · effective August 1, 2026
Why it changed. Once shows moved into the final stretch of the regular season, forecasts ran low: measured against actuals, the model under-forecast by roughly 1.35 points overall in the final week, worse for World Class corps sitting mid-field (roughly 2.45 points) than for the leaders. The cause was a static pre-season anchor that kept pulling projections back toward a curve fit on the whole season, at exactly the point in the season where recent form should dominate.
- Trailing bias correction. A recency-weighted, class-and-placement-band correction learns from each corps’ own recent forecast errors (a 5-day trailing window, empirical-Bayes shrunk toward its class) and adjusts the point forecast going forward. Walk-forward gated: forecast error improved in every window tested, including the era it was never tuned on.
- Season-scaled anchor. The pre-season rank-curve anchor is now scaled by how far into the season a show falls, instead of a fixed weight throughout, so late-season projections lean more on the corps’ own current-season trajectory and less on where the historical curve says a corps in that position “should” be.
- Championship-week increment model. A dedicated model learns the typical Prelims → Semifinals → Finals score increment for World Class corps in championship week, replacing a one-size-fits-all ramp with placement-specific increments. Backtesting found no comparable placement gradient for Open Class, so this component is not used there (see “tested and rejected” below).
- Step-model ensemble member. A second, independently-built nowcasting model is blended into the World Class and Open Class forecasts, weighted per round by how well each member has predicted that specific round historically (weights fit leave-one-season-out, with zero information from the current season).
- Recalibrated intervals. The 80% confidence bands and win-probability simulation are refit on the residuals of the combined Version 4 stack, and the Finals-card simulation now uses the same calibrated uncertainty as the rest of the site.
Tested and rejected. Three candidate improvements were built, backtested and not adopted, because they failed the same out-of-sample gates every ForeScorps model change is held to: the championship-week increment model for Open Class (no placement gradient in its Prelims→Finals delta – the World Class pattern didn’t transfer); the step-model member outside championship week (worse leave-one-season-out error in both classes than the existing approach); and a schedule that varied ensemble weights by days-since-last-show (won in-sample, lost out-of-sample – the same lesson an earlier mid-season tuning pass had already taught). Negative results are documented and re-visitable.
Baseline. Version 4’s corrections are all walk-forward, triggered by in-season observations – there are none at the pre-season snapshot, so Version 4’s own retrospective pre-season baseline (the Version 4 model run as of June 26, 2026, with no 2026 scores) reproduces Version 3’s baseline exactly. Version 1’s, Version 2’s and Version 3’s baselines are frozen and untouched. As always, forecast-accuracy metrics are measured only against the forecast that was live at contest time, under the version active then.
Version 3 – recency-calibrated season model · effective July 19, 2026
Why it changed. Through mid-July the per-show forecasts were compressed: the top of the World Class field kept beating its forecast (by about a point at the biggest shows, all eight San Antonio leaders came in above projection) while the lower tier ran slightly under. The root cause was measured directly: the historical improvement curves the model subtracts were built with every season since 2013 weighted equally, but the sport's seasonal ramp has flattened in the modern era – recent seasons gain noticeably less from mid-July to Finals than the 2013–2019 era did. An equally-weighted curve was therefore too steep exactly in the window the season had reached.
- Recency-weighted improvement curves. Each historical season's weight now halves every 1.5 seasons of age, so the curves reflect the modern scoring era. Selected by leave-one-season-out backtest: near-term forecast error improved a further ~2%, systematic per-tier bias fell inside ±0.25 points everywhere, and championship-forecast accuracy stayed within its gate.
- First-show floor restored. A corps' first show of the season is anchored toward its prior-season minimum – the validated rule from Version 1 that had been lost for classes served by the season model. Openers for corps yet to debut are now forecasted realistically instead of at their prior-year championship level.
- Honest confidence bands. The 80% bands had been covering ~98% of World Class results – honest but far too cautious, and it diluted win probabilities. Bands are now calibrated per class against walk-forward accuracy (World Class bands narrow substantially; All-Age Open bands widen – the data said its uncertainty was understated). Point forecasts are unchanged by this step.
Baseline. The new improvement curves change what the model would have expected before the season, so Version 3 gets its own retrospective pre-season baseline (the Version 3 model run as of June 26, 2026, with no 2026 scores), drawn as its own series on trajectory charts. Version 1's and Version 2's baselines are frozen and untouched. As always, forecast-accuracy metrics are measured only against the forecast that was live at contest time, under the version active then.
Version 2.1 – in-season update · effective July 12, 2026
Why it changed. Version 2's forecasts were slow to reward recent form: a corps outperforming its early-season shows saw only a muted move in its projections, because the model weighted every show equally and capped how much in-season evidence could outweigh its pre-season expectation. Version 2.1 is the same Phase 3 model family – same structure, same priors, same pre-season baseline – with its in-season update dynamics rebuilt. Every change below was gated the same way as always: walk-forward backtests across 11 historical seasons, adopted only where it beat the shipped model out-of-sample.
What changed:
- Recency weighting. A corps’ latest shows now dominate its estimate: each show’s weight halves every 5 days of age. Near-term forecast error (predicting each event from everything before it) improved 18% in backtests (average error 1.23 → 1.01 points), at a small cost (~0.05) at the longest horizons.
- Smarter historical anchor. The World Class championship-week calibration toward the historical placement-score curve now adapts through the season: early on the model's own score estimate carries most of the weight, and as its ranking sharpens (rank accuracy rises from ~0.85 to ~0.96), the historical rank-to-score curve takes on more – the weighting the backtests actually favor at every point of the season, improving late-season championship projections by roughly 15%.
- Early-season AI member. A machine-learning model (TabPFN v2, a transformer for tabular data) joins the World Class championship ensemble in the early season only (roughly the first three weeks), where held-out backtests show it genuinely helps; its weight anneals to zero as real trajectories accumulate. Ensemble error improved from 1.09 to 1.07 in leave-one-season-out testing.
- All-Age Open Class moved to Version 2.1. The re-run class gate flipped: with recency weighting in place, the season model now beats Version 1 for All-Age Open on every metric – near-term error 3.2 vs 4.0, championship error 4.0 vs 7.0, rank accuracy 0.69 vs 0.18 – so All-Age Open forecasts now come from Version 2.1. All-Age World Class stays on Version 1, which is still its more accurate near-term forecaster.
Tested and rejected. Two candidate improvements were built, backtested and not adopted, because they failed the same out-of-sample gates: a judge-panel severity adjustment (a real but weak signal – it helped championship projections slightly but hurt near-term accuracy) and caption-level momentum (GE/Visual/Music trajectories added essentially no information beyond the total score). Negative results are documented and re-visitable.
Baseline. Version 2.1 keeps Version 2’s frozen retrospective pre-season baseline – the two are identical by construction before any 2026 scores exist, so “movement since baseline” is unaffected. All-Age Open Class, new to the Version 2 family, received its own retrospective pre-season baseline computed the standard way (the model run as of June 26, 2026, with no 2026 scores), established July 12, 2026.
Version 2 – season model (World Class & Open Class) · re-born on the 4th of July
Why it changed. Version 1's Finals-race forecasts for the World Class field were running low: backtesting showed a residual bias of roughly 2–4 points at the top of the field, and the live 2026 projected leader sat near 94.9 – well under the 97.65–99.65 range every World Class winner has actually scored since 2013. Version 2 was built to fix this specifically for the tightest, highest-scrutiny part of the season: the race for the World Class Finals win.
Preliminary improvements found (backtested across 11 historical seasons, Phase 1 → Phase 2):
- World Class Finals-score error: 2.95 → 1.43 points, overall.
- Ranking accuracy (Spearman correlation): 0.846 → 0.901.
- Winning-score error: roughly 2.2 → 1.2 points.
- Share of actual season winners falling inside the model's predicted band: 57% → 80%.
- Championship-week trajectory continuity: 97.5% of backtested corps-seasons showed an artificial Semifinals→Finals score jump before the fix; 0% under Version 2.
- Live effect on the 2026 season: the projected leader moved from 94.9 back into the historical winning range (currently around 98).
The model. Version 2 is a hierarchical Bayesian season model. For every corps it estimates a latent championship-level score by back-projecting each show through the historical season ramp (how much corps in each tier typically improve per day, learned from 13 seasons), blended with a prior built from the corps’ prior-year result. A forecast for any event is then that latent estimate minus the remaining ramp – one continuous function of the season clock, which is why trajectories are smooth from the season opener through Prelims, Semifinals and Finals. For the World Class championship week, projected finalists get an additional calibration toward the historical placement-score curve (1st place has scored 98.5 ± 0.57 across 11 seasons), which keeps the projected winning score honest. Win probabilities, Finals-qualification odds and 80% ranges come from a joint Monte-Carlo simulation of the field. Every component is fit walk-forward: only data available before the forecast date is used.
Scope. Version 2 produced the World Class and Open Class forecasts from July 4, 2026, and was superseded by Version 2.1 (above) on July 12, 2026, which also took over All-Age Open Class. All-Age World Class and All-Age A Class remain on Version 1, which is still the more accurate near-term forecaster for them. The per-class assignment is explained below and re-evaluated as the season’s data accumulates.
Its own baseline. Version 2’s movement figures – on corps pages and in the rankings – are measured against its retrospective pre-season baseline, described below: the Version 2 model run as of the day before the first show, with no 2026 scores. “Movement since baseline” therefore means the same thing for both versions: change relative to what the model expected before the season began.
Versioned pre-season baselines on trajectory charts. Every model version also gets its own pre-season baseline on the corps trajectory charts. Version 1’s is the original pre-season forecast published before the first show; it is frozen and never revised. When a newer model version goes live mid-season, a retrospective pre-season baseline is computed by running the new model as of the day before the first show, using only information available at that point (prior-year results and historical season ramps – no 2026 scores). Each version’s baseline is drawn in its own shade, and a vertical bar marks the date each version went live. Retrospective baselines exist for like-for-like movement tracking only: forecast-accuracy metrics are always measured against the forecast that was live at the time of each contest, under the model version active then.
One model version does not fit every class. Each class is served by whichever model version forecasts it best in walk-forward backtests, and the assignment is re-evaluated as the season’s data accumulates. World Class, Open Class and All-Age Open Class run on Version 4 (effective August 1, 2026), the final-week calibrated ensemble – the recency-calibrated Version 3 update it builds on already cut World Class projected-score error by roughly a fifth versus Version 2.1 and largely eliminated the bias against top-tier corps; Version 4 targets the final-week under-forecast that remained. All-Age World Class and All-Age A Class remain on Version 1: this is one model serving every class except one documented exception, re-tested at each version change and kept only because Version 1 is still demonstrably the more accurate forecaster there – a 2026 re-run of the newer model against All-Age World Class results lost on every metric measured. Their trajectory charts show only the Version 1 pre-season baseline. An All-Age corps keeps one forecast across all of its shows regardless of how an individual event groups it: if a show lists the corps under a different All-Age class, the forecast follows the corps and the published grouping is used for placements. Class assignments continue to be revisited as more 2026 results come in.
Known limitations specific to Version 2: probability of qualifying for Finals is computed among the 20 tracked contenders, not the full World Class field, so it's an upper bound for corps on the bubble; and its 80% ranges run slightly conservative at longer horizons (about 88–99% observed coverage vs. an 80% target).
Version 1 – season model · launched July 2, 2026
Version 1 is the original model. It now powers the All-Age forecasts and serves as the fallback for anything Version 2 does not cover; it also produced every forecast on the site before Version 2 took over World and Open Class on July 4, 2026. Two independent models are combined into an ensemble using statistical forecasting algorithms and Artificial Intelligence/Machine Learning:
- Model A – statistical. A state-space (Kalman) trajectory filter that tracks each corps’ level and improvement through the season, plus a chronological Elo and prior-season anchor for corps with no results yet. Once a corps has posted a score, its near-term forecast is recency-weighted toward that observed level – about 80% weight for contests within a few days of the last result, decaying to a 50/50 blend with the seasonal model over roughly three weeks – so a fresh result is not pulled down by the still-ramping early-season baseline.
- Model B – artificial intelligence/machine learning. Gradient-boosted trees over engineered features (level and trajectory, Elo, field strength, event tier, class, and a judge-panel bias term when the panel is known).
- Walk-forward evaluation. Every model is evaluated walk-forward: trained only on the past, tested on the future, so reported accuracy reflects real out-of-sample performance.
Confidence levels & placement
- Each forecast carries an 80% range that widens with the forecast horizon (months out = more uncertainty).
- Placement probabilities – win, top-3, expected rank – come from a Monte-Carlo simulation of each event within its class.
Data
Every score is the exact officially published value. World and Open Class scores come from DCI, with historical scores dating back to 2013. All-Age historical scores date back to 2018 from published DCA results. Judge panel names are shown per caption where DCI publishes them.
Rain-outs, cancellations & exhibitions
Some listed contests do not produce scores – a show may be rained out, cancelled, or held as a non-adjudicated exhibition. These are marked on the map and event pages with a distinct status pill instead of a forecast or result, and corps that performed are still listed on their itinerary with that status rather than a score. Status is set only from official sources (primarily dci.org); other sources are used solely to confirm whether a show was scored, never to supply a score.
Known limitations
These apply to Version 1, which powers the All-Age forecasts (and remains the fallback for anything Version 2 does not cover). Version 2's own limitations are noted at the end of its section above.
- Season openers are anchored to a corps’ prior-season floor, softened for programs on a multi-year decline. Because a corps can collapse (rebuild/age-out) further than it can surge at its opener, the cold-start forecast carries a wider downside band so sharp early drops stay within the interval rather than reading as confident misses.
- Cold-start ranking (before any results) is the hardest regime; forecasts sharpen quickly once a corps performs.
- All-Age is calibrated to DCA/DCI score history, but the number of scored events is smaller than World and Open Classes and therefore forecasts have a higher variance.
Updates
Each model version keeps its own frozen baseline, set once and never changed, so movement is always measured against a fixed starting point rather than a moving target. Version 1's baseline is the season-start forecast exactly as originally published at launch (July 1, 2026). Version 2 and Version 3 each carry a retrospective pre-season baseline – that model run at the June 26, 2026 information set, with no 2026 scores – so their movement figures also start from a true pre-season expectation. Each corps' trend chart shows them side by side: the V1, V2, V3 and V4 pre-season baselines, the current updating forecast, and actual scores. The live forecast re-runs as each new score posts, and every contest is scored on the accuracy page against the forecast that was live at contest time. Minor in-family updates (like Version 2.1) that change only in-season dynamics keep their parent version's baseline, because the pre-season run is identical either way. When a future version launches, it will get its own frozen baseline the same way, and earlier versions' baselines and comparisons stay exactly as they were.
Frequently asked questions
How are ForeScorps forecasts made?
Each forecast is an ensemble of two models: a statistical state-space model that tracks every corps’ level and improvement through the season, and an artificial-intelligence/machine-learning model built on gradient-boosted trees. Both are trained on historical Drum Corps International and Drum Corps Associates results and combined into a single projection.
Where do the scores come from?
All official scores shown on ForeScorps are the exact values published by dci.org and dcacorps.org, unmodified. The site refreshes daily as new recaps post, and every forecast is re-run against the latest results.
How accurate are the forecasts?
Accuracy is measured walk-forward: models are trained only on the past and tested on contests they have not seen. The Accuracy page shows live current-season metrics – average error, winner hit rate, and confidence-band coverage – measured against official results as the season unfolds.
What does the 80% range mean?
Every projected score carries an 80% confidence range: the actual score is expected to land inside that band about eight times in ten. Bands are wider where less is known, such as season openers and All-Age corps with fewer scored events.
Can the forecasts be wrong?
Yes. These are probabilistic estimates provided for entertainment and information only, not predictions of fact. Real outcomes will differ from what is shown, especially early in the season.
Is ForeScorps affiliated with DCI or DCA?
No. ForeScorps is an independent, unofficial project by B-Sharp AI Pte. Ltd. and is not affiliated with, endorsed by, or sponsored by Drum Corps International, Drum Corps Associates, or any drum corps.
What's the difference between the model versions?
Version 1 (launched July 2, 2026) is the original statistical + AI/ML ensemble. Version 2 (effective July 4, 2026) is a hierarchical Bayesian model of the whole season. Version 2.1 (effective July 12, 2026) rebuilt its in-season dynamics – recent shows count for more, and an AI ensemble member helps in the early weeks. Version 3 (effective July 19, 2026) recalibrates the historical improvement curves toward the modern scoring era, restores a validated floor for each corps’ first show of the season, and tightens the 80% confidence bands to match measured accuracy. Version 4 (effective August 1, 2026) adds a trailing bias correction for the final stretch of the season, a season-scaled pre-season anchor, a championship-week increment model, and a step-model ensemble member, plus recalibrated intervals. Version 4 produces the World Class, Open Class and All-Age Open Class forecasts; All-Age World and A Class remain on Version 1 – one model, one documented exception, re-tested at each version change and kept only because it is still demonstrably the more accurate forecaster there. Each class is served by whichever version forecasts it best, re-evaluated as the season’s data accumulates.