| Year | Office | Category | Candidates | Frontrunner Confidence |
|---|---|---|---|---|
| Loading competitive races... | ||||
| Donor | Filers | Total $ | Community | Flags |
|---|---|---|---|---|
| Loading... | ||||
| Donor | Total $ | Filers | City |
|---|---|---|---|
| Loading... | |||
| Year | Office | Candidate | Win % | Gap |
|---|---|---|---|---|
| Loading... | ||||
| Year | Office | Candidate | % of P50 | Tier |
|---|---|---|---|---|
| Loading... | ||||
| Year | Office | Candidate | Win % | Pctl | Flag |
|---|---|---|---|---|---|
| Loading... | |||||
| Year | Candidate | Prior | Current | +Δ | Flag |
|---|---|---|---|---|---|
| Loading... | |||||
| Candidate | Total Ask | Prospects | Avg Score |
|---|---|---|---|
| Loading... | |||
| Donor | Occupation | Candidates | Total Ask |
|---|---|---|---|
| Loading... | |||
| Race | Year | Frontrunner | Win % | Trust |
|---|---|---|---|---|
| Loading... | ||||
| Race | Year | Frontrunner | Win % | Trust |
|---|---|---|---|---|
| Loading... | ||||
| Year | Election Type | Severity | Expected | Actual | Reason |
|---|---|---|---|---|---|
| Loading... | |||||
| Year | Office | Candidate | Party | Inc. | Win Probability | Pred. | Actual |
|---|---|---|---|---|---|---|---|
| Enter a candidate name or office to search 17,000+ predictions | |||||||
| Donor | Type | Total $ | Contribs | Filers | City | Employer | Active |
|---|---|---|---|---|---|---|---|
| Search 2.3M+ resolved donors by name | |||||||
| Year | General | R Primary | D Primary | R Runoff | D Runoff |
|---|---|---|---|---|---|
| Loading coverage data... | |||||
| Year | Candidates | Races | Fundraising % |
|---|---|---|---|
| Loading... | |||
| Candidate | Office | District | Party | Contributions | Total Raised |
|---|
| Name | Total Spent | Years |
|---|
| Subject | Reports |
|---|
| Committee | Total Spent | # Expenditures | Candidates |
|---|
| Name | City | Section | Assets | Revenue |
|---|
| Donor | City | Total | Contributions |
|---|
| Recipient | City | Total | Donors |
|---|
| Community | Party | Office Focus | Filers | Donors | Total $ |
|---|---|---|---|---|---|
| Loading communities... | |||||
| Donor | City | Employer | Filers | Total $ | Community | Flags | Entropy |
|---|---|---|---|---|---|---|---|
| Loading power brokers... | |||||||
| Regime | Races | Accuracy | Brier | Calibration |
|---|---|---|---|---|
| Loading... | ||||
| Confidence Band | Predictions | Accuracy |
|---|---|---|
| Loading... | ||
| Year | Races | Acc. | Brier | ECE | Trust |
|---|---|---|---|---|---|
| Loading... | |||||
Walk-Forward Protocol
Every election year is predicted using a model trained exclusively on data from prior years. The model never sees future outcomes, mimicking real forecasting conditions. This is the gold standard for evaluating political prediction models.
Brier Score
The mean squared difference between predicted probabilities and actual outcomes. Range 0–1, where 0 is perfect. A Brier score below 0.20 indicates strong probabilistic accuracy. Our score of ~0.13 means predictions are well-calibrated.
Expected Calibration Error (ECE)
Measures whether predicted probabilities match observed frequencies. When we say “70% chance,” does that candidate win ~70% of the time? ECE below 0.03 = “Strong,” 0.03–0.08 = “Moderate,” above 0.08 = “Low Confidence.”
Regime Splitting
Texas elections vary widely: a judicial general (party-line voting) differs from a legislative primary (fundraising-driven). We train separate models for ~10 regimes to capture these structural differences. Each regime has its own trust level.
Ensemble Weighting
We blend 4 models (GBM, logistic, regime-split, ensemble) using inverse-ECE weighting: better-calibrated models get more influence. The promoted model must pass 5 quality gates before it replaces the prior version.
Quality Gates
Before promotion, every model must: (1) not degrade calibration, (2) not collapse any regime’s accuracy by >5pp, (3) beat the “pick highest fundraiser” baseline, (4) beat or match the prior model, (5) pass all 10 temporal leakage tests.
| VENDOR | CLIENTS | REVENUE | SERVICES | ACTIVE | |
|---|---|---|---|---|---|
| Search 580K+ vendor relationships | |||||
| VENDOR | CLIENTS | REVENUE | ACTIVE |
|---|---|---|---|
| Select filters and click Load Rankings | |||
| Client | Product | Cadence | Last Delivery | Next Due | Status | Actions |
|---|---|---|---|---|---|---|
| Click Refresh to load calendar | ||||||
| Product | Tier | Description | Price Range | Unit | Cadence |
|---|---|---|---|---|---|
| Loading... | |||||
| Score | Race | Year | Type | Raised | Bench P50 | Gap % | Win % | Actions |
|---|---|---|---|---|---|---|---|---|
| Click Search to load opportunities | ||||||||
| Module | Description | Status |
|---|---|---|
| 01 | TEC Data Download | Complete |
| 02 | Silver Layer & Canonical Schema | Complete |
| 03 | Office Ontology & Classification | Complete |
| 04 | Candidate-Filer Linkage v2 | Complete |
| 05 | Donor Entity Resolution | Complete |
| 06 | Election Coverage Completion | Scoped |
| 07 | Dashboard & Visualization | Complete |
| 08 | Candidate Prediction Model | Complete |
| 09-19 | Remaining modules | Planned |
Election data gap: 1996–2000 results missing from SOS scraper
Identity resolution: Name-prefix matching at ~60–70% match rate
Donor deduplication: 5,624 merged clusters with varying confidence
Model regimes: 11 regimes — judicial gen (pre/post-2020), judicial primary/runoff, legislative gen/primary/runoff, statewide, D/R primary, other
Contribution records: 34.8M rows from TEC, spanning 1990–2026
| Office / Group | Type | Seat | P25 | Median | P75 | Winner Med. | Races | Sample |
|---|---|---|---|---|---|---|---|---|
| Select an office family and click Apply | ||||||||
| Year | Office | Candidate | Party | Raised | Bench P50 | % of P50 | Tier | Gap to Winner | Sample |
|---|---|---|---|---|---|---|---|---|---|
| Click Apply to load candidate benchmark data | |||||||||