citipax
The policy tracker

How the tracker works.

Clear language about a complicated process: how we monitor government sources, how we use AI without sliding into AI-slop, and what to do when you spot something wrong. (This is the trust page for the policy tracker. For how we classify a person’s record on a promise, see the accountability methodology.)

Where the data comes from

Every policy on Citipax was originally published by a government body. We don’t write or interpret the underlying law — we re-read it and translate it. Today we monitor:

  • NJ Legislature — bills introduced or moving in Trenton, via LegiScan and Open States.
  • NJ Board of Public Utilities — board orders, press releases, and rulemaking notices.
  • Governor’s office — Executive Orders signed by the sitting governor.
  • NJ Office of Climate Action — the curated news feed published by the state’s climate team.
  • Federal Register — proposed and final climate / energy rules from EPA, DOE, DOT, and Interior.
  • Congress — federal climate and energy bills.
  • Regulations.gov — federal rulemaking dockets that are open for public comment.

We also pull live environmental data — facility emissions, compliance violations, RGGI auction results — directly from EPA and NJ open-data APIs. That data is on /data and is never AI-summarized. It’s just the numbers, sourced live and linked to the original.

How summaries get written

Once a day a scheduled job pulls new items from each source. For each item we compute a SHA-256 hash of the source document. Hashes let us tell unchanged items from updated ones — only documents we haven’t seen, or that have changed since we last saw them, hit the AI.

New or changed documents go to Anthropic’s Claude (Haiku 4.5). The model is asked to produce five things, in JSON, with no prose around them:

  1. A 3-sentence plain-English summary.
  2. Who the policy affects (3–5 bullets).
  3. What a regular person can do about it (1–3 actions).
  4. Important dates or deadlines.
  5. A simplified title — the “plain title” you see on cards.

The summary is the AI’s own writing. We never invent facts that aren’t in the source — but Claude can misread, oversimplify, or omit. That’s why we run a second pass.

The second pass — verification

After a summary is written, a separate Claude call (Sonnet 4.6) acts as a fact-checker. It compares the summary against the source on five axes:

  • Factual accuracy — do the numbers, dates, and specifics match the source?
  • Misleading omissions — does the summary leave out context that would change a reader’s takeaway?
  • Legal language — when terms got simplified, did the simplification change the meaning? (e.g. “may” becoming “will,” “authorized” becoming “required”.)
  • Scope — does the summary correctly convey who is affected and how much?
  • Status — is the policy presented as proposed, passed, or enacted correctly?

The verifier returns a confidence score (0.0–1.0) and a list of specific issues. Anything scoring 0.85 or higher gets a green “Verified” mark. Anything below that gets flagged for human review and shows an amber “Under review” pill on the card. The original AI-generated summary stays visible while it’s reviewed — readers see the warning, not a blank page.

When the source changes

Bills get amended. BPU orders get revised. Federal Register rules get corrected. When the source content changes between scrapes, we re-summarize the affected rows and re-verify. While that’s happening, the card shows a small “⟳ Summary updating” pill so you know what you’re reading is from the previous version. The next scheduled run replaces it.

What we're not doing

We don’t lobby. We don’t endorse candidates, parties, ballot questions, or specific bills. We don’t take money from utilities, industry groups, or political organizations. The goal is to make government output legible — not to shape it.

We don’t write opinion. The “What this means for you” box on each card is the AI’s neutral framing of who’s affected and how — not editorial commentary.

We don’t translate sources outside of NJ climate, energy, and environmental policy. The keyword filter is intentionally narrow.

When we get something wrong

AI summaries are a tool, not the source of truth. Every card on Citipax links back to the original government document. If a summary looks off, click through and read the source. If you spot something materially wrong, tell us at /feedback — we’ll fix it the same day.

The verifier catches a lot but not everything. The amber “Under review” pill is honest signal: that summary is in the manual queue. The green “Verified” pill means the auto-checker and the source agree on the facts — it doesn’t mean the policy itself is good or bad.

How often it updates

The scrape runs once a day at 5 AM Eastern. New items typically appear on the feed within a few hours of being published by the source. Re-summarization of changed items happens in the same daily run, with a cap of 10 re-runs and 20 verifications per day to keep AI costs predictable.

On /feed you’ll see “Data last updated X ago” pulled live from our run log — that’s the most recent successful scrape across all sources.

Questions about a specific summary or how a source is handled? Email hello@citipax.org.
Get personalized NJ climate updates
Pick your topics after you subscribe.