Synthetic population
U.S. residents are seeded from Census ACS marginals and state election anchors. Country records use World Bank, OWID, UNDP, and other named public sources. Weighted personas compress that substrate; they are not real people.
Method and data
The reliable way to read Pheme is to trace each result from its public inputs through the model version to its validation and limitations.
U.S. residents are seeded from Census ACS marginals and state election anchors. Country records use World Bank, OWID, UNDP, and other named public sources. Weighted personas compress that substrate; they are not real people.
Eligible Ask requests use bounded provider-assisted persona reasoning. Cached semantic answers can be reused. A near-complete partial run excludes missing answers and reports weighted coverage; if providers, budgets, or deadlines leave coverage below the publication threshold, Pheme publishes no percentage. It never substitutes a demographic or hash estimate for an arbitrary question.
The canonical engine combines scenario type, origin, distance, demographics, economic resilience, and deterministic reaction weights. The same inputs, engine version, and seed produce the same result. This deterministic scenario engine is distinct from Ask’s semantic reasoning boundary.
Committed benchmarks omit the observed answer from request prompts, then report direction, absolute error, average error, and worst miss. This does not prevent training-data contamination, estimate repeat-run dispersion, or make the exercise a poll. Electoral fidelity only checks reproduction of an input anchor.
Every workspace should expose source, unit, data date, retrieval time, update cadence, table, and download. Cached or fallback data must be labeled with its timestamp; missing provenance is a product limitation, not permission to infer it.
Representative compression loses detail. Sparse country data can flatten differences. Text matching can misclassify a question. Provider output and citations can be wrong. Missing provider answers can bias a partial result even when coverage is high, so coverage is shown and no result is published below 90%. Hypothetical outputs should not be presented as observed intent.
The editable engine is pheme-backend/lib/engine.js; geography begins in data/*.csv; the standalone artifact begins in app/pheme.template.jsx. Generated copies are checked by npm run verify.