Site Logo
WellAged.dev

Methods & reference

How the numbers on each roast page are calculated, and the lookup tables that drive the expected-range panel.

Every roast page computes derived values from a few raw inputs and compares them against industry-consensus targets. This page documents the formulas and the lookup tables so you can verify any number on the site by hand — and so the rules live in one editable place, not scattered through templates.

Session conditions

Two ambient readings logged at roast start — not used in any formula today, but tracked because they explain session-to-session variation in FC timing:

FieldEffect
ambient_fHigher temp → earlier FC; compounding heat in back-to-back sessions
ambient_rhHigher RH → beans carry more moisture → longer drying phase → FC comes later

The two effects can partially cancel: a hot, humid day (91°F / 65% RH) will pull FC earlier via heat but push it later via moisture. Once you have 10+ roasts logged, compare FC times against these readings to see which variable dominates on your machine in your space.

The four raw inputs

Punch these into Tina; everything else is derived.

FieldWhat it isWhen to fill
green_weight_gWeighed grams before the roastPre-roast
roasted_weight_gWeighed grams after coolingPost-roast
time_to_fc (mm:ss)Elapsed time from Start to the first audible popAt first crack
total_time (mm:ss)Elapsed time from Start to when you hit CoolAt drop

Derived values

The single-page panel computes these automatically; you can match them with a calculator.

QuantityFormulaWhy it matters
Weight loss %(green_weight_g − roasted_weight_g) / green_weight_g × 100Rough roast-development proxy. Heavier loss = more developed.
Development timetotal_time − time_to_fcHow long the bean spent post-first-crack. Drives sweetness and body.
DTR (development time ratio) %development_time / total_time × 100Share of the roast spent in development. Genuine Origin targets 16–20% across origins; > ~24% risks baked / flat cup (Rao).

Worked example

For a roast with green_weight_g: 227, roasted_weight_g: 193, time_to_fc: 10:30, total_time: 12:45:

  • Weight loss: (227 − 193) / 227 × 100 = 15.0%
  • Development time: 12:45 − 10:30 = 2:15
  • DTR: 135s / 765s × 100 = 17.6%

Target level reference

These ranges drive the “Expected” column in the panel. They are starting points pulled from industry sources, not Behmor-specific. After 10–15 logged batches, calibrate against your own data and edit the values in data/roast_guidance.yaml — every page on the site picks up the change automatically.

LevelWeight loss %DTR %Drop triggerFlavor profile
light12–14%16–19%15–45s after FC starts, before any oil sheenBright acidity, floral/fruit forward, origin-distinct
light-medium13–15%17–20%30–60s into development, before FC fully winds downBalanced acidity, sweetness emerging, origin still legible
medium14–16%18–22%End of FC through 1:30–2:30 of development, before SCCaramel / cocoa, balanced body, low acidity
medium-dark16–18%19–23%First few snaps of second crackRoasty notes appearing, body forward, less origin character
dark18–20%20–24%Rolling SC, before oil floods the surfaceSmoke / spice / bitter, body dominant

Behmor 1600 Plus weight setting

The “weight” button on the Behmor sets the heating program. Match it to your actual charge — except very small batches, where overshooting one class keeps the roast from stalling.

Actual chargeWeight buttonWhy
¼ lb (≈113 g)½ lbOne class over matched. Forum-suggested for very small charges to avoid stalling. The official guide says use the matched (¼ lb) setting; try both.
½ lb (≈227 g)½ lbMatched. Manual's intended setup for this batch size.
1 lb (≈454 g)1 lbMatched. Max-comfort batch on the 1600 Plus.

Safety — dark roasts on the Behmor 1600 Plus

The Behmor 1600 Plus manual explicitly warns against Vienna, French, and Italian dark roasts on this machine. Oily beans shed oil into the chaff tray; under repeated dark-roast heat, that residue can ignite. Stop the roast before a heavy oil sheen develops on the bean surface. The “dark” row in the level reference above is included for completeness — it is not a target this machine is built for.

Behmor startup sequence

The Behmor 1600 Plus requires a short preheat before loading beans, and has a mid-roast safety cutoff you must acknowledge.

Preheat (first roast only): With the drum out, select 1 lb + any profile, press START, let run for 1 min 30 sec, then cancel. This warms the chamber. For back-to-back roasts the drum is already hot — skip the preheat and cool between batches instead (see playbook for each roast).

75% safety shutoff (every roast): At 75% through the program, the display counts down from 0:30. You must press START to continue. If you miss it, the machine switches to cool mode immediately — mid-roast. Stay within earshot of the machine at all times.

Profile selection

Profile P5 is the most aggressive and the default for almost all home batches on the 1600 Plus. P1–P4 trade total energy for longer drum time; useful only if your roasts are coming in too fast even at the matched weight setting.

Sources

Caveats

Most published targets — the 8–9 min FC benchmark, DTR ranges, the temperature thresholds — come from drum roasters with bean-probe feedback. The Behmor 1600 Plus runs a fixed time/heat program and is roasted by ear. Treat the numbers as the shape you’re aiming for, not setpoints to dial in directly. The reference values on this page get more honest the more of your own batches you log.