Estimates
Fielding 300 interviews in each of 543 seats is expensive and still fragile. Multilevel regression with post-stratification does better: fit a model of vote choice across the whole national sample, then re-weight its predictions onto each constituency's own demographic composition. A seat with 74 interviews borrows strength from the 400 seats that resemble it. This is how a national broadcaster gets a seat map on a Tuesday instead of a state map in three weeks, and the post-stratification frame it needs is months of work that a rival cannot buy.
The second half is why 2024 broke. Vote share estimates were not badly off; seat forecasts were, because seat-level errors were treated as independent. They are not. If a poll is off two points nationally it is off two points nearly everywhere at once and hundreds of marginals flip together. Adding a shared swing term widens the interval roughly fourfold and, critically, contains the truth.
Which forces a presentational change. A broadcaster wants "NDA 361". The defensible output is a probability of a majority. Whether he can sell that to a television partner is the real commercial question on this screen.
Errors cancel across 543 seats, the distribution collapses, and the model reports a tight range with high confidence. 80% interval ±12 seats.
A shared swing term drawn per simulation, plus regional terms, on top of seat noise. 80% interval ±48 seats, and the outcome sits inside it.
| Constituency | State | n | Raw | Pooled | Shrinkage | 80% interval | Call |
|---|---|---|---|---|---|---|---|
| Baramati | Maharashtra | 412 | +8.1 | +7.4 | 0.7 | +2.9 to +11.8 | Callable |
| Wayanad | Kerala | 388 | +21.4 | +20.6 | 0.8 | +15.9 to +25.2 | Callable |
| Kanniyakumari | Tamil Nadu | 96 | +2.1 | +4.9 | 2.8 | −2.4 to +12.1 | Too close |
| Chandni Chowk | Delhi | 241 | +11.8 | +10.9 | 0.9 | +5.1 to +16.6 | Callable |
| Dhubri | Assam | 74 | −14.2 | −9.6 | 4.6 | −19.8 to +0.4 | Too close |
| Ghatal | West Bengal | 163 | +3.4 | +1.8 | 1.6 | −4.9 to +8.4 | Too close |
| Bastar | Chhattisgarh | 88 | +6.9 | +3.2 | 3.7 | −5.1 to +11.4 | Too close |
| Kalaburagi | Karnataka | 204 | −4.1 | −3.3 | 0.8 | −9.6 to +3.0 | Too close |
| Nagaon | Assam | 61 | +1.2 | +5.8 | 4.6 | −3.7 to +15.2 | Under quota |
| Jaunpur | Uttar Pradesh | 527 | +9.6 | +9.4 | 0.2 | +5.4 to +13.4 | Callable |
Shrinkage is large where n is small and near nil where n is deep, which is exactly the behaviour you want. Leads are expressed as a margin between the top two options in this demonstration build.