### Prefill from a bean product URL

Product page URL Overwrite already-filled fields

### Attach an Artisan .alog reference curve

Choose .alog file

#### Log a finished roast

Upload the actual roast's .alog to attach it to this plan — you can upload several. The LLM reviews each one in the background.

Upload finished roast(s)

View roast history →

### Ask the LLM about this plan

Answers are grounded in this plan's numbers, your learned pace, and the roaster behavior learned from your uploaded roasts.

### Your plans

Choose a plan to continue. Every edit is stored on this device first and then synced when online.

### Import / export

Load a plan from a JSON file

Save the current plan

### Settings & sync

is the active account. Plans are saved locally first, then synced to your account whenever you are online.

Temperature unit
°C °F

Changes how Machine Plan and Roast Log temperatures are shown. Plans are always stored in °C, so switching back is lossless.

Install Roast Planner from your browser menu for a focused workspace. Updates wait for your confirmation so an in-progress plan is never discarded.

Field guide

###

Timing framework: Rob Hoos, Cultivars: A Practical Guide for Coffee Roasters. Temperatures, bands and machine settings: your own logged roasts on the Hottop KN-8828B-2K+ — they transfer to no other machine.

## The Coffee

Why cultivar sets the clock

A roast plan is three durations laid end to end: drying + Maillard + development = the total roast. Cultivar is the one input that sets a time you cannot negotiate — when first crack lands. The seed's genetics fix how much sugar and acid it carries and how heat gets into it, so each cultivar browns and builds its aromatics on its own schedule. A Bourbon rushed to a 7:30 first crack tastes thin and papery no matter how well you handle the rest; a Gesha dragged to 9:00 goes savory and loses the florals you paid for.

That is why the FC anchor below feeds Time Ledger line 1 and everything else in the plan is a correction of seconds around it. Treat the cultivar on the bag as your best hypothesis, not a fact — labels are wrong often enough that the "After the Roast" section exists to correct them.

Coffee / lot Date Batch # Green in
g
From inventory lot
Optional — link a lot and the Roast Log can draw the green weight down when you charge.
Cultivar
Cultivar Origin
Group
Typica Bourbon Ethiopian Hybrid
FC anchor Ledger line 1 — the whole plan hangs from this. Use your cultivar's own row (autofills from the list), never a group average. Profile mm:ss|mm:ss|mm:ss ± Refine 0 the first time you roast this coffee. Afterwards, carry "One change next batch" here — this is how the plan learns.
± Dev modifier Your cultivar profile's third number minus 1:30 — autofilled; 0 for most cultivars. Feeds ledger line 9.

## Blend

Single-origin Blend
Why blends combine times, never temperatures

The drum has one heat setting and one clock — you cannot give 55% of the mass a different schedule than the other 45%. Times are additive, so a weighted average of two first-crack anchors is another valid time on the same clock. An average of two temperatures means nothing: first crack is a property of the chemistry, not a dial you set.

If one component is 60% or more of the batch, roast the whole batch as that coffee and let the rest ride along. If no component dominates, weight each anchor by its share. And if components disagree by more than about a minute at first crack, split-roast and blend after — one compromise profile serves neither half.

0% of 100%
How the components combine
Dominant (≥60%) Weighted average Split-roast, blend after
Resulting FC anchor Replaces 1.4 as ledger line 1 while "Blend" is selected. Resulting processing modifier

## Roast Target

Why processing moves development, not first crack

Processing changed the chemistry that browning starts from. Naturals and dark honeys keep far more free fructose, and fructose browns faster than sucrose — the same profile lands visibly darker. That is why natural and honey lots take 15–30 seconds less development and want a slightly earlier drop, and why processing never touches the first-crack anchor. Change development and drop, hold everything else, and the experiment stays readable.

Roast level is the one input that is purely your decision — and development is a bell curve, not a slider. Shorter development pushes acidity up, longer pulls it down; but too short reads sharp and astringent with no fruit behind it, and too long goes flat and dull. The pleasant region is in the middle and narrower than the acidity curve suggests, which is why the fix is always a 15-second step with a cupping in between, never a big swing.

Process
Washed Yellow / white honey Red / black honey Natural Anaerobic / CM
Dev modifier Washed 0 · natural / dark honey −0:15 to −0:30 · anaerobic a further −0:10 to −0:15. Feeds ledger line 8.
Roast level
Light Light-medium Medium Dark Very dark
Target weight loss
%
Light 11–13% · medium 14–16% · dark 17–18%. Your after-roast scale check against this is the honest measure of roast degree. Dev base Ledger line 7. Light 1:15–2:00 · medium 2:00–3:00 · dark 3:00–4:00. Development past 4:30 mutes any roast.

## Bean Condition

Why bean condition is worth seconds, not a new plan

Moisture, density and screen size change how much energy the plan costs, not its shape. Wet greens (over 11.5%) stall as they near 100 °C while water boils off — expect the flat spot and don't panic-add heat. Dense, high-grown seed tolerates a hard early push; soft, low-grown seed gives you defects instead of speed. Very large beans scorch outside while the core lags — the safe way to go faster is more airflow at a lower inlet temperature, never more burner.

None of these auto-adjust the ledger, and that is deliberate: they inform the ±0:15 judgment in Net correction and your heat/fan choices, nothing more. Don't have lab numbers? Leave moisture and density blank — record only evidence you actually have.

Moisture
%
Density
g/L
Altitude Screen
Sweet spot
Narrow Medium Wide
± Net correction Rarely more than ±0:15, and only for an observation you can name — moisture and density never create this number automatically. Feeds ledger line 3.

## Machine Plan

Why the rate of rise must fall, and never touch zero

A bean that is still gaining heat, but gaining it more slowly, is moving through its reactions in order. Two shapes break that. The crash: RoR falls off a cliff just after first crack, when the exotherm ends and an oversized heat cut lands at the same moment. The bake: RoR flattens toward zero, the bean sits at temperature without progressing, and the cup goes flat, papery and sweetness-free — nothing after the drop rescues a bake.

So the rule is: decline steadily from the post-turning-point peak, through small frequent heat cuts rather than a few big ones, and stay ahead of the machine's roughly 60-second lag — what you change now shows up a minute from now, so cut before the exotherm, gently. If a phase would need a rate outside the proven bands to hit its milestone, the plan is not reachable — fix the ledger, not the roaster.

Temperatures & rate-of-rise
Charge
0:00
°C
Turning point
°C
Yellow
—
°C
First crack
—
°C
Drop
—
°C
Actuator schedule (planned)

The timing of your first heat cut is the main first-crack lever — later cut, earlier crack. Say why you make each change; that's what makes this log readable next week.

Roast day Everything above is decided before you charge. Fill in from here down at the machine, then after cupping. Print takes the plan with you.

## Roast Log — Plan vs. Actual

during the roast
Record what you observed, never what you planned

A planned milestone written into the log as though it happened destroys the only evidence you have. If you never actually heard first crack, write that down — "not heard, called at 8:10 by smell" is a useful record. "8:00" because that was the plan is worse than nothing, because next batch you will trust it. The plan column stays fixed beside your entries precisely so the gap is visible. The gap is the data.

Charge
0:00
Turning point
—
Yellow
—
First crack
—
Drop
—

After the roast, upload the .alog on the Roasts page — weights, colour, cup notes, and "one change next batch" now live there with the LLM review.

## Time Ledger

Drying + Maillard + Development = the whole roast. Cultivar sets first crack; process and level set development.

1.4Cultivar / blend anchor—
1.6± Refinement—
5.6± Bean condition—
6.4± Batch size
Subtotal (before pace)—
× Machine pace×1.00
First crack—
Yellow—
Maillard—
informational — not summed into development
4.3Development base—
3.2± Processing modifier—
1.7± Cultivar dev modifier—
Development—
Drop (end of roast)—

## Sanity Checks

Drying share — informational, target 43–51% Derived from the development ratio (yellow is 0.56 × first crack, not entered independently) — this can't fail on its own. High = late yellow, browning starved · low = rushed before internal pressure built.
Maillard share — informational, target 33–39% Same derivation as drying share — informational, not an independent check. Low = too small a browning window for sweetness and complexity.
Development ratio — target 12–20% under 12% = under-developed — sharp, astringent acidity with no fruit behind it
Development ceiling — under 4:30 over 4:30 mutes any roast — nothing good is past this line

## The Curve

plan reference
Manual Roast Plan — Worksheet Sheet 1 of 2 · Plan | Hottop KN-8828B-2K+
THE COFFEE[n.n] = field ID · cited everywhere it feeds a number
0.1Coffee / lot |0.2Date |0.3Batch # |0.4Green in g
11.1Cultivar |1.2Group Typica Bourbon Ethiopian Hybrid |1.3Origin
1.4FC anchor |1.5Profile mm:ss|mm:ss|mm:ss |your cultivar's row, Step 1 — not a group number
1.6± Refine → ledger 2 0 first cook, else Step 12 |1.7± Dev mod → ledger 9 Step 1's profile 3rd # −1:30
33.1Process washed yellow/white honey red/black honey natural anaerobic/CM |3.2Dev mod → ledger 8 Step 3 table
44.1Roast level light light-med medium dark very dark |4.2Target WL % |4.3Dev base → ledger 7
55.1Moisture % |5.2Density g/L |5.3Altitude |5.4Screen |5.5Sweet narrow med wide
5.6± Net correction → ledger 3 judgment, rarely >±0:15
2 · BLENDskip if single-origin → Step 2
2.1This lot is: single-origin — skip this box blend or community lot

2.2Component | Group | Process | Share % | FC anchor
--- | --- | --- | --- | ---

2.3Method: dominant (≥60%) weighted average split-roast, blend after
2.4Resulting FC anchor → ledger line 1 |2.5Resulting processing modifier → ledger line 8
6 · TIME LEDGERmethod & why → Step 6

1 | Cultivar/blend anchor from 1.4, or 2.4 if blend | —
2 | ± Refinement — from 1.6 0 first cook, else Step 12 | —
3 | ± Bean condition — from 5.6 | —
4 | ± Batch size vs. Step 9 reference weights 225 g ≈ 1:30–2:00 later than 200 g |
| Subtotal (before pace) | —
| × Machine pace learned from your own roasts, else ×1.00 (reference) | ×1.00
A | FIRST CRACK | —
| B · YELLOW / MAILLARD — informational only. NOT summed into C.
5 | YELLOW = A × 0.56 | —
6 | MAILLARD = A − line 5 | —
| C · DEVELOPMENT — sum ONLY rows 7 + 8 + 9
7 | Development base — from 4.3 | —
8 | ± Processing modifier — from 3.2, or 2.5 if blend | —
9 | ± Cultivar dev modifier — from 1.7 | —
C | DEVELOPMENT = 7 + 8 + 9 only | —
D | DROP (end of roast) = A + C | —

7 · SANITY CHECKSa fail sends you back to box 6 → Step 7

Check | Should be | Yours | Pass? | Failure means
--- | --- | --- | --- | ---
Drying share (informational) | 43–51 % | — |  | can't fail on its own — see * below
Maillard share (informational) | 33–39 % | — |  | can't fail on its own — see * below
Development ratio | 12–20 % | — |  | under 12 % = under-developed
Development ceiling | < 4:30 | — |  | over 4:30 mutes any roast

* Drying share and Maillard share are always in-band whenever Development ratio passes — yellow is calculated as a fixed 56% of first crack, not measured independently, so these two rows can't fail on their own. Only Development ratio and Development ceiling are real pass/fail checks.

Roast & Record Sheet 2 of 2 | coffee:
8 · TEMPERATURES & RATE-OF-RISE→ Step 8

Milestone | Time | °C | Your logged band
--- | --- | --- | ---
Charge | 0:00 |  | 133–195 °C
Turning point |  |  | 77–100 °C @ 0:47–1:15
Yellow | — |  | 148–166 °C
First crack | — |  | 176–187 °C
Drop | — |  | 183–197 °C light

9 · ACTUATOR SCHEDULE (planned)→ Step 9

Time | Heat % | Fan % | Expected BT | Why this change
--- | --- | --- | --- | ---

10 · THE CURVEplan drawn live · reference from an .alog if attached → Step 10
11 · AT THE MACHINE — PLAN vs ACTUAL→ Step 11

Milestone | Plan time | Actual time | Actual BT | Note
--- | --- | --- | --- | ---
Charge | 0:00 |  |  |
Turning point | — |  |  |
Yellow | — |  |  |
First crack | — |  |  |
Drop | — |  |  |

12 · AFTER THE ROAST→ Step 12
Green in g |Out g |Weight loss % |Actual DTR %
Colour WB/GR |Rested days |Brew ratio |Method
Cup notes
One change next batch |What would prove it wrong