Decaf Project: S&W Roasting
This is a followup to my previous cupping; this time around I evaluated the Decaf Project samples for S&W Roasting.



I made some slight changes to my protocol from last time to try to eliminate my biases. First off, I started out by covering the labels with blue painter’s tape, and over the next couple of days, every time I walked by my coffee station I’d randomly shuffle the bags around, with them facing away from me.
Then, before I started the cupping, I used a random sequence generator to choose which order to place the bags, numbering them from 1-4.
Finally, I wrote a quick Python script to generate my pairing orderings, giving each one a score to reduce the number of coffees which were in common between each step. I ran this several times in order to generate three sets of pairings to run through in order.
When I ground the coffees I accidentally ground them espresso-fine rather than pourover-level as I had intended to do. During the actual cupping I did not notice any extra grit but it did mean that there was no crust to be removed after everything settled to the bottom. This may have affected the overall texture but everything was affected in the same way, if so.
Initial observations



Coffee #1 had significantly more chaff than the other three. I was also struck by how much lighter it was in color to the other three. (Unfortunately this doesn’t quite come across in the photo above.)
After brewing them I noticed that the foam on #4 was much lighter in color than the other three, which were all roughly the same as each other; this alone was a pretty big clue that 1 was probably non-decaffeinated.
Brews 1 and 3 were a bit darker, 2 and 4 a little lighter.
Smell-wise they were all identical, with some nice rich chocolate and nutty notes to them.
I randomly tasted them in isolation and felt that 1 was sweet and nutty, 2 was a little more acidic, 3 was a little more nutty, and 4 was a little more acidic with slightly bitter notes. 1 and 3 were pretty similar to one another.
At this point I had my suspicions about which was which: it seemed pretty likely to me that 1 was non-decaf and 4 was subcritical CO2.
Tasting pairs
I ended up only doing two of the three rounds of pairings. Here is the raw data I obtained:
| A | B | Winner | Notes |
|---|---|---|---|
| Round 1 | |||
| 2 | 4 | 2 | 4 more bitter |
| 3 | 1 | 1 | 1 richer and nuttier |
| 4 | 2 | 4 | 4 is richer and more complex, 2 tasted sour |
| 1 | 3 | 3 | 3 was more rounded |
| 3 | 4 | 3 | 3 was more rounded, less bitter |
| 1 | 2 | - | Too close to tell |
| 4 | 3 | 3 | 3 was more complex |
| 2 | 1 | 2 | 2 was sweeter and less acidic |
| 2 | 3 | 2 | 2 was more balanced |
| 4 | 1 | 1 | 1 was much fruitier |
| 3 | 2 | 3 | 3 was rounder |
| 1 | 4 | 1 | 1 was rounder and more balanced |
| Round 2 | |||
| 4 | 2 | 2 | 2 had more complex notes |
| 1 | 3 | 3 | 3 was nuttier |
| 2 | 4 | 2 | |
| 3 | 1 | 3 | |
| 3 | 2 | 3 | |
| 1 | 4 | 1 | |
| 4 | 3 | 3 | 3 was more complex, 4 was more bitter |
| 1 | 2 | - | |
| 3 | 4 | - | |
| 2 | 1 | 2 | 1 was more bitter |
| 2 | 3 | 2 | 2 was sweeter |
| 4 | 1 | 1 | |
So, with this, I used the same scoring system as before: +1 point for the one I preferred, -1 point for the one I didn’t like as much, and 0 in case of a tie. Rather than do a bunch of manual fiddling I wrote another quick Python script to tally up the scores, which are as follows:
- Coffee 3: 5
- Coffee 2: 4
- Coffee 1: 0
- Coffee 4: -9
The coffees revealed

After this I peeled off the painter’s tape and discovered that coffee 1 was non-decaf, 2 was Ethyl Acetate, 3 was Swiss Water, and 4 was subcritical CO2.
Which is to say that even after all of my randomization and anonymization (most of which was redundant anyway and only was just in case I subconsciously remembered which bag was which), I somehow managed to end up with the exact same ordering as last time1. (And that my suspicions about 1 and 4 were correct!)
Fortunately, this time the actual tasting ordering was objectively balanced so I can be pretty sure that there’s no ordering bias involved.
That said, this time my results were very different; I actually preferred both Swiss Water and Ethyl Acetate over non-decaf. Subcritical CO2 was still by far my least-favorite, though.
So, for this particular roast, I have a weak preference for Swiss Water over Ethyl Acetate, reversed from the last time around. My tasting notes are pretty similar this time as last: I found that Swiss Water kept more of the flavor notes and a more complex profile, and at least with S&W’s roasting style that worked out in its favor, although this time by the slimmest of margins.
It’s surprising to me that subcritical CO2 seems to affect the flavor the most, and in the most detrimental manner compared to the others. It would be super interesting to me to compare subcritical and supercritical decaffeination, which are actually very different processes from one another (despite both using CO2 as their solvent). Unfortunately, supercritical CO2 simply isn’t feasible for small-batch roasters, even on the relatively large scale of this project, so it seems unlikely that such a test will ever come to pass.
This whole thing was super educational, though! And my ultimate conclusion from last time is unchanged: I am totally happy with both Swiss Water and Ethyl Acetate as decaffeination processes, and it really comes down to the processor to select the right process for the crop, and the roaster for optimizing their roast around the resulting bean’s characteristics.
Which is, honestly, how it always has been.