Coffee Roast Tracker

Create a roast, press Start, then log temp/fan/heat anytime (30s cadence works great). Export CSV for roasts you want to keep outside the app; import CSV replaces this session. Recipe curves ship in bundled-recipes.json plus anything you save or import.

Roast setup

Saved
When you’re ready, tap Roast mode (top right) to enter the HUD, then press Start.

Roast profile

Choose a built-in profile or one you imported as JSON (curve, temps, charge fan/heat). Tune target development ratio for this roast. Pick a profile and dev ratio, then start roasting. Open Profile files & backup when you need JSON or library tools.
Profile defaults
Default dev ratio: % (temps and charge fan/heat follow this profile; edit under Advanced)
Coach bias
Auto leans playbook on temp-led / inherit-only ladders, and ladder coach when many rows spell out fan/heat. Bias phases uses one SR800 playbook (with Setup footers)—SR800 and about 190–240 g match best; otherwise ladder coach fills in. Bias recipe steps keeps milestone coach as today. Saved per roast, not inside the recipe file.
Profile files & backup

JSON import and bulk export are easier on a larger screen; everything here still works on your phone.

How target development ratio is used
Enter the percentage of total roast time you want to spend after first crack until drop (cooldown). Example: at 15%, if first crack lands at 10:00 from charge, the model treats total roast length as about 10:00 ÷ (1 − 0.15) ≈ 11:45, so development from first crack to drop is about 1:45. After you mark First crack, the readouts below show that target end time, target development duration, and—while you are still in development—time remaining to the target end. Actual dev ratio is computed from your logged first crack and cooldown times after the roast.
Target end (cooldown): (from first crack + ratio above)
Target dev time: (first crack → target end)
Remaining to target end: (after first crack, before cooldown)
Actual dev ratio: (after roast: first crack → cooldown vs total time)
Advanced

Roast timer

00:00
Not started

Phases

Log readings

Tip: Enter or the keypad Go/Done key logs a row (same as Log reading). Use fan/heat 1–9.
RoR (last interval): (°F/min from last two temp readings)
Time Temp Fan Heat Note
Save vs Export

Save to my library… stores the recipe in your local library (this browser on this device).

Export recipe (.json) (under Advanced) downloads the selected recipe. Export my recipes (.json) downloads only recipes you imported or saved here (what is stored for this browser), in one file — not the built-in starter curves.

Importing that bundle updates matching saved recipes by id (no extra prompt); it ignores any starter-id rows if an older file included them.

Remove recipe… deletes an imported or saved recipe from this browser only. Starter recipes cannot be removed.

Use Import recipe (.json)… to add a single recipe file or a library bundle (the file from Export my recipes (.json)) to your library on this device.