From a file to a sentence

Somewhere under every “look up my property” box is a pile of database tables. This page follows one parcel, Noble Park, from the file the PVA office sends to the sentence a person reads, and says why each step is there.

For the pieces by name, see the database. For the tools and their replies, see the MCP contract.

It narrows on purpose

The funnel91 database tables narrow to 26 SQL functions, then to 19 MCP tools, then to one sentence.91tables26SQL functions19MCP tools1sentence
  • 91 tables: the record, its history, the files as delivered, and the reference layers it is read against. Not every table answers a question; most exist so that an answer can be checked.
  • 26 functions: the questions the database already knows how to answer. 5 sit behind the public MCP, 7 more serve the county’s own site, 11 are built and not yet used, and 3 are housekeeping.
  • 19 tools: what any AI can call. Each one wraps its answer with where it came from.
  • 1 sentence: one question, one answer, with the export date in it.

One parcel’s journey

Noble Park is public land, owned by the City of Paducah, so it can be followed all the way down without putting anyone’s private record on a page. Its own card: parcel 095-00-00-026.

One parcel’s journeySeven stops for Noble Park: the file arrives, kept verbatim, normalised, joined to the ground, a function answers, a tool wraps it, a person reads a sentence.1The filearrives2Keptverbatim3Normalised4Joined tothe ground5A functionanswers6A tool wrapsit7A personreads asentence
  1. The file arrives

    The PVA office exports the roll as it always has, and sends it as one zip. The September export (September 23, 2026) is recorded with every file's hash, so what arrived can never be quietly swapped for something else.

    Without it, nobody could say which version of the roll an answer came from.

  2. Kept verbatim

    The row describing 095-00-00-026 is stored exactly as delivered, with the file and line it came from. Nothing is loaded over the top of it.

    Without it, a disagreement about what the office sent could not be settled.

  3. Normalised

    The same row is rewritten into the shared vocabulary every county uses: names, codes and formats made comparable, while the original stays untouched beside it.

    Without it, every county's export would need its own questions.

  4. Joined to the ground

    The parcel's outline is laid over the reference layers for the same ground: terrain, flood, districts. The county's named places are points too, and nine of them fall inside this one outline: Bob Noble Park, the amphitheater, the lake and its fountain, the playground, the swimming pool, the tennis courts, the Paducah Skate Park and the Wacinton sculpture. That is how a name becomes a parcel.

    Without it, "Noble Park" would be a search term, not a record.

  5. A function answers

    A SQL function answers one narrow question about it: who owns it (the City of Paducah), what it is assessed at ($2,759,000 on the 2027 roll, all of it exempt), what was sold and when (last transferred in 1957).

    Without it, every caller would write its own version of the same query, and they would disagree.

  6. A tool wraps it

    An MCP tool calls the function and puts the answer in an envelope that says which county, which export, whether it was found, and where each part came from.

    Without it, an answer could not show where it came from, and a wrong one could not be traced.

  7. A person reads a sentence

    "Noble Park, 2801 Park Avenue, is parcel 095-00-00-026, owned by the City of Paducah. The 2027 roll assesses it at $2,759,000, all of it exempt. As of the PVA's export of September 23, 2026."

    Without the export date in the sentence, the reader could not tell a current answer from a stale one.

History is a shape, not a column

A record system that overwrites values can only tell you what it says now. This one adds a row instead, so it can also tell you what it said before, and when that changed.

A correction adds a rowThe current table holds one row per parcel. When a correction arrives, the current row takes the new value and the old value moves to the history table as a new row, where it stays readable.CurrentHistoryParcel A, as of Septembervalue: 120 (corrected)Parcel A, as of Februaryvalue: 100Parcel A, as of Junevalue: 110A correction arrives. The current row changes,and the value it replaced becomes a new history row.Nothing is erased: February’s 100 and June’s 110 are both still there.Illustrative values; not a real parcel.

Is this parcel in a flood zone?

The answer is not written on the parcel. Flood zones are drawn by FEMA, on their own map, and they change on their own schedule. The parcel is drawn by the PVA. To answer the question, the two drawings are laid on top of each other and the system checks where they overlap. That is called a spatial join. Doing it this way means a new flood map changes every answer the day it arrives, without anyone editing a single parcel, and the answer can say which flood map it used.

The layer cakeA parcel outline sits on top of separate reference layers for districts, wetlands, flood zones and terrain. A vertical line through the parcel crosses each layer: asking whether the parcel is in a flood zone means checking where its outline meets the flood layer.The parcelDistrictsWetlands and waterFlood zonesTerrainOne point, straight down: which district, which flood zone, what ground.

What a reply carries

Every answer arrives in the same envelope. It says which county and which export it came from, so it can be checked against the record.

What a reply carriesEvery reply is an envelope with six parts: county, as of (which export), found, the data, provenance (where each part came from), and warnings.countyMCCRACKENas_ofthe export of 2026-09-23foundtruedata095-00-00-026, 2801 Park Avenue, City of Paducah…provenanceparcels: the PVA rollwarningsnone

Ask about it yourself: ask the chat about Noble Park. Counts are from the live record on 2026-09-27 (6.0 million rows), after the database was consolidated, and will shift a little as counties are added.