What it is
Minnesota publishes an enormous amount about itself. Every county puts its parcels somewhere, every city its permits, every agency its register — in a hundred places that don’t talk to each other, in a hundred formats, with no shared key. We pull it into one warehouse and join it, then hand back whatever slice you asked for as a file.
Statewide where the state publishes statewide: parcels from the 59 of 87 counties that have opted into Minnesota’s open-data commons, 868,232 addresses, 32,257 healthcare provider registrations. Deeper across the seven metro counties, which publish enough to join on — 1,632,823 lot lines, 1,104,769 appraisals, 868,994 recorded sale prices, 182,350 road segments, a flood zone on every parcel. Then the city files: 1,646,661 Minneapolis 911 calls, 47,764 building permits, 23,303 rental licences.
Pick a slice, filter it to your address or your county, download the file. Free, no account — CSV, XLSX, JSON or GeoJSON, published CC BY 4.0.
Every figure here is read out of the warehouse rather than typed — the same rule the platform holds itself to. Counts as of 24 August 2026.
You bring the private half
Beside the datasets sit 41 tools, and they invert the join. We hold the public half; you bring yours — your rent, your P&L, your prospect list, your bid — and get back a judgement about your own numbers instead of a file about the market. Fifteen work today. The rest are listed with an upvote under each, and the votes decide the order they get built in.
- Storefront ownerIs my rent in line with the building I’m in?
- Contractor or tradeWhere is my trade already crowded?
- Buying a businessWhat does it actually earn?
- Rental property ownerCheck my own buildings against the register.
What the join finds
A joined warehouse earns its keep on the questions no single file can answer. Prosecutors say the mechanism of some of Minnesota’s Medicaid fraud was property — providers who owned the homes they were billing Medicaid to support. Property ownership is the one thing a county writes down completely. So we ran every charged company against 2,710,201 parcels in 59 counties, and none of them is on a deed anywhere in the state. The indictments name a second tier the press releases never mention — separately-named property companies — and one of those holds the deed to the exact address the charge names.
An indictment is merely an allegation, and the defendants are presumed innocent until proven guilty beyond a reasonable doubt in a court of law. Sources: U.S. DOJ Health Care Fraud Unit, the Minnesota Attorney General’s office, the unsealed charging documents, and county parcel records via the Minnesota Geospatial Commons.
The other series is 911. Minneapolis publishes 1,646,661 emergency calls into the public domain, and the city’s own spatial join puts every one of them in a named neighbourhood. Twelve violent call subjects, Jan 1 to Aug 20, the same window in both years: 9,239 in 2025, 9,737 in 2026. Then the same read on five more metros, off each police department’s own records.
How it got built
The warehouse started as something much narrower. Zane and I built the first version in May 2026 — a pipeline that writes a market report for one small business and sells it for $99, by mail. What it actually was, under the hood, is a company where every employee is a model with one job.
Four analysts with no shared context, so they couldn’t converge on the same opinion. A critic on every stage that ran its cheapest checks first — regex before any model got asked. A supervisor with six tools and a hard budget, sending drafts back until they cleared the bar. And after every run, a judge scored five axes and an editor rewrote the prompts — fifteen versions of the report writer landed in a single commit. Nobody typed them.
Pointing that same machinery at a whole state’s public record, instead of at one address, is where the warehouse came from.
The film about it
We made a short film about exactly that — three and a half minutes, silent, rendered at 4K. Every frame is drawn by code, and every number in it is read out of the repo’s own git history at render time, so the film cannot go stale without re-rendering itself true.



