NapkinBook Field guide

Field guide

What NapkinBook is, what’s on the canvas, and how a number actually comes together.

The idea

NapkinBook is one big canvas where you keep everything a forecast is made of, side by side: your notes, the charts of what’s happened before, the tangle of things pushing the odds one way or the other, and a live number at the end. It’s a drawing board where the boxes do math.

The number is what you’re after; everything around it is the proof. You’re capturing how a probability came together, so a year from now you can open the board and see exactly why you thought what you thought.

Data source
A circle. A number, or a file.
Operation
A square. It computes.
Wire
A line. It carries a number.
Group
A dashed frame. It collapses.
+BASE RATE18%EVIDENCE+9COMBINE→PYOURS27%MARKET34%EDGE−7move a driver,your edge moves
The vocabulary, wired into a live forecast: a base rate plus a bit of evidence makes an estimate, set against the market price to read the edge.

The canvas

The toolbar sits at the bottom. Pick a tool and the canvas does that one thing; hit Esc to go back to Select. Click something and its settings show up on the side; click away and they’re gone. That’s the whole thing.

V Select Pick, move, resize. Esc always brings you back here.
H Pan Drag the canvas around. Or hold Space, or use two fingers.
D Draw Freehand ink. The pen always draws, whatever tool you’re on.
T Text A note or a label. Click to drop one, or drag out a box.
O Data source A circle holding a number, or a dataset you load from a file.
R Operation A square that does the math. Pick what it does in the settings.
A Wire Connect two things. Run it onto a value and it carries the number.
C Chart A plot. Empty until you wire a value into it.
G Group Wrap a selection in a dashed frame you can name and collapse.

On an iPad, the pen always draws and ignores your resting palm. One finger works whatever tool you’ve selected; two fingers pan and pinch to zoom. Everything you tap is sized for a thumb.

Data sources

A data source is a circle, the raw input everything else on the board reads from. It holds one of four things, and you pick which in its settings.

Number A number you type in: a constant or a guess. Double-click the circle to edit.
Dataset A file you import: rows you can query, profile, and chart. See Datasets.
View A saved query over your data, its own live table. Shows up as a dashed ring.
Prior A base rate you set yourself, with a weight for how much it counts, pooled into a forecast.

Whatever it holds, every node (a data source, an operation’s result, even a collapsed group) puts exactly one number on its edge. That’s the whole trick: if something has a value, you can wire it into anything that takes one. Everything connects to everything.

Operations

An operation is a square that takes the numbers wired into it and spits out a new one. Drop one with R and pick what it does in the settings. It stays a square, so the canvas always reads the same: circles hold a value, squares do the math.

Arithmetic

Sum
a − b + c
Adds up everything wired in. Each wire’s ± sign says whether it adds or subtracts.
Multiply
a × b × c
Multiplies its inputs. Signs don’t matter, but a per-wire × k still carries through.
Divide
a ⁄ (b · c)
One input divided by the rest: a ratio or per-unit number. Flip which input sits on top; divide by zero and it reads “—”.
Pool
remainder
A running-balance check. Adds up everything upstream, money in and out, and shows what’s left.

From data

Base rate
s ⁄ t
How often a wired series meets a condition, straight from the data. Pick the column and test in the settings; it anchors a combine.
Aggregate
one stat
One number out of a wired column: mean, median, last, min, max, or sum.
Trend
Δ ⁄ period
Which way a wired series is heading: its growth rate or slope per period.

Probability

Push
± nudge
A nudge to the odds, up or down. It adds to or subtracts from the base rate inside a combine.
Combine
→ P
The forecast itself: your base rate plus every push, kept to a real probability that moves as you tweak the inputs.

Money over time

Interest
P·(1 + r⁄n)ⁿᵗ
Grows a wired amount over time, simple or compound, with optional regular contributions.
Amortize
P·i ⁄ (1 − (1+i)⁻ᴺ)
A regular-payment loan: put in the term, rate, and principal, get the fixed payment back out.
Credit card
month by month
Paying down a balance: a fixed payment or a percent minimum, run all the way to zero.

Wires

A wire connects two things. Draw it onto something with a value (a node, a chart, a collapsed group) and it carries that number into whatever’s on the other end. Draw it onto a plain shape or an image and it’s just an arrow; it doesn’t carry anything.

Two things live on the wire itself. Edit them right on the wire, or in the settings:

± sign Whether the input adds or subtracts. Sum adds them up by sign; pool uses it to work out what flows through. Multiply just ignores it.
× k Scales the value before it lands: for a weighted sum, a share of a total, or a unit conversion. Stacks with the sign.

Drag the line to bend it, drag a bend to move it, double-tap a bend to get rid of it. Curved, angled, or stepped: pick the wire’s shape in the settings. Move a node and every wire on it redraws itself.

Charts

A chart starts empty until you wire a value into it, then draws whatever you gave it. Six kinds, all shapes you already know how to read. Timeseries, scatter, histogram, and forecast work now; tracker and fan are coming soon. Wire in a dataset or view and it queries the rows live; wire in a combine and it shows the forecast.

Timeseries A line of history from whatever series you wire in. Switch to bars or a filled area in the settings; that changes the look, not the numbers.
Scatter Two number columns plotted against each other, one dot per row, for spotting a relationship. Pick the x and y columns, or let it grab the first two.
Histogram The shape of one column: how its values are spread out. It bins them for you, and you can nudge the bin count.
Forecast Reads a combine live: your estimate, an uncertainty band around it, and a bar chart of which inputs move it the most.
Tracker Soon Your own probability over time as you head toward the resolve date.
Fan Soon A projection that fans out from your history: low, middle, high.

Groups

Select two or more things and hit CtrlG to wrap them in a dashed group frame you can name. While it’s open, whatever sits inside is in the group; drag something in or out and it updates.

Collapse the frame and the whole thing folds into a single circle you can wire like any other value. It hands out the group’s result, the number from its last operation, or just the sum if it’s a loose pile, so a finished chunk of work becomes one clean input for whatever’s next.

Valid

Valid: Two or more elements

Select 2+ things and hit CtrlG. The frame gathers up whatever’s inside it.

Valid: A group inside a group

Group something that already has a group in it and they nest: the inner one works out first.

Not a group

Not a group: A single element

Grouping needs at least two; one thing on its own has nothing to gather.

Not a group: Frames that just overlap

Overlapping doesn’t nest them. Select both and CtrlG if you want one really inside the other.

Something’s in the group when its center is inside the frame. Just clipping the edge doesn’t count.

Datasets

Four ways to get data onto a board, all from the Data panel: drop in a file (CSV, TSV, JSON, or Parquet), paste a link to one, search FRED by name (unemployment, CPI, the yield curve), or grab a ready-made one from the starter library. However it arrives, it lands as a dataset, parsed into a fast database that runs entirely in your browser. Nothing is uploaded; your data stays as local as the board it’s on, and each dataset remembers where it came from.

The starter library is a hand-picked set of reference classes: US recessions, thousands of scored polls, stock-market data back to 1871, world inflation, Atlantic hurricanes, earthquakes, and more, grouped by topic and tagged with the base rate each gives you. Nothing is stored or bundled: a tap grabs the raw source and streams it straight in. When the raw data isn’t quite ready to read a base rate off, it builds saved queries to get it there (the polls pick up an error column, the hurricane tracks collapse to one row per storm), so you can see how the number was worked out.

Open a dataset and it opens on its shape: every column’s type, missing and distinct counts, and range, worked out in one pass. A Preview tab holds sample rows, a SQL console sits below. Query your data by name in plain SQL, then filter, sort, and copy any cell, row, or column straight out of the results.

Save a query and it becomes a view: a table of its own you can profile, preview, and drop onto the canvas as another source. A dataset shows as a solid ring, a view as a dashed one. Wire either into a chart to draw it, or into an operation to crunch it.

Forecasting on the canvas

Everything above is the vocabulary; here’s what it’s actually for. A good estimate is really just a base rate you nudge for what’s different this time, and the canvas keeps both halves in front of you at once.

  1. Start with a base rate

    How often has this kind of thing happened before? Chart it. That rate is where you start from, not where you land.

  2. Sketch what’s different this time

    Lay out what’s pushing the odds up or down. Each becomes a data source or a push, and the way they connect is your reasoning, right out in the open.

  3. Wire it into a number

    Pool it into a combine and read the probability off it. Change one input and the number moves. The number comes out of the picture, so the picture is what you argue about.

  4. Leave a paper trail

    Jot your notes. Write out the reasoning. Say where the numbers came from. When the question resolves, the board still tells you why you called it, and that’s how you get better at this.

++base rate55%two extrarest days+4 ptsstarting CBsuspended−6 ptstournamentform+3 ptsfavorite advances56%base 55%market price0.62market says 62¢board says 56%the gap is the tradeBut like...is it though?
The same recipe worked through: a base rate nudged by three pushes into a 56% estimate, sitting beside the market at 62¢. The gap between them is the thing you can act on.

Categorical forecasts

A combine doesn’t have to boil down to a single probability. In its settings, switch the output from binary (the chance of one thing happening) to categorical, and instead you get a set of named outcomes with probabilities that add up to 100%.

Each outcome gets its own uncertainty band, so in a multi-way race you see the spread on every option, not only the front-runner.

Two more output types are in the works but not live yet: distribution (a number given as a low / middle / high range) and timeseries (a path over time). You’ll see them in the list, greyed out, until they’re ready.

who winsthe group?Brazil48%± 6France29%± 5the field23%± 5each gets a band —and they add to 100%.
A categorical combine doesn’t land on one number: it fans out into named outcomes that add to 100%, each with its own band.

Sharing

A board is yours alone until you hit Share. Sharing gives you two links: a view link that opens the board read-only, and an edit link that lets whoever has it draw alongside you. Everyone on a link sees the same canvas live, cursors and edits as they happen, and the Share button tells you how many people are in the room.

The permission to edit is baked into the link itself (the part after the #), so a view link truly can’t edit; that key never reaches a server. Stop sharing whenever you want and the room shuts down, killing every link you handed out. Whether or not you ever share, your local boards work exactly the same.

+past launches hit35%paid + creators+20 ptsoff-season−8 ptshits Q3 goal47%base 35%PRIYASAMJAKE
One board, one room: everyone on an edit link works the same canvas live. Here Priya, Sam, and Jake talk through a forecast together, cursors and all.

Presentation

A finished board shows the whole argument at once, which is what makes it hard to hand to someone. Present turns it into a guided tour: a set of stops the camera flies between, one idea at a time, so whoever’s watching gets to the number the way you did.

  1. Open Present

    The Present button, at the top of the board, opens the step editor. Your walkthrough saves with the board, and you can keep more than one: a bull case and a bear case over the same picture.

  2. Add the stops

    Pick a group or element and hit Add to presentation. Each becomes a stop the camera frames on play. Reorder with the arrows or ⌥↑ / ⌥↓, and add a note; it rides along as the caption.

  3. Show as you go

    If a stop points at a group, the eye toggle opens it just for that stop: folded up otherwise, open right when you’re talking about it. Tick “Start with a whole-board overview” to open on the full picture first.

  4. Play

    Hit Play and the camera flies stop to stop. Click or → forward, ← or a left tap back, Esc to exit. Pick a Focus style to quiet everything but the stop you’re on.

Focus

One focus style covers the whole show: it sets how much of the rest of the board to hold back so the current stop carries the room.

None The whole board stays lit; the camera framing alone leads the eye.
Dim Dims everything outside the stop, so the focus reads across a room or a screen-share.
Outside Hides everything outside the stop; just the current one is left.
Wired Keeps the stop and whatever’s wired into it, so a node shows up with only its inputs.

Mirror your screen

No walkthrough yet? You don’t need one. In the same Present dialog, hit Mirror my screen and whatever you’re looking at goes out live: everyone following sees what your camera frames, moving as you pan and zoom. What-if sliders and annotation work here too, so you can talk a board through and mark it up without authoring a single stop.

Mirroring and a walkthrough aren’t either / or. Start a mirror to set the scene, pause it to play the deck, then pick the mirror back up when you’re done: the room follows the whole way through.

Remote & stage

REMOTEyou driveliveSTAGEthe room follows
You drive from your phone; a stage screen carries the same show to the room. Both pair the way sharing does: the board id and keys ride in the link and never touch a server.

Run the show from your phone. The Remote button pops up a QR code; scan it and your phone becomes a presenter’s remote: a live view of where you are, a thumbnail of what’s next, your speaker note for this stop, and forward / back buttons. The laptop on the projector follows along.

The same dialog gives you a stage link too: a clean, view-only screen that follows the show full-screen, so what’s on the projector needn’t be what’s in your hand. Close the laptop and your phone can run the stage on its own.

The remote is more than a clicker. Each of its tools has a job while you talk:

Annotate

Draw straight over the live board. Pick a pen or a highlighter and your ink goes out to the whole room as you make it. It’s a scratch layer, not part of the drawing: erase a stroke, clear the lot, or just move to the next stop and it wipes itself, so nothing ever lands in the saved board.

Q3 GOAL47%COMBINE→Pthe whole room watches you circle it,it wipes on the next stop

My notes

A private scratch pad for the stop you’re on: the number you want to hit, the point not to forget, whatever you’d jot on a cue card. Only you ever see it, and it saves with the board, so it’s waiting for you the next time you present.

MY NOTESlead with the base ratedon’t defend the −8ask what they’d betonly you see this

Audience aside

The mirror image of My notes. Type a short footnote for the current stop and it shows up for everyone: on the stage screen and on every follower’s device, marked with a . Use it for the caption or the caveat you want the room reading while you talk.

assumes the creator dealsclose by Julythe whole room reads this

Drive the main display

Got an edit link? Flip the remote from Present to Edit and turn on Drive main screen. Now panning and zooming on your phone moves the board on the big screen, so you can walk the room through a live board by hand with no stops authored at all. It only steers the camera; the board itself stays put until you actually edit it. Flip back to Present whenever you like.

47%EDITyou steeryour camera, live47%the room follows

Live controls

On each stop, the remote builds its controls from what’s in frame: a collapsed group becomes an Open button, a plain number becomes a what-if slider. Drag the slider and the number moves live for the whole room. It’s a temporary overlay, though: it snaps back when you switch stops or end the show, so the board file is untouched.

PAID +CREATORS+20 ptsdrag to nudge it,the room sees it moveOpentap to open it,on every screen

None of it is baked in: the walkthrough lives alongside the board, so you can keep editing the picture and it re-frames whatever it’s pointing at. Turn on Readable on large screens for a projector or a shared display.

Keys & touch

Undo CtrlZ
Redo Ctrl⇧Z
Duplicate CtrlD
Copy · Cut · Paste CtrlC · X · V
Select all CtrlA
Group CtrlG
Delete
Bring to front · back Ctrl] · [
Deselect Esc

Boards & saving

Each forecast is its own board, and the boards list is home base. Boards save themselves as you go (the little indicator in the corner shows the last save), and they live entirely in this browser.

Export any board to a file to back it up or move it to another computer, then import it on the other end. Ctrl⇧C copies the whole board as an image to drop into your notes or a write-up.

The board menu, top-left, has the per-board settings: light or dark and a few color palettes, snap-to-grid, snap-arrows-to-objects, Readable on large screens, copy-as-image, the keyboard reference, and a link back to this guide.

FAQ

What is NapkinBook?

NapkinBook is a free, local-first computational whiteboard: an infinite canvas where you wire data, math, and probability into a live model. Circles hold numbers, squares do the math, and wires carry a value from one node to the next, so a model reads as a diagram instead of hiding in spreadsheet cells.

How is NapkinBook different from a spreadsheet?

A spreadsheet buries the logic in cells and goes stale. In NapkinBook the logic is the diagram and it stays live: change one input and everything downstream recomputes the moment you let go. You get live recalculation like a spreadsheet with the readable structure of a diagram, and you can hand it to someone without it breaking.

How is NapkinBook different from Excalidraw, tldraw, or Miro?

Those are freeform canvases that do no math. NapkinBook computes, handles probability, and pulls in real data. A useful split: reach for Excalidraw when you just need to diagram, and reach for NapkinBook when you are actually thinking a quantitative problem through.

Is NapkinBook free?

Yes. NapkinBook is free and local-first, with no account and no paid tier. It runs in your browser and stores boards locally, so there is no sign-up wall and no usage metering.

Do I need an account, and is my data private?

No account. NapkinBook is local-first: your boards live in your browser and nothing leaves it unless you choose to share a board. Shared boards are end-to-end encrypted, so the sync server never sees your content.

Can I use NapkinBook on an iPad?

Yes. iPad with a stylus is a co-equal primary device. The pen draws, one finger drives the active tool, and two fingers pan and zoom. Touch targets in the app chrome are sized for fingers.

What can I forecast with NapkinBook?

NapkinBook draws probability natively: base rates, p10/p50/p90 fans, and Monte Carlo bands, so a forecast reads as a range rather than a single fabricated number. Common uses are runway and burn, market sizing, weighing a bet, and base-rate research.

Can I bring in my own data?

Yes. Import a CSV, pull from a URL or FRED, or query your data in SQL. A chart renders whatever node you wire into it, and the underlying numbers stay live, so updating a source updates everything downstream.