Visual essays on warehouses, pipelines, dashboards, and the AI layer eating all three.
A credit score never looks at income, savings or assets. It can drop when you pay debt off, it changes depending on which day your card reports, and it comes in dozens of versions that disagree. It was built to rank borrowers, and we use it to price insurance.
Oct 12, 2026 · 9 min
GHIN and 18Birdies run the same formula and still hand the same golfer different numbers. The gap is in the course data and the fine print. The bigger problem is the formula itself, and the fix is to count your middle twelve rounds instead of your best eight.
Oct 6, 2026 · 11 min
I ran the World Handicap System calculation over 229,333 real tournament rounds by touring professionals. The index landed 2.6 strokes below what they actually shoot, and four simpler numbers beat it at predicting the next round.
Oct 1, 2026 · 10 min
I ran the leading-digit test on the datasets behind this blog, and the results show what Benford can and cannot tell you about a set of numbers.
Sep 25, 2026 · 7 min
I pulled 30 days of PyPI and npm download counts for 26 data tools and the newest ones are smaller next to the incumbents than any conference talk would have you believe.
Sep 20, 2026 · 6 min
I counted every Stack Overflow question on fifteen data tools since 2011, and the shares tell a cleaner story than the counts.
Sep 14, 2026 · 6 min
Code has diffs and data mostly does not, which is why bad numbers ship. Build the diff, then watch what a missing key does to it.
Sep 8, 2026 · 7 min
Identical resumes, random names, real job adverts. The 2004 experiment found a fifty percent gap in callbacks, and the 2022 replication at eighty thousand applications found it again.
Sep 3, 2026 · 7 min
The same two series drawn six dishonest ways, each with a single toggle that redraws it honestly, and the one question I ask of every chart I meet.
Aug 28, 2026 · 6 min
I drew random samples from three thousand real salaries and watched the median settle at a hundred rows, which changes how I think about scanning a warehouse.
Aug 23, 2026 · 7 min
One instant is a different calendar day depending on where you count it, and every daily metric quietly picks a side.
Aug 17, 2026 · 7 min
A famous claim says New Jersey voters punished Woodrow Wilson for shark attacks. It rests on one county in one election, and it does not survive the second look.
Aug 11, 2026 · 7 min
NULL is not a value, it is the absence of one, and every SQL operator has its own opinion about what to do with an absence.
Aug 6, 2026 · 7 min
I sampled 334 front-page thumbnails from 31 news sites on one afternoon and counted the charts, and the count embarrassed my thesis.
Jul 31, 2026 · 6 min
I pulled the sizes of three thousand public datasets, and most of them fit on a laptop with room to spare, which says a lot about how we pick tools.
Jul 26, 2026 · 7 min
I kept a time diary for one week and drew it as a ring, and the analysis slice turned out to be about a quarter of the day.
Jul 20, 2026 · 6 min
Two economists phoned 410 fast food restaurants in 1992 and got an answer the textbook said was impossible. Thirty years of fighting about it produced one of the better-tested findings in economics.
Jul 14, 2026 · 8 min
Eight data terms people nod along to, each explained by a small interactive you can poke instead of a paragraph you skim.
Jul 9, 2026 · 7 min
Twenty ordinary business questions over a six-table schema, sorted into the five ways a confident SQL answer goes quietly wrong, with a quiz for each one.
Jul 3, 2026 · 7 min
Three generated dbt projects at three sizes show which failure modes appear at each scale and which refactors actually help.
Jun 27, 2026 · 7 min
Pipeline cadence has a cost curve and a staleness curve, and most teams sit on the wrong side of the knee without ever having looked at when anyone reads the data.
Jun 22, 2026 · 7 min
Follow one number from raw tables to a board slide and watch its meaning change at every hop while every test stays green.
Jun 16, 2026 · 7 min
The same timestamp string is a valid date in Chrome and an Invalid Date in Safari, and one method call turns that into a white screen.
Jun 11, 2026 · 6 min
Shift a chart of leaded petrol forward twenty-one years and it lands on the American crime wave. The mechanism is real. The size of the effect is the part that keeps shrinking.
Jun 5, 2026 · 8 min
The entry-level door is narrower than it was and AI moved the lock. A concrete plan, by starting point, with the evidence on where junior jobs actually are.
May 30, 2026 · 9 min
Nearly eighty exits, one dot each. Where the modern data stack went, who bought it, and what it means for the tool you are about to adopt.
May 25, 2026 · 8 min
Thousands of self-reported data salaries by title, level, region, and remote status. Filter it, hover it, and type your own number to see where you land.
May 19, 2026 · 6 min
An NFL upset loss raises reports of men assaulting their partners by about 10 percent that evening. A UK follow-up found the same spike, and blamed something else entirely.
May 14, 2026 · 7 min
Ask a warehouse "what was revenue" and you get four answers. Ask a metric layer and you get one. That difference is the whole reason AI on data works or does not.
May 8, 2026 · 7 min
Ten years ago every verb in the pipeline had its own vendor. Scroll through how the boxes got pulled into one, and what is left on the edges.
May 2, 2026 · 7 min
Not every stage benefits equally. An honest, stage-by-stage scorecard of where models help today, where they will in 18 months, and where they still just demo well.
Apr 27, 2026 · 6 min
Every dashboard follows the same curve: a launch spike, then silence. Play with the model to see why pushing the insight beats waiting for the click.
Apr 21, 2026 · 6 min
The most quoted chart in behavioural science shows parole approvals falling to zero before lunch. The pattern is real. The hunger story probably is not.
Apr 16, 2026 · 7 min
A paper says child car seat mandates have prevented 145,000 births in the US since 1980, because three seats do not fit in the back of a sedan. The math is cleaner than the headline.
Apr 10, 2026 · 7 min
One visual essay, every week.
No roundups, no sponsors. Unsubscribe in one click.