What happens when you use accumulated heat exposure to decide when to drop a roast? A retrospective look at production data from GoodBeans.
Roasting coffee is usually discussed in terms of time and temperature. We talk about how long a roast takes, when first crack begins, how quickly the temperature rises, and what temperature the beans reach at drop.
Those measurements matter. But none of them, on its own, describes the complete thermal experience of a batch.
Two batches can reach the same final temperature by different paths. One might spend longer at lower temperatures; another might run hotter earlier and reach the endpoint sooner. If those batches are dropped using only a clock or a target temperature, they can have quite different thermal histories.
At GoodBeans and RaccRoasters, we’ve been exploring another way to think about the endpoint: accumulated heat exposure.
Our software, RoastRacc, includes a system we call HeatMatch. Rather than asking only how long a roast has been running or whether it has reached a particular bean temperature, HeatMatch tracks a temperature-weighted dose and signals when that dose reaches its target.
The idea is straightforward: a minute at a higher temperature should count for more than a minute at a lower temperature.
We wanted to see whether that approach could help us produce more consistent batches in everyday roasting.
What HeatMatch measures
HeatMatch starts counting once the beans pass 360°F, provided this happens after the first two minutes of the roast. It accumulates a temperature-weighted value from there to the drop. As bean temperature rises, each additional second contributes more to the dose.
The temperature sensitivity is controlled by a factor. Our current working setting is 1.3×. In practice, this means the dose accumulates faster at higher temperatures, rather than every second counting equally.
The idea is grounded in the broader science of roasting kinetics. In their 2016 paper, Kinetics of Mass Loss of Arabica Coffee During Roasting Process, Vargas-Elías and colleagues studied how the rate of mass loss in Arabica coffee changes with roasting temperature. They modelled the relationship using Arrhenius kinetics and reported an activation energy of 52.27 kJ/mol under the non-isothermal roasting conditions they studied.
At typical roasting temperatures, that activation energy corresponds to the rate of mass loss rising roughly 1.3× for every 10°C (18°F) — very close to the setting we arrived at from our own roasts. Their rate was measured against roaster temperature rather than bean temperature, and mass loss is mostly moisture leaving the bean, so we treat it as support for the scale of the weighting, not as a calibration.
We've settled on 1.3×. On our roasts it usually calls the drop within a second or two of 1.5×, and the results have been consistent.
The paper does not prescribe a 1.3× setting for a production roaster, nor establish that one factor describes every chemical and physical change during roasting. We use the research as a scientific basis for the approach, then evaluate the setting against our own production results.
A production example: two Volcano batches
One useful comparison came from two consecutive Volcano roasts on November 1, 2026.
Both batches used the same master profile, Volcano V-v3, with 2.0 kg of green coffee. Both ran HeatMatch at 1.3×.
The first batch was a cold-start roast. It ran hotter earlier in the roast and reached its HeatMatch drop cue sooner than the second batch.
| Measurement | v1 — cold start | v2 |
|---|---|---|
| Drop time | 13:16 | 13:39 |
| Bean temperature at drop | 433.1°F | 434.0°F |
| BT rate of rise at drop (30-second fit) | 12.9°F/min | 14.5°F/min |
| First crack | 9:04 | 9:15 |
| Second crack | 12:46 | 13:14 |
| Time after second crack | 30 sec | 25 sec |
| Roasted weight | 1,658 g | 1,659 g |
| Weight loss | 17.10% | 17.05% |
| Whole-bean Agtron | 47 | 47 |
| HeatMatch dose at drop | 99.9% | 100.1% |
The drop times were 23 seconds apart, yet the two batches finished with almost identical weight loss and the same whole-bean Agtron reading.
That is encouraging. The batches did not follow identical temperature paths, and they did not reach the endpoint at the same time. But the heat-weighted cue brought them to very similar measured outcomes.
It is one pair, not proof of a general rule. Still, it is exactly the kind of production comparison that makes the approach worth investigating.
What would other drop rules have done?

We replayed several alternative drop rules against the recorded bean-temperature curves.
One of them deserves a quick introduction. Artisan, the free and widely used roast-logging software, includes a measure called AUC (area under the curve), which Artisan describes as "an indicator of its total supplied energy." It adds up how far the bean temperature sits above a base temperature for every second of the roast. Picture shading the area under the bean-temperature curve: the hotter the roast runs, and the longer it runs, the bigger that area gets. Roasters use AUC to compare batches, and Artisan can show a guide line predicting when a roast will reach a target AUC, so in practice it can work as a drop cue, much like HeatMatch.
Like HeatMatch, AUC is a way of measuring accumulated heat. The difference is in how each second counts. AUC adds temperature in a straight line, so 10 degrees above the base always adds the same amount. HeatMatch counts each second more steeply as the beans get hotter. Out of the box, Artisan starts counting at the turning point with a base of 212°F; those are the settings we used here, since they are what most users will see.
The other rules are simpler: drop at the master profile's clock time, or drop when the beans reach the master profile's drop temperature.
| Drop rule | v1 | v2 |
|---|---|---|
| Actual HeatMatch 1.3× cue | 13:16 | 13:39 |
| Artisan default AUC | 13:28 | 13:41 |
| Master clock time | 13:45 | 13:45 |
| Master bean temperature | 12:54 | 13:16 |
The comparison is revealing.
Artisan’s default AUC uses a much broader part of the roast than HeatMatch, which only starts counting at 360°F. Because AUC includes the earlier part of the roast, it responds differently to the cold-start batch’s hotter early trajectory. It would have held v1 until 13:28 — about 12 seconds later than the actual HeatMatch cue.
This is not just a result from the Volcano pair. Across 52 production roasts we replayed, Artisan’s default AUC typically called the drop about six seconds away from HeatMatch, and up to about fifteen seconds on roasts that ran hot or cool.
The master clock would have held both batches until 13:45. That would have meant holding v1 for another 29 seconds after its actual drop cue. At its end-of-roast rate of rise, that is roughly 6°F more and nearly a minute into second crack. In practice that would have meant a much darker roast, pushing toward the point where oily beans and chaff become a fire risk in the roaster.
A target bean temperature would have done the opposite: it would have cued both batches earlier than HeatMatch.
In this example, the choice of endpoint rule makes a meaningful difference.
What might have happened if v1 had followed Artisan’s default AUC?
We can estimate what a later drop might have meant for v1, but it is important to be clear: no batch was actually dropped at 13:28.
At the end of v1, the bean-temperature rate of rise was approximately 12.8°F per minute. An additional 12 seconds would therefore have added roughly 2.6°F, putting the estimated drop temperature near 435.7°F.
Using rough relationships observed across other roast days, that could have meant weight loss around 17.35% and a shift from Agtron 47 to roughly 45–46 (slightly darker).
There is another consideration. At 13:28, v1 would have been about 42 seconds into second crack, compared with 30 seconds at its actual drop. The relationship between end temperature and colour is not necessarily linear once second crack is underway. A reasonable working estimate is that the batch could have finished 2–4 Agtron points darker than v2.
These are estimates, not measured results. The relationships used are approximate, and some of the underlying comparisons come from lighter coffees. They should be treated as hypotheses to test, not as predicted outcomes with established accuracy.
What this does — and does not — show
The Volcano pair supports a useful practical observation:
A heat-weighted endpoint can accommodate differences in roast timing while producing closely matched measured outcomes.
It also shows why a clock alone may not be enough. A fixed master time would have ignored the fact that the first batch ran hotter earlier in the roast. The wider replay points the same way: across those 52 roasts, drops landed up to about half a minute either side of the master's clock time, and same-coffee batches showed no trend in weight loss because of it.
But the comparison does not prove that HeatMatch's exponential weighting is better than every other way of accumulating temperature. AUC is configurable, and with a different base temperature and starting point it can behave much more like HeatMatch.
Nor does matching weight loss and whole-bean colour prove that two batches taste identical. Those measurements are useful indicators, but they do not capture every aspect of flavour.
Our retrospective analysis of production roasts has been useful for finding patterns and identifying promising comparisons. It is not a controlled experiment: most of the batches were dropped using HeatMatch, so we cannot know exactly what their outcomes would have been under alternative drop rules.
The next step is to design comparisons where batches are deliberately dropped using different rules, while keeping the coffee and roast conditions as consistent as possible. We also want to include blind tasting alongside weight loss and colour measurements.
Why we're exploring this
GoodBeans is a working roastery. We are not developing roast-control software in isolation and then looking for a place to use it. RoastRacc grew out of the practical problems of running production, and its value is measured first by whether it helps us make better coffee and run the roastery more effectively.
HeatMatch is one example of that process: take a problem we encounter in production, build a tool to address it, and then use real batches to find out whether it works.
We don't think a single formula removes the craft from roasting. The operator still chooses the coffee, develops the profile, watches the roast, and evaluates the result. The software gives us another way to make the endpoint more responsive to what actually happened during the roast.
For now, the results are promising rather than conclusive. But the Volcano pair, and the roast days behind it, give us a good reason to keep testing the idea.
The goal isn't to make every roast take the same amount of time. It's to make the coffee more consistent, even when the roast doesn't.
References
Artisan. (2016). Area under the Curve (AUC). artisan blog. https://artisan-roasterscope.blogspot.com/2016/11/area-under-curve-auc.html
Vargas-Elías, G. A., Corrêa, P. C., de Souza, N. R., Baptestini, F. M., & de Melo, E. C. (2016). Kinetics of mass loss of arabica coffee during roasting process. Engenharia Agrícola, 36(2), 300–308. https://doi.org/10.1590/1809-4430-Eng.Agric.v36n2p300-308/2016