Roast Data - Python

I started using Python to analyze my roasts (load, calculate, clean up, display data) as I teach myself a bit of data analytics / data science. Cleaning and rearranging data was the bulk of my effort in the last few weeks. I’m slowly building my skills.

Luckily, I’ve been mostly consistent with ~500g roasts. There are always outliers and reasons for deviation but I’m starting to see a few nice trends and am having fun with it. Nothing wildly new. But clearer than tracking multiple overlays. For example:

Anyone else fancy their own roast data analytics?


Nice work!

I did a series of “unmanaged” roasts to investigate the effect of independently varying preheat, power, fan, and drum settings. Each was a 325g batch of Brazil Cerrado roasted without changing settings during the roast, all dropped at 218C IBTS. Not as fancy as your python study, but it was interesting to see for example how much increase in power is required to compensate for an increase in fan speed, or how much a 10C increase in preheat shortened time to FC. The results give you some intuition to use in real roasting where you’re changing settings during the roast and the situation becomes more complicated.


Thanks, this is cool.

Knowing air temperature and humidity are important for repeatability too, I’ve noticed.

1 Like

I agree there can be a relation but it’s likely minor and multi dimensional that isn’t seen here. As long as you have your machine in a long pre-heat, there are many other important factors that effect early roast parameters:


Still just playing with linear regression. Confirming that we should have tighter correlations with data points that are temporally close, especially early in the roast before you start mucking with settings. e.g. Strong positive correlation with charge temps and turning point temps.

Medium to strong negative correlation with TP temps and FC.

1 Like

Hi ryweller,

Are all your data posted above from different roasts of the same beans?

no not of all the same bean. I typically am working on 10lbs of African beans, but they vary between washed and natural, Ethiopian and Kenyan.

They way I have it setup I can easily filter some results to specific Ethiopian naturals. However I’ve been on the road for the last 3 months and haven’t roasted or played with this for a while.
In September I’ll get back at it with more results.

No doubt that plays a part in the non-linearity you’re seeing (you saw, 6 months ago :slight_smile: ).

It would be interesting to re-map the relationships, on a per-bean basis?

I hope the road is being kind to you.