← AI-pair numerics

Shipping the work: explore in HTML, deliver in PDF

Once Claude has done the analysis, you need to do one of two things with it: explore it, or deliver it. Each has a format that's almost embarrassingly good at the job — and Claude produces both for free.

The whole idea in one line: a self-contained HTML file is the best thing ever invented for poking at data; Markdown → Pandoc → PDF is the best cheap way to hand someone a document that looks like it came from a design team. This page sets up both. It's a reference for the report problems — do it once, reuse it everywhere.

Two outputs, two jobs

HTML explorerPandoc PDF
ForThinking. Slicing, filtering, zooming, toggling assumptions.Delivering. The frozen artifact for the boss, the customer, the design history file.
AudienceYou and a colleague or two.People who will print it, sign it, or file it.
InteractiveYes — live charts, sortable tables, sliders.No — static, paginated, permanent.
DependenciesNone. Any browser opens it.pandoc + one PDF engine (below).
Shareable asOne .html file you can email.One .pdf file you can email.

The interactive panels on the spend report and decision point problems are HTML explorers — single files, no install, live charts. That's path one. This page mostly exists to set up path two.

Path 1 — the HTML explorer (zero install)

This one needs no setup at all, so the entire skill is knowing to ask for it. The magic words are “single self-contained HTML file, no external dependencies” — that tells Claude to inline the data, the styling, and any chart code into one file that works offline, forever, on any machine.

PromptBuild me a single self-contained HTML file that loads this CSV (embed the data directly), shows a sortable table, lets me filter by category and vendor, and renders spend-by-category as a bar chart. No external libraries or CDN links — everything inline so it works offline.

Double-click the result. It opens in your browser. Nothing to install, nothing to host, no build step. When you want a different cut of the data, you ask Claude to change it and re-open the file. This is the fastest data-exploration loop there is, and it costs nothing to run or share.

Why inline matters: a file that pulls a charting library from a CDN breaks the day you open it on a plane, or in two years when that CDN URL rots. “Self-contained” means the file is the whole program. Keep one around and it keeps working.

Path 2 — Markdown → Pandoc → PDF

You write (or Claude writes) the report in Markdown — plain text with # headings and | tables. Pandoc is the universal document converter that turns it into a typeset PDF. Pandoc needs one helper to actually draw the PDF; we use Typst, a small modern typesetting engine, because it's tiny, fast, and has readable error messages.

Two tools to install. Pick your OS:

brew install pandoc typst
Terminal (Homebrew)

No Homebrew? Install it first from brew.sh, or download the pandoc and typst installers from their release pages.

Render it — one command

With a report.md in hand:

pandoc report.md -o report.pdf --pdf-engine=typst
Terminal

That's the whole workflow. Edit the Markdown, re-run the command, get an updated PDF. Better still, don't memorize the flags — let Claude write the report and hand you the exact command:

PromptWrite a one-page Markdown report of these findings: a two-sentence summary, a findings table, and an embedded bar-chart image. Add a YAML title block. Then give me the exact pandoc command to render it to a nicely-typeset PDF using the Typst engine.

Making it look good

Pandoc + Typst already produces a clean document. A YAML block at the top of the Markdown adds a title page and metadata; a couple of flags add a table of contents and section numbers:

---
title: "Q1 Purchase-Order Spend"
author: "Reliability Engineering"
date: "2026-04-15"
---

# Summary

Total spend was **$67,414** across 49 line items...

![Spend by category](spend_by_category.svg)

| Category | Spend | Share |
|----------|------:|------:|
| Machined Parts | $12,908 | 30% |
report.md
pandoc report.md -o report.pdf --pdf-engine=typst --toc --number-sections
Terminal
Charts in a PDF are images. The PDF is static, so a figure is a file you reference — ![caption](chart.svg). Have Claude emit the chart as an .svg (crisp at any size) or a small Python/matplotlib script that writes one. The live, draggable charts are the HTML path's superpower; the PDF gets a sharp snapshot.
Prefer LaTeX? If you want LaTeX-grade typography or already have a TeX install, swap one tool: install TinyTeX (a minimal, self-managing LaTeX — the installer lives at yihui.org/tinytex) and change the flag to --pdf-engine=xelatex. Everything else — the Markdown, the YAML block, the workflow — is identical. Full TeX Live works too but it's ~4 GB; TinyTeX is a few hundred MB and installs missing packages on demand.

Where this runs

Both paths run on your own machine, with your own Claude — same as everything else on this site. The HTML file opens in your browser; the pandoc command runs in your terminal. Nothing is uploaded, nothing is hosted, and the artifacts are yours. Claude can even write a one-line Makefile or shell script so “rebuild the report” becomes a single command you never have to think about again.

Take it back to the datasets

Both report problems ship a downloadable dataset and end with a “Ship it” section. Generate the data, do the analysis with Claude, then practice both deliveries:

Pandoc: pandoc.org · Typst: typst.app