RecipeTables.

How to format a recipe as a table

The format was invented by Michael Chu at Cooking for Engineers in 2004, and he wrote every one of them by hand in a text editor. You can too — it takes about ten minutes once you know the rule.

Banana Bread

Makes one 9×5 loaf

prepPreheat oven to 350°F / 175°C
prepGrease a 9×5 inch loaf pan
1/2 cup / 115 g butter, softenedcreambeat incombinefold inbake 350°F / 175°C, 60 min
1 cup / 200 g sugar
2 eggs
3 ripe bananasmashstir together
1 tsp vanilla extract
2 cups / 250 g flourwhisk
1 tsp baking soda
1/2 tsp salt

Read left to right — each column combines what's behind it. Tap a step to check it off, or an ingredient to mark it as one you have.

The shape

Ingredients run down the left, one per row. Everything to the right is an operation. Each operation is a single cell, merged vertically across exactly the rows it combines — so the cell's height is the list of what goes into it. Read left to right and each column absorbs everything behind it, until the last column, where the dish becomes one thing.

That's the whole idea. A recipe is a set of parallel processes that merge; a merged-cell table is the natural picture of merging. You never look up an ingredient again, because the ingredient is physically attached to the step that uses it.

Building one, in order

1. List the ingredients in the order they're first used.Not the order the original recipe lists them — grouping matters more than tradition here, because things used together must sit next to each other to be spanned by one cell. This step is most of the work and it's where the recipe actually gets understood.

2. Write each operation as a short imperative. “cream”, “beat in”, “fold in”, “bake 175°C, 60 min”. Three or four words. If a step needs a sentence, it's two steps.

3. Merge each operation across its rows. In a spreadsheet: select the cells, Merge. In HTML: rowspan.

4. Put anything with no ingredients above the table. “Preheat the oven to 175°C”, “grease a 9×5 tin” — these are prep lines, not columns. Giving them a column breaks the merging logic for everything after.

The one rule

Every operation must either fully contain an earlier operation's rows, or not touch them at all. Never half-overlap.

If “whisk” covers rows 6–8, then any later step that touches row 7 must cover all of 6–8 as well. A step spanning 7–10 is impossible to draw — it would have to cut an existing merged cell in half — and it means the ingredient order is wrong, not that the format has failed you. Move the rows so the things combined together are adjacent.

This is the rule that separates a table that works from one that looks like a spreadsheet accident, and it's the only thing about the format that isn't obvious on sight. Two corollaries fall straight out of it:

  • The final operation spans everyrow. If it doesn't, something never got added to the dish.
  • Separate components — a cake and its frosting, a curry and its garnish — are simply blocks that stay disjoint until a late step covers both.

Doing it in a spreadsheet

Column A: quantities. Column B: ingredients. Column C onward: one column per operation, cells merged down. Turn off gridlines, add a light fill to the operation cells so the merges read as blocks, and it looks like the table above. Google Sheets and Excel both handle this fine; the format predates any tool built for it.

Or don't do it by hand

Doing this well takes real attention — reordering ingredients by first use is genuinely the hard part, and it's why there were only ever a few hundred of these tables in the world, all made by one person over twenty years.

That's what this site automates. Paste a recipe, a link, or a photo of a cookbook page, and you get the table back — including the nesting rule above, which is checked in code on every conversion and sent back for another attempt when it's violated. Why we think this format deserved automating.

See it on your own recipe.

Paste a link, the text, or a photo of a cookbook page — you get the whole recipe back as one table. Free, no account.