Methodology

This site should show where information comes from, what is known, what is uncertain, and what happens when something needs correction.

Source priority

Official sources first, secondary sources labeled.

Which sources are official

Official sources include Congress.gov (Library of Congress), govinfo (Government Publishing Office), the Federal Register, the FEC, the Census Bureau, the National Archives, USA.gov, and state or local government websites. These are the primary records the site relies on for factual claims.

Which sources are secondary

Secondary sources include OpenSecrets, FollowTheMoney, Ballotpedia, and Vote Smart. These can add useful context, but they are not official government records. The site labels them clearly and does not treat them as authoritative for bill status, legal text, or official government action.

How sources are chosen

The MVP prioritizes free, official, public data sources. No paid data feeds are required. Sources are evaluated for coverage, reliability, access method, authentication needs, terms of use, and refresh frequency before being added to the source library.

Source library transparency

Every source listed on the source library page shows its owner, coverage, access method, authentication requirements, constraints, terms, reliability notes, and recommended use. Status labels (MVP, Phase 2+, Legal review) make clear which sources are production-ready and which are not.

Data retrieval

How data is retrieved and refreshed.

Federal bill metadata

Federal bill search calls the Congress.gov API server-side through a Netlify Function. The function normalizes bill numbers, Congress.gov URLs, and topic queries into structured search objects. Results include title, bill type, number, congress, sponsor, latest action, status, official URL, source owner, retrieved timestamp, and last-checked timestamp.

Official bill text

The site attempts to retrieve official bill text and package metadata from govinfo when a GovInfo API key is configured. If govinfo data is unavailable, the source packet records a govinfo_unavailable warning so readers know the official text was not retrieved.

State bill metadata

State bill search calls the Open States API server-side through a separate Netlify Function. State queries normalize state bill numbers, official state legislature URLs, and topic searches. Results include the same trust metadata as federal results: source owner, retrieved timestamp, last-checked timestamp, and freshness status.

Refresh expectations

Active federal bill metadata should refresh at least daily in production. The MVP does not yet implement scheduled refresh jobs, but the cache contract is designed to support daily or on-demand refresh. Source packets and explanations are cached by deterministic keys (packet hash, prompt version, model version) so repeated lookups can reuse cached data without re-calling upstream APIs.

AI explanation

How bill explanations are generated.

Source packet construction

Before any AI generation happens, the server builds a source packet from Congress.gov metadata and govinfo package data. The packet includes the bill identity, official URLs, retrieval timestamps, a packet hash, and any missing-source warnings. The packet is the bounded context the AI model is allowed to use.

AI generation with guardrails

The explainer sends the source packet to an OpenAI-compatible API with a system prompt that enforces neutral, source-grounded output. The model is instructed to return strict JSON with required sections: TLDR, what the bill does, who is affected, what changes, supporter arguments, critic arguments, knowns, uncertainties, status, questions, and citations.

Citation validation

After the model returns, the server validates every citation against the source packet. Citations that do not match the packet's official URL, packet ID, or package ID are rejected. If unsupported citations are found, the response is marked as blocked and the invalid citations are surfaced to the reader.

Refusal and degraded states

If no source packet can be built (missing API key, upstream failure, or no matching bill), the explainer refuses to generate. If the source packet exists but the AI provider is unavailable, the explainer returns a partial response using the source packet directly, with visible limits. The site never generates an explanation that sounds complete when the source context is missing or too thin.

Citations

How citations are attached and validated.

Citation sources

Citations may point to the source packet's official URL (Congress.gov bill page), the packet ID, or the govinfo package ID. The validator checks that every citation URL or ID already exists in the packet before accepting it.

What happens when citations fail

If the AI model returns citations not present in the source packet, the response is marked as blocked. The invalid citations are listed in the response so the reader can see what was rejected. The site does not silently upgrade unsupported claims to trusted citations.

Uncertainty

How the site handles uncertainty.

Visible uncertainty

Every explanation includes a "What is known" section and a "What is uncertain" section. The model is instructed to separate verifiable facts from unknowns, pending votes, agency discretion, fiscal unknowns, and data gaps.

Source freshness labels

Data-driven pages show source owner, retrieval timestamp, last-checked timestamp, and a freshness status (current, needs-refresh, incomplete, unavailable). Missing or stale data produces an explicit degraded state, not a fake confident answer.

Nonpartisanship

How nonpartisanship is reviewed.

Tone rules

The site avoids party names, candidate endorsements, ideological framing, and "dunking" tone. Misconceptions are corrected using "common confusion" framing, not confrontational myth-busting. The AI system prompt enforces neutral, source-grounded language.

Supporter and critic arguments

When public record supports both sides, the explanation includes attributable supporter and critic arguments. If sourced arguments are not available for one side, the explanation says so explicitly rather than inventing a false balance.

Corrections

How users can report errors.

Reporting path

Every data-driven page and the explainer surface include a link to the corrections page. Reports capture page URL, error type, description, and optional contact email. The system stores only minimal metadata (boolean flags for presence of description and email) and does not retain raw personal data beyond what is needed for review.

What review looks like

Reports should be reviewed as product trust work. That can mean checking a source link, clarifying wording, tightening how uncertainty is shown, or flagging an AI explanation issue. The current MVP returns a receipt with a request ID; a full public correction ledger is a future-phase goal.

Coverage limits

What data is not covered.

No state legislation beyond Open States

State bill search relies on the Open States API. Coverage depends on scraper availability and state site changes. Some states may lag or have incomplete data. The site does not scrape local government sites at scale.

No address-level representative lookup

The MVP does not provide address-to-representative lookup. Location features remain educational and location-light. A future phase may add geocoding with strong privacy minimization, but v1 does not store raw addresses.

No local government data ingestion

The site does not ingest local government agendas, ordinances, budgets, or meeting records. Local government context is educational and link-based only.

No campaign finance data integration

The money-in-politics page is educational and link-based. The site does not ingest FEC, OpenSecrets, or FollowTheMoney data in the MVP. Campaign finance integration requires legal review of contributor data use restrictions.

No Federal Register or Treasury Fiscal Data integration

Both are listed as MVP-supporting sources in the product spec, but neither has been integrated into a page or function yet. Federal Register context for bill-to-rulemaking relationships and Treasury fiscal data for debt/revenue education are future integration targets.

No real-time vote or amendment tracking

The site retrieves bill metadata and latest actions from Congress.gov, but it does not provide real-time vote tracking, amendment text, or committee hearing transcripts. Readers should check Congress.gov directly for real-time legislative activity.

Location data

How location data is handled.

Location-light by default

The MVP does not require raw address storage. The "Find My Government" page is educational and directs readers to official election office directories. No geocoding, district lookup, or address collection is implemented in v1.

Future location features

If a future phase adds address-to-district lookup, the site will explain what is sent to external providers, avoid storing raw addresses by default, let users clear location data immediately, and disclose all processing. Location data will never be sold or used for ad targeting.

Ollama plain-English summary

Explain this bill

The response will stay grounded in the bill's official summary and source packet.

Choose a bill to begin.

Preparing impact analysis

Reading the official bill record and asking Ollama who may be affected. This can take up to a minute.

Loading page

Fetching the next screen. Official bill pages can take a few seconds.