Skip to the document
Madhuopen lab
§2 · Research · 7 threads

Research Threads: What Is Being Measured, and What It Has Cost

Madhu

Kansas City · Independent · revised continuously

Abstract

Each thread below is a question I have held open long enough to measure. Every one reports its metric with the sample it was measured on and what the measuring cost, and every number cites the file on disk it was read from. Threads that turned out to be dead ends keep their negative results, because a finding that something does not help is the cheapest kind of knowledge to lose and the most expensive to rediscover. Each title below opens the full write-up: the question, what I tried, what the numbers were, and which attempts were wasted. Papers are listed in §2.P; the notebooks behind the numbers are in §3.

2.1Grounded extraction with citations

Eight days, about three and a half dollars of compute, and forty-one numbered findings about reading documents well enough that a person can skip most of the checking. [active · 6 August 2026]

Table 2.1. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Best answering stack0.9679ANLS, DocVQA-val, 300-question seeded samplebest_score/, ade/runs/
Fields filled without a human84%and those are 94.1% exactexperiments/RESULTS.md
Agents indistinguishable from one plain call5 of 9paired bootstrap over the arenaade/SWARM.md
Total research spend$3.50of a $9 OpenRouter budget, plus free local CPUexperiments/RESULTS.md
Numbered findings41L1–L41, each citing its runexperiments/LEARNINGS.md

Read the full write-up — 4 sections · the notebook

2.2Inference economics

A panel that took fourteen seconds to appear now takes six and costs about an eighth as much, and the model that does it is smaller and open. Seventeen sub-experiments, about forty dollars. [active · 5 August 2026]

Table 2.2. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
End-to-end answer13.9 s → 6.1 smedian of 10 runscost-lab/final_experiment
First token1.5 s → 0.6 scost-lab/block_tps
Cost per answer−87%self-hosted 30B open model replacing a hosted frontier modelcost-lab/analysis
Qualityheldtwo independent judges agreeingcost-lab/llm_as_judge

Read the full write-up — 6 sections · the notebook

2.3Schema-constrained generation

A filing with 369 fields that a language model has to help produce and must never be allowed to write. [paused · 2026-08]

Table 2.3. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Fields in the target file369wsz-schema-rag/forms
Rule the design turns onthe model never emits the fileit proposes values; a deterministic writer emits themwsz-schema-rag/arch.md

Read the full write-up — 2 sections

2.4What agents should remember

Reading memory systems until the parts are ordinary, then building one small enough to run on a laptop, and measuring what recall is actually worth. [active · 2026-09]

Table 2.4. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Explainer chapters11written to be read in orderapps/memory/site

Read the full write-up — 3 sections

2.5Answers with the slide attached

Ask a question of an hour-long talk and get the answer with the slide it came from, at the timestamp. Then do the same by voice, fast enough that it feels like a conversation. [exploring · 2026-08]

Table 2.5. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Retrieval on a golden set0.917recall@10, 14 questions; judge 4.33 / 5; declined 2 of 2 unanswerablewsz-research/research.md §2
Ingest a 37-minute talk52 s42.6× realtime on a laptop, $0.042 end to endwsz-research/research.md §2
Speech recognition on a spot L4417× realtime$0.0005 per video-hourwsz-research/research.md §2
Caption cost per keyframe$0.00024an 8B open vision model, measuredvideo-audio-frames-summarization/research.md §4
Answer latency4.5 sp95wsz-research/research.md §2

Read the full write-up — 5 sections

2.6A database that lives in a bucket

HanuDB serves from local disk and keeps nothing that matters there. Delete the machine and a new one rebuilds from the bucket alone. An agent tuned it over 108 experiments while I was asleep. [active · 16 September 2026]

Table 2.6. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Benchmark score9 047 → 40 116√(writes/s × reads/s), on a 1-core, 768 MB harnessresults.tsv
Writes / reads per second34 821 / 46 218run.log of experiment 0091
Experiments10874 kept, 27 discarded, 3 crashedresults.tsv
Soak14 M documentsten minutes, zero errorssoak-server.log
Rebuild from the bucket40 s4.5 GB snapshot plus tailREADME.md, Scale
Cost to run≈ $0.01 / daymeasured on a real free-tier machineREADME.md, Real e2-micro

Read the full write-up — 4 sections · the preprint · the notebook · source on GitHub (MIT)

2.7Public data, kept honest

The Labor Department's visa disclosure files are wrong in specific, repeatable ways. A loop fixes one of those a night and has to prove it did not move the headline numbers for the wrong reason. [paused · 13 September 2026]

Table 2.7. Headline measurements. Sources are relative to the thread's folder.
measurevalueconditionssource
Logged runs23one change each, headline counts recorded before and afterh1b_firms_list_kansas_city/results.tsv
Guardrail±3%metro filings may not move further than this unexplainedresults.tsv, kc_filings_last3 column
Raw rows to distinct cases9.64 M → 7.17 Mfour legacy schemas mapped, back to 2010results.tsv, run 17
Unresolved locations4,056 → 397legacy county delineations for one stateresults.tsv, run 1
Metro coverage5,912 filingslast three years, 1,535 employersresults.tsv, run 19

Read the full write-up — 4 sections · the notebook

2.PPapers

  1. Madhu. HanuDB: A Cloud-Durable Document Database for Tiny Compute. Preprint, 2026-09.
  2. In preparation: grounded extraction with per-field trust verdicts.
  3. In preparation: what a cheap open model costs to serve, measured end to end.

2.NNotebooks

AI Insights: Latency & Cost Optimization (17 parts); HanuDB, tuned while I slept (6 parts); Reading documents you can trust: the numbered findings (4 parts); Public data, kept honest (4 parts). All notebooks →

Every number in this document is read from a file in the thread's own folder. If a figure here disagrees with its source, the source is right.