Skip to content
San DiegoProsperity Observatory

SAN DIEGO COUNTY · PRIMARY-SOURCE PUBLIC DATA

Ask San Diego’s public record a question. Get the answer, with the receipts.

Registrar, Census, FPPC, County, 18 city clerks and federal filings, pulled into one place so you stop hand-matching names across agency portals. Every answer carries the original source, the record ID and the date we retrieved it.

Answers come from reviewed exports only and cite every figure. Or connect your own assistant.

—government sources inventoried
—source records held in the database
—verified exports open to assistants and download today
Checking the live catalog…

ASK. GET AN ANSWER. CHECK THE SOURCE.

This is what a cited answer looks like.

Four answers we checked by hand on November 3, 2026, one per beat. Pick one, or ask your own above.

YOU ASK

“Who is on the November 2026 ballot in Oceanside?”

  1. Your assistant calls search_records on the candidate export.
  2. It gets qualified candidates, offices and ballot designations.
  3. Every row links to the Registrar’s own PDF and page.

THE ANSWER, WITH CITATIONS

The Registrar’s R740.03 candidate list (snapshot August 28, 2026) shows qualified candidates for Oceanside City Council districts 1 and 2 and Oceanside Unified trustee areas 1, 3 and 4. First ten rows:

CandidateOfficeBallot designation
Michael ClineCity of Oceanside, Council District 1Retired U.S. Army
Eric JoyceCity of Oceanside, Council District 1Oceanside City Councilmember
Perry AlvarezCity of Oceanside, Council District 2Automotive Repair Manager
Emily GonzalesCity of Oceanside, Council District 2Director/Facilitator/Mother
Jerry Garcia AvilaOceanside Unified, Trustee Area 1Retired Lieutenant Commander
Nancy LiconaOceanside Unified, Trustee Area 1School Counselor
Joey PearsonOceanside Unified, Trustee Area 3Professional Learning Director
Nicole WatsonOceanside Unified, Trustee Area 3Businesswoman/Mother
Raquel Riojas AlvarezOceanside Unified, Trustee Area 4Governing Board Member
Jason BethurumOceanside Unified, Trustee Area 4Teacher/Father

More rows are available on the next page. Rows are candidacy occurrences as the Registrar published them, not resolved people; the same name in another dataset is not joined automatically.

Citation on every row
Source
San Diego County Registrar of Voters, candidate-list.pdf ↗
Locator
R740.03 Candidate List, physical pages 12, 13, 43 and 44
Record ID
sd-rov-general2026:contest:f2915c6a886dc8ae5bf2:candidate:1 (Michael Cline)
Dataset
candidate-occurrences · 1,528 rows · SHA-256 verified
Retrieved
2026-10-21

STORY STARTERS

Questions worth a reporter’s afternoon.

Every starter runs against the reviewed exports and comes back cited. Pick a beat.

Sixty seconds, start to citation.Explainer video in production. Script and storyboard are in the repository.

HOW IT WORKS

From a question to a footnote in under a minute.

Type a question. Read the answer. Open the original document at the cited page. Copy a footnote-ready citation. Connect it to the assistant you already use when you want to go deeper.

Connect in two minutes →

CONNECT IN TWO MINUTES

Bring it into the assistant you already use.

One URL, no account, no password. Your assistant gets six read-only research tools and returns cited records. You verify the citations.

https://san-diego-prosperity-observatory-sharper-ai.vercel.app/mcp

Checking the connection…

Claude (web or desktop)
  1. Open Settings → Connectors, then Add custom connector.
  2. Name it “San Diego Prosperity Observatory” and paste the URL above.
  3. Leave authentication empty and save. Start a chat and ask a question like the ones above.
Claude Code (terminal)
  1. Run the command below once. The server is read-only and needs no key.
claude mcp add --transport http prosperity https://san-diego-prosperity-observatory-sharper-ai.vercel.app/mcp
ChatGPT, Cursor and other MCP clients
  1. Find the client’s MCP, connectors or tools setting.
  2. Add a remote server with transport Streamable HTTP and the URL above.
  3. Choose no authentication. The six tools appear as list_datasets, describe_dataset, search_records, get_record, get_coverage and research_question.

What we log: the questions and search terms sent to the tools, privately, to find missing sources. Not your conversation, account or IP address. Keep confidential sources out of your questions.

No assistant? Download the files.

Every public export is a verified JSONL file with a checksum, scope notes and source links. Open them in Python, R, a spreadsheet or DuckDB.

Browse the exports →

Prefer a browser? Start with a place or a topic.

Community profiles for 18 cities and the county, and a homelessness and health workspace that follows funding to reported results.

Communities →   Topics →

Building something? Use the API.

The same read-only endpoints the site uses, documented with OpenAPI.

API documentation →

WHAT IS INSIDE

One collection. Every level of government.

Counts come from the live source inventory and update as sources are added. A source is listed whether or not its records are loaded yet, so coverage stays visible.

Loading the source inventory…

—sources inventoried across the county, state and federal publishers
—sources with records loaded in the database
—verified exports open to assistants and download, with more in review

EVERY NUMBER HAS A RECEIPT

What travels with each record.

One real record, as stored
Value
8,027 renter-occupied units ± 585
Place
Encinitas city, California · GEOID 0622678
Period
2020-2024 ACS 5-year
Source URL
www2.census.gov/…/acsdt5y2024-b25070.dat ↗
Locator
GEO_ID=1600000US0622678;column=B25070_E001
Record ID
1600000US0622678:B25070_E001
File SHA-256
862ccc17d913305d11e6f802ce4518d76b30585ea0b05b251cd8cf21f8661386
Retrieved
2026-10-18T01:33:57Z
Quality flags
none
  • You can open the original. The source URL is the publisher’s own file, not a copy we edited.
  • You can find the exact line. The locator names the page, sheet, row or column the value came from.
  • You can prove nothing changed. The SHA-256 matches the file as retrieved on the date shown.
  • You can tell what the number is not. Units, universes and quality flags stay attached. A count of rows is never presented as a count of people or dollars.
  • You can cross-reference without being misled. Names are not merged across sources. A match is labeled a possible match until it is documented.

HOW WE WORK

Primary sources. Visible coverage. Reusable data.

Only primary sources. Government publishers and official filings. Nothing is typed in from a news story.

Gaps stay visible. A source we could not get is listed with the reason. An empty search is not proof that nothing happened.

Same method for everyone. Organizations and political actors are handled the same way, and we do not infer misconduct or causation.

Open source on GitHub. Read how the project works or request a dataset.