We don't read what people post. We watch what they follow.
Dondarrion produces representative estimates of public opinion from digital traces, using multilevel regression and post-stratification with a correction for online selection. The statistical machinery is not ours — it is published, peer-reviewed and replicable. What we changed is the input.
The framework we inherited
The estimator comes from Roberto Cerina and Raymond Duch. Their contribution is a way to make representative inference from samples that are cheap, high-frequency and badly unrepresentative — exactly the shape of any sample drawn from a social platform.
Three pieces of it matter here.
- Online selection. People do not land in a social-media sample at random. They select in, and they select in for reasons correlated with what you are trying to measure — which is selection on the dependent variable. The paper formalises this and adds a bias-correction term in the style of King & Zeng to the logistic regression inside MrP.
- Machine feature extraction. A language model reads each account and emits a structured, survey-like record: age band, gender, ethnicity, education, income bracket, vote intention. The paper shows these labels agree with human raters at a workable rate.
- Post-stratification against a census frame. The labelled accounts are mapped onto a stratification frame built from census microdata, and cell estimates are reweighted to the true population marginals. This is the step that turns a biased pile of accounts into an area-level estimate.
Applied to the 2020 US presidential election, the bias-corrected model trained on high-quality survey data scored a bias of 0, RMSE of 0.03 and a correlation of 0.99 on the Republican–Democrat margin. The version trained on AI-labelled social accounts scored RMSE 0.06 against FiveThirtyEight's 0.05 — close to the aggregator, not ahead of it, at somewhere between 500 and 2,500 times lower cost per respondent.
Where we diverge
The published pipeline reads posts. We don't. Three changes, and one in development.
Tweet and post content as the unit of observation, on any platform.
The follow graph of a tracked resident panel, and its movement over time.
1. Posts are the wrong instrument
Two reasons, one about machines and one about people.
The first is automation. Post volume is trivially manufactured, and any measure built on it inherits whatever an adversary decided to publish that week. In an election, that adversary has a motive.
The second is more fundamental, and it would hold even if every account were a real person. Posting is a minority behaviour inside an already unrepresentative population. Pew Research Center's audit of a representative sample of US adult Twitter accounts found that the most prolific 10% of users produced 80% of all tweets. Narrow it to politics and it gets starker: in a year of tracked activity, political tweets were 97% the work of that same top decile. A post-based sample is not a sample of users. It is a census of the loudest tenth of a quarter of the adult population, and no amount of reweighting recovers what the quiet ones think.
Following is near-universal among accounts that exist at all, including accounts that have never posted. It is observable for the silent majority of the platform. That alone makes it a wider instrument than speech.
2. A tracked resident panel, not a keyword scrape
Rather than sweeping up everyone who mentioned a candidate — which selects on engagement, the very thing that biases the sample — we assemble and maintain a panel of accounts we have reason to believe belong to residents of the market we are measuring.
Residence is established two ways, and an account needs to clear at least one:
- Self-declaration. A location in the profile, or a post that places the account in the city.
- Structural evidence. A following pattern only a resident plausibly holds — the local transit authority, the ward councillor, neighbourhood associations, local media mastheads, the school board, the hockey team's beat reporter. Any one of these is weak. The combination is not.
Accounts stay in the panel across waves, which is what makes change measurable rather than inferred from two different samples.
3. The measurement is the graph, and its deltas
We maintain marker sets: accounts whose followers are known, from survey-calibrated cohorts, to lean a particular way. Following a cluster of markers is scored toward that pole — an account following Fox News, Donald Trump and the rest of a flagged conservative cluster reads as Republican-aligned, and probably MAGA-aligned specifically, with a confidence that rises with the number of markers matched and falls when the markers conflict.
The real signal is not the snapshot. It is the edit. Follows and unfollows are timestamped, deliberate, and individually cheap — which makes them a high-frequency read on movement. An account that followed the New York Post and Andrew Cuomo, then starts following Mamdani and drops the Post, has told us something a monthly tracking poll would not catch for another five weeks. Aggregate a few thousand of those edits inside a demographic cell and you have a trend line, not an anecdote.
Two guards on this. A single follow is noise — we score on cluster membership and on sustained change, not on individual edits. And follow behaviour is a proxy for alignment, not a vote: the mapping from graph position to voting intention is estimated against real survey data, and it is re-estimated every cycle.
4. In development: ambient mobility
We are working on incorporating live Google Maps data — place popularity, transit load, commercial footfall by area — as an area-level covariate in the multilevel model. Area-level predictors are exactly what MrP uses to borrow strength across small cells, and mobility carries information about neighbourhood composition and economic conditions that a census refreshed every five years does not. This is not in production and no published estimate currently depends on it.
The pipeline
- Panel construction Candidate accounts are identified and residence-scored. Accounts that fail the residence test are dropped, not downweighted.
- Feature extraction A language model emits a structured demographic record per account. Labels carry a confidence, and low-confidence records are excluded from the cell rather than guessed at.
- Graph observation The follow set of every panel account is captured on a rolling basis, and diffed against the previous capture.
- Alignment scoring Marker-cluster membership and edit history are mapped to a latent alignment, calibrated against survey data from the same market.
- Bias-corrected MrP A multilevel model is fit with the King & Zeng correction for online selection, with area-level predictors and past results as covariates.
- Post-stratification Cell estimates are reweighted to census marginals for the market, producing area-level and slice-level estimates with intervals.
Worked example: Toronto, 2026
Toronto votes for mayor on Monday 26 October 2026, with advance voting from 6 to 11 October. Nominations closed on 21 August. Incumbent Olivia Chow — who won the 2023 by-election triggered by John Tory's resignation — is seeking a first full term, against a field that includes city councillor Brad Bradford and former federal Conservative cabinet minister Chris Alexander, among 53 names on the ballot.
It is a good test case for this method, for an unglamorous reason: municipal races are badly under-polled. Turnout was 29.2% in 2022 on 563,124 ballots cast, the electorate splits across 25 wards, and no commissioner is paying for a phone poll with a usable base in each one. That is precisely the gap a cheap, continuous, ward-level estimator is supposed to fill.
- Election day26 October 2026
- Wards estimated25
- Stratification frame2021 Census of Population
- Panel size—
- Refresh cadence—
- Calibration wave—
We are not publishing vote-share estimates for this race on this page. The dashes above are placeholders for figures we will fill in when the deployment is calibrated against a benchmark wave. Publishing a modelled number for a live election before its error is measured is how this method gets discredited, and we would rather ship late than be the example everybody cites.
Limits
- The correction is imperfect. In the 2020 application, Twitter samples under-represented Republicans by an amount the bias correction did not fully absorb — and that residual showed up whether the labelling was done by machine or by human. Expect a directional lean and measure it rather than assuming it away.
- Coverage degrades as the sample grows. The paper's own finding: interval coverage was worst on the largest AI-labelled sample and best on the smallest survey. More accounts buy you precision, not honesty about your uncertainty.
- Platform users are not the public. They are younger, richer and better educated. Post-stratification corrects the composition; it cannot conjure a cell that has almost no members.
- Follows are sticky. Some people update their graph constantly; some have not touched it since 2019. Measured movement is concentrated in the churners, and we weight for that.
- A shock outruns the graph. When something breaks mid-campaign, opinion moves before the follow edits do. In those windows, a live poll is the better instrument and we will say so.
Data ethics
We work only with data that is publicly visible without authentication. No private accounts, no purchased profiles, no attempt to deanonymise anyone.
Nothing is published or sold at the level of an individual account. The unit of delivery is a demographic cell, and cells below a minimum base are suppressed rather than reported. We do not provide account-level targeting lists, to campaigns or to anyone else — a granular opinion model is a surveillance product if you let it be sold as one, and that is a line we hold rather than a feature we ration.
The ethical case for and against this class of polling has been argued properly, including by one of the authors of the method we build on. We think it is worth reading before you buy anything from us.
References
- Cerina, R. & Duch, R. M. Artificially intelligent opinion polling. Royal Society Open Science, 2026. Preprint arXiv:2309.06029.
- Cerina, R. & Rouméas, É. The democratic ethics of artificially intelligent polling. AI & Society 40(5), 3209–3223, 2025.
- King, G. & Zeng, L. Logistic regression in rare events data. Political Analysis 9(2), 2001.
- Gelman, A. & Little, T. Poststratification into many categories using hierarchical logistic regression. Survey Methodology, 1997.
- Pew Research Center. Sizing Up Twitter Users. April 2019.
- Pew Research Center. National Politics on Twitter. October 2019.
- Pew Research Center. Response rates in telephone surveys have resumed their decline. February 2019.
Questions about the method are the good kind.
Or write to hello@dondarrion.com and ask us something hard.