← NorthLedger InsightsBack to portfolio
Recorded sessions · public data · real report files
The AI data analyst, in operation

Ask the data. Get the answer, the analysis, and the report.

This is an AI agent pointed at a real, public, multi-dataset database. The demo sessions use a 60,000-row NYC collision table (plus a deliberately messy 20,488-row copy of it). The scale tier holds 74.8M rows in 8 tables: 22.5M NYC 311 requests, 16.9M Dutch vehicles with 17.0M fuel records, 8.6M Chicago crimes, 5.0M census person and household records, and 4.6M Amazon video-game reviews with 137K product records (row counts from the database profile written on 2026-09-22). The agent profiles, cleans, analyses, forecasts and writes the report files itself. Each replay shows the recorded session, with tool calls summarised, local file paths redacted and editor's notes added and marked.

74.8M rowsscale-tier database, 8 tables
9 tools usedSQL · profile · Python · forecast · reports · make_chart · make_map · web_read · web_search, across these sessions
deepseek-chat, glm-5.3remote model (Ollama Cloud); SQL behind a text check, Python not sandboxed
12 report filesPDF, Excel and Word, open them at the end of each replay

How to read these replays

A self-audit re-ran every recorded SQL query: 92 of 92 reproduce (same query, same data). 679 of 931 numbers stated in the answers (72.9%) match a tool output exactly; the rest were not checked one by one, so no error rate is claimed for them. One arithmetic error was confirmed: the Dutch fleet report's electric-car total, corrected in that replay. Reproducible is not the same as correct: a query can run cleanly and still answer a different question.

These sessions call a remote model. The database stays on the analyst's machine, but query results, including sample rows, are sent to the model to reason over. For NorthLedger's Data Health Audit, by contrast, the audit runs recorded on the main page made no AI model calls.

NL
NorthLedger Agent
replaying a recorded session

How the agent works

ConnectsThe SQL tool accepts only statements that start with SELECT or WITH, on SQLite here. That is a text check on an ordinary connection, not a read-only one, so it is a guard rather than a guarantee. The Python tool is not sandboxed yet: it runs with the file access of the machine it is on, which is why these replays redact local paths. The database stays on the machine; query results, including sample rows, are sent to the remote model to reason over.
Profiles firstIt never assumes: row counts, nulls, duplicates, format chaos, and column meanings get checked before a single conclusion is drawn.
Analyses on commandSQL for facts, Python for modelling. Its forecast tool prints a seasonal-naive baseline beside the model, but its error is measured in-sample and its band widens by a square-root rule; the Forecast Lab on the main page replaces both with backtested errors.
Delivers filesThe report is the product: PDF, Excel, and Word deliverables generated in-session, numbers-first and limitations included.

Where the data comes from

All public data, each traceable to its official source. Licences differ by dataset and are listed in the full manifest, with direct download links, in DATA-SOURCES.md.

NYC Motor Vehicle CollisionsNYC Open Data. The demo database: 60,000 crash records from 2025-09-25 to 2026-06-11, via the Socrata API.
US Census ACS PUMS 2023Person and household microdata (5.0M records, survey-weighted) for demographics and economics.
Chicago Crimes 2001-present8.6M reported incidents: event-stream analysis at scale.
NYC 311 Service Requests22.5M requests: operations and resolution-time analysis at scale.
Amazon Reviews 2023 (UCSD)The video-games category: 4.6M reviews and 137K product records.
RDW Dutch Vehicle Registry16.9M registered vehicles and 17.0M fuel records (CC-0): the electrification and fleet-age story.

Honesty notes: the demo database is public NYC Open Data (motor vehicle collisions) with a synthetic legacy-export layer (duplicates, mixed formats) standing in for a client's messy copy. The agent's reasoning loop follows Hermes Agent (Nous Research): profile first, cite row counts, compare against baselines, disclose limits. This page was assembled with AI assistance (Hermes Agent with GLM, and Claude).