Understanding Color Measurement in Coffee
Color is the most-used and least-understood number in coffee.
Roasters set targets by it, buyers judge by it, baristas argue about it, and almost everyone treats it as a single fact about a coffee; a
fixed value sitting inside the beans, waiting to be read. From that one assumption, a whole chain of frustration follows. Two devices give two numbers, so one must be broken. A reading shifts by a few points between samples, so the meter must be unreliable. Someone's roast delta looks
different from yours, so one of you is roasting wrong.
None of that is true.
The purpose of this guide is to replace the
single most damaging idea in coffee color measurement, that color is one fixed value, with an accurate mental model, and then to give you the procedure and interpretation skills to act on your readings with confidence. Once you understand what a color number actually represents, the disagreements stop being alarming and start being useful.
Here is the idea the entire guide rests on: a color reading is not a property you extract from a coffee. It is a value that a method produces.
That method is a bundle of choices: the light source, the wavelength of light, the angle it strikes and is read from, which part of the
sample is seen, how the sample was ground and/or packed, and the math that
turns raw signal into a number. Change any one of those and the number
changes, legitimately. When two instruments disagree, they are usually
giving two correct answers to two slightly different questions. When a
reading moves between samples, it is usually telling you something real
about the coffee or your preparation. The number was never the point.
The method behind the number is.
By the end of this guide, you should be able to prepare a sample so it reads consistently, choose a grind that fits your use case, read a full distribution instead of a lonely average, understand your roast
delta and standard deviation without borrowing someone else's targets,
translate readings across devices honestly, and use live color tracking to roast by color rather than guess at it.
Part 1 — What "color" actually is
Before any instrument enters the picture, color is already a slippery thing, because color is not a property of an object. It is an
interaction. Light strikes a surface, some of it is absorbed, and the rest bounces back. What returns is what we call color. This means color is never produced by the coffee alone. It is produced by the coffee and the light together, in a particular environment, seen from a particular angle.
In complete darkness, color doesn't exist.
That has direct, physical consequences you have already witnessed, even if you have never taken notice. The same roasted beans look one way on a stainless bench under shop lights, another way held up to a window, another way on a dark cupping table. Nothing about the beans changed. What changed was the light source and its color temperature, the angle the light arrived and the angle you viewed from, and the surrounding environment bouncing stray light back into the scene. Warm light flatters, cool light hardens, a colored wall nearby tints everything, a shadow deepens a roast that is actually even.
This is exactly why judging roast by eye against reference tiles is unreliable. Visual assessment drifts with illumination, sample size, the color of whatever surrounds the sample, and the angle of observation. Trained people do it, and it has value, but it cannot be a shared standard because no two people are looking under identical conditions, and no one person looks under identical conditions twice.
Instruments exist to solve precisely this problem. A color meter fixes the variables that wreck human judgment by supplying its own controlled light, holds a fixed geometry between light and sensor, and
reads inside a shielded or standardized space so the room can't interfere. That control is what makes a meter repeatable where an eye is not.
But here is the catch that produces most of the confusion in this field, and it is worth stating slowly: different instruments fix those variables at different settings.
One meter lights the sample with near-infrared at a steep angle.
Another floods it with a daylight-simulating source and reads diffusely.
Each is rigidly consistent with itself. Neither is obligated to agree with the other, because they are not holding the same conditions constant. An instrument being internally consistent and two instruments
agreeing are completely separate things, and expecting the second because you were promised the first is the root of nearly every "my device is inaccurate" complaint.
Part 2 — The three ways coffee color gets measured
There isn't one way to measure coffee color. There are three standardized and fundamentally different measurement philosophies that apply different physics to answer different questions.
Near-infrared reflectance — the Agtron family
The oldest and most established approach in coffee shines near-infrared light, in a band around 850 to 940 nanometers, onto the sample, measures how much reflects back, and converts that to a scale from 0 to 200. The logic is chemical. As coffee roasts, the Maillard reaction and caramelization produce melanoidins and other brown
compounds that absorb this infrared light. A darker roast has more of them, absorbs more, reflects less, and reads as a lower number. A lighter roast reflects more and reads higher. The Agtron scale is named
for the instrument that popularized this approach, and a whole category
of devices works this way.
The infrared band these devices use is invisible to the human eye.
An Agtron-style number is not a description of how the coffee looks. It is a measurement of roast chemistry, originally tuned to track the caramelization of sugars, that happens to correlate strongly with roast development. Because it reads chemistry under its own controlled infrared light rather than visible appearance, it is largely immune to the ambient-lighting problems of Part 1. It answers "how far has this roast developed," not "what shade does this look like."
Several DiFluid devices live in this family and execute it differently. CoffMeter A1 is a single-band near-infrared meter that
returns one Agtron value with no distribution. OmniFlux, when fitted
with its telephoto attachment, also outputs a single Agtron value in the same style. The classic Agtron benchtop unit is the reference point the scale itself is named after.
Near-infrared 2D imaging — Omni and Omix Plus
The second philosophy uses the same near-infrared idea but changes what does the reading, and that change is significant. Instead of one sensor collecting one averaged spot of reflected light, a
two-dimensional imaging sensor photographs the entire sample surface
under multi-band near-infrared light at 850 and 940 nanometers. It then computes an Agtron-scale value for all points across that image and assembles them into a histogram, displaying a full distribution of color across the sample, rather than a single number.
Omni is the most compact expression of this: it reads samples of roughly five grams of grounds, using white light as an auxiliary channel for its smart-test and silverskin functions while the near-infrared does the color work. Omix Plus applies the same imaging-based Agtron histogram inside a larger, all-in-one green/roasted coffee analyzer, with slightly larger sample sizes.
The consequence is the important part. Because these devices image the surface rather than average it into a point, they can report the spread of color, not just its center. That spread is information a single-point sensor cannot physically produce because it was averaged away before it ever became a number. This distinction is large enough
that Part 4 is devoted to it.
Visible-spectrum colorimetry — HunterLab and CIELAB
Colorimeters and spectrophotometers of the HunterLab type measure reflectance across the visible spectrum, roughly 380 to 780 nanometers, then convert it through tristimulus XYZ values into the CIE L*a*b* color space. In that space,
L* is lightness, running from black to white; a* runs green to red; and
b* runs blue to yellow. The whole system is built to mirror how the human eye perceives color, so that the numerical distance between two colors roughly matches the difference a person would see.
That is the opposite intent from the Agtron family. Where an Agtron number deliberately ignores visible appearance to track infrared
chemistry, CIELAB deliberately reconstructs visible appearance. To do
that it needs a defined reference white, for which the standard recommends the D65 daylight illuminant, and it needs a defined
measurement geometry — commonly 45°/0° or a diffuse d/8° sphere.
Because appearance depends on all those choices, two CIELAB instruments can disagree with each other purely from a different geometry, a different illuminant, or a different aperture size. A colorimeter, unlike a full spectrophotometer, effectively sees under only one illuminant, which opens the door to metameric error, that is, colors that match under one light and diverge under another.
Line the three up and you can see they are not competing to answer one question. Instead, they are answering three different questions. The Agtron family asks how much infrared reflects. Omni and Omix Plus ask what is the full distribution of infrared reflectance across the surface. CIELAB asks what visible color would the eye see under
standardized daylight. None of these converts one-to-one into another,
because none of them is measuring the same thing to start with.
The peer-reviewed research on roast color states it plainly: a coffee rated 40 on Agtron's commercial scale does not necessarily read 40 on DiFluid, on Colortrack, on Roastvision, or on any other device, because they use different scales and methods. Even the experts' own instruments do not agree with each other, and this is documented, expected, and understood, not a failing of any single unit. The correct question is never "which number is the true one." It is "which method produced this, and am I comparing two like things?"
Part 3 — Whole bean versus ground
A whole-bean reading looks at the outside of the bean, the surface the roasting environment touched directly, the face that came into contact with the hot air and the drum. Grinding cracks the bean open and
exposes its core, so a ground reading looks at a mixture of outer and inner surfaces. Ground coffee is therefore closer to the true average development of the whole seed, inside and out, which is why it is
generally the more dependable predictor of how the coffee will taste.
It's also worth noting that this means a bean with a slightly more developed outer shell and a less developed inside, will read the same Agtron score as a less developed seed overall. Another reason a single agtron score doesn't give you the full picture. The distribution plays a big role.
Whole-bean readings are inherently noisier, and it helps to know why. Bean surfaces are rounded, so light scatters unevenly. The number of beans sitting with their center cut, or crack, facing the lens varies
from sample to sample. Silverskin clings to the exterior in inconsistent amounts, and is much lighter than roasted bean, so it drags readings around. This is the physical reality of reading a pile of curved,
partially-skinned objects.
So why measure both whole bean AND ground? Because the gap between them is itself a measurement. The difference between the outer color and the ground color tells you how evenly heat moved from the surface into the core, whether
the roast is developed all the way through or scorched outside and pale
inside. Experienced roasters measure both not only as a second consistency check but to actively learn how to control that inner-versus-outer spread. The ground reading tells you the roast level; the pair of readings tells you the roast charteristic.
Part 4 — A single value versus a distribution
This is the part that causes the most common complaint: "it won't just give me one stable number."
A single-point sensor, whether that is CoffMeter A1, a classic Agtron, or OmniFlux with its telephoto lens adapter, collapses the entire sample into one average. That is genuinely useful. It is one clean figure to log, easy to communicate, easy to target. But an average, by definition, hides variation. Two roasts that are worlds
apart in evenness can share an identical average.
https://cdn.shopify.com/s/files/1/0636/6701/1811/files/Uneven_Roast_2.png?v=1753681918 | small | A very uneven roast
A sample where every particle sits at 97, and one where half sit at 94 and the and half at 100. Expressed as an average, are twins. In the cup, they are not.
Omni and Omix Plus give you the whole distribution: a histogram of color across the whole sample, along with the mean, the standard deviation, and the location of the peak. You are no longer told only how
dark the coffee is on average, but also how consistently dark it is. That second question, uniformity, is often the one that actually
separates a good roast from a mediocre one, and a single-point device
cannot answer it at all.
This also explains the "fluctuation" that frustrates people. With a
small five-gram tray, a single quaker or one pale fragment genuinely
shifts the average by a few points. A large-tray Agtron or Colortrack,
holding far more coffee, averages that same fragment into
insignificance. It is tempting to conclude the small tray is less accurate. In reality, it is more sensitive, and it is showing you real
sample-to-sample variation that the big tray quietly smooths over. This
gives you the flexibility of either taking a quick, single small sample measurement for consistency checks, or to take a few readings and look
at the average using CoffeeOS, saving you time and coffee.
An analogy: a single value is a class's average exam score. The
distribution is every student's score. The average cannot tell you
whether everyone landed near 75 or whether half failed and half aced it.
Roast uniformity, and grind uniformity, are precisely that hidden question, and the distribution is the only thing that answers it.
In practice, then, you use the two halves of the data for two different jobs. The mean or peak places the roast level. The standard
deviation, the spread, judges the evenness of the roast and the consistency of the grind. Read together, they tell you both where the coffee is and how tightly it got there.
Part 5 — Preparing your sample
Sample preparation is the largest source of error you actually control, and most "inconsistent device" stories are really
inconsistent-preparation stories wearing a disguise. Fix the preparation and the numbers settle down.
Start with grind size, because its effect is genuinely startling. On a single grinder, moving from one grind setting to another can shift the
color reading by around twenty-five Agtron points on the same coffee. This isn't because the coffee changed, but because a finer or coarser grind
changes the surface texture and how it packs and reflects. An inconsistent grind will masquerade as an inconsistent meter.
This raises the obvious question: what grind should you use? There is no single correct answer. The answer depends on the standard you want to align with and
on what you actually do with your coffee. If you want to compare against the wider specialty industry, use the cupping convention: grind to
roughly 850 microns with about 70 to 75 percent passing the corresponding sieve.
That is the shared language. But if you exclusively pull espresso, or
exclusively brew pourover, it can make more sense to define your own fixed measurement grind that reflects your real workflow. The absolute number a device reports is meaningless without a fixed procedure behind it, so what matters above all is that your grind is identical every single
time. A self-defined standard, held rigidly, beats a borrowed standard applied loosely.
Consistency over time argues for dedicating a grinder to color measurement. A small, low-retention hand or electric grinder used only for this purpose, keeps its burrs sharp for years, because it does so little
work. Using your café's production grinder for color samples and its dulling burrs can drift your readings by five or six points over a year. A dedicated grinder is cheap insurance that your readings remain consistent over a long period of time.
You can also grind on the finer side and level or tamp the surface. A coarse grind lets larger chaff float to the top, where it reads lighter than the coffee beneath it. Tamping and leveling create a smooth, even surface that the sensor can read cleanly. With Omni, fill the tray and draw the
scraper across the brim so the sample sits flush, then read. Again, if you choose to do this, you should apply in the same way, every time.
Sample amount is worth understanding. Omni needs only about five grams of grounds, which is a real economic difference over devices demanding a hundred grams per reading. For a roastery running a hundred batches a week, that is the difference between spending a few hundred dollars a year on measurement
coffee and spending several thousand. The cost of the small sample is more volatility, which you already know how to handle: take a few readings when extra precision is necessary, and look at the spread rather than trusting one result.
Standardize your quakers. Underdeveloped, pale beans, read much lighter than mature ones, so an inconsistent proportion of them
swings your color number around for reasons that have nothing to do with your roast. Sort them to a consistent, agreed level, ideally one that mirrors what your optical sorter will ultimately do, so that every
sample you measure is comparable to the last.
Be consistent about timing, even though there is no proven "correct" rest before reading. Many roasters read every batch straight off the cooling tray, so they know the previous batch's color and weight loss
before the next batch reaches first crack and there is still time to adjust. Whatever interval you choose, choose it once and keep it.
Finally, cross-check color against weight loss, because the two together form a checks-and-balances pair that neither provides alone. If weight loss holds steady across several batches but color drifts, the
problem is almost certainly in the color measurement; inconsistent quakers, a grind change, a meter needing calibration. If color holds steady but one batch's weight loss jumps, the suspect is the weighing or the process; a scale bumped, or beans lost to overactive airflow. Reading both turns each into a sanity check on the other.
Part 6 — Reading the results
Roast delta is the average whole-bean color minus the average ground color. It measures the evenness of development from surface to core. The temptation is to chase a specific target delta, but a delta is
only meaningful relative to your own method, grind, equipment, and goal. A large delta can point to a surface that developed fast and hot while the core lagged behind; a small delta suggests heat penetrated evenly. Treat those as directions to investigate, not as thresholds to obey.
Standard deviation, the spread of the distribution, is your uniformity gauge. A wider spread means a more uneven roast, or
an uneven grind or preparation. Tracked over time, it becomes a consistency metric in its own right. A roaster whose standard deviation creeps upward is losing uniformity, and they're able to tell long before the average would ever change.
Peak shift is the bin offset between the peak of the whole-bean distribution and the peak of the grounds distribution. It exists specifically to flag uneven roasts; cases where the outside and the inside of the beans are developing on noticeably different
schedules.
Uniformity delta, the spread between the two standard deviations, compares how tight the whole-bean population is against how tight the grounds population is.
There is also an interaction worth using in CoffeeOS: select a band on one distribution, say 90 to 100 Agtron on the whole-bean curve, and the matching band lights up on the grounds curve, so you can see where a specific population of beans landed across both readings. It turns two static histograms into a linked view of the same coffee from two angles.
Two settings quietly change what all of this looks like, and they need to be fixed and left alone for your numbers to remain comparable.
Bin width can be set to 5 or 10 Agtron per bin, which changes the granularity of the histogram. Spectrum range can be set to 70-200 for specialty coffee or 30 to 200 for the full range. Neither is right or
wrong, but switching them mid-program is like changing the units on a chart halfway through. Pick your settings deliberately and keep them constant.
Part 7 — Silverskin detection
Omni and Omix Plus both include a silverskin detection feature that
deserves explicit attention, because silverskin is one of the main
reasons whole-bean readings wander. Alongside the near-infrared light
that does the color measurement, Omni and Omix Plus use a white-light
channel to detect silverskin on beans or grounds, and the sensitivity can be adjusted in the settings.
The reason it matters connects straight back to Part 3. Silverskin fragments are pale, they cling to bean exteriors in uneven amounts, and they read much lighter than the roasted bean itself, so they inject noise into whole-bean color specifically. Detecting and accounting for them makes those readings more trustworthy. As with every other setting, consistency matters: decide how you want sensitivity set, understand that higher sensitivity trades more false positives against fewer missed fragments, and then keep the setting fixed across sessions so your comparisons stay honest.
Part 8 — Comparing measurements across devices
This is the practical resolution of the whole thesis: how to reconcile your Omni or CoffMeter A1 with an Agtron, or other meter.
It's important to first accept the reality established in Part 2, that there is no
universal cross-device conversion, because the devices use different methods, bands, geometries, and math. What works instead is to build your own offset. Measure the same standardized samples on both devices, with identical preparation, and record the consistent difference between
them. Remember that this difference may not be the same across the spectrum of light to dark, so measure at several points along the scale. Once you know that your device reads a reliable amount above or below the other device on the same coffee, you translate through that known offset.
Every bit of this rests on anchoring to a fixed method. Same grind, same amount, same tamping (if doing this), same device settings, same calibration state. Only then are two numbers comparable at all.
Calibration is part of that fixed method. Recalibrate before each session, and recalibrate liberally whenever several readings fall outside what you expected. Most color meters calibrate against a printed reference plate; DiFluid ColorGuard provides a dual-point calibration using both a light and a dark reference for Omni, Omix Plus, and OmniFlux, which is particularly worth doing when you work across both light and dark roasts and need accuracy at both ends of the scale rather than just the middle.
One more source of false disagreement lives inside the "Agtron number" itself. There is more than one Agtron scale: the Gourmet and Commercial scales differ. Two people can both say "Agtron 55" and mean
different things if they are on different scales. DiFluid devices measure according to the Gourmet scale. Before you conclude two readings disagree, confirm they are even expressed in the same scale.
Part 9 — Roasting by color, live, with OmniFlux
Everything so far has been about measuring color after the fact. OmniFlux changes the timing: it lets you watch and roast by color as the roast happens.
OmniFlux is a camera-style roast color monitor that watches bean color through the roaster's window in real time and outputs a live color curve. It operates in three modes that map cleanly onto three moments in the process.
Color Test is its static, post-roast mode: it sits over a tray with a metal Color Test Adapter attached and reads a prepared sample at ±0.5 accuracy across the 0 to 150 Agtron range. This is the precise endpoint measurement, equivalent to reading a sample on Omni or CoffMeter A1.
Roast Track is the live, in-roast mode: mounted on a stand and aimed through the roaster window, it records the color curve
as the roast develops at ±2 accuracy across a wider 0 to 200 range, and it can pull bean and chamber temperature from PT100 probes into the same curve.
Cool Track follows color and temperature during the cooling phase after the drop.
The conceptual difference between live and static color is the heart of it. Roast Track reads through glass, at a distance, on beans that are tumbling mid-roast, so its tolerance is deliberately wider, ±2 rather than ±0.5. Its value is that you can see color developing and make decisions in the moment, and match sample roasts to production roasts when temperature measurements between roasters are unreliable. Post-roast measurement, whether on OmniFlux's Color Test mode or on Omni, reads a static, controlled, prepared sample and gives you the tighter, authoritative final value. The live curve guides the roast while it is happening, and the static reading verifies the result once it is done, and lets you measure the roast delta as well.
Part 10 — The CoffeeOS Roast Color Analyzer and Bean Manager
Readings that live only on a device, or in a notebook, decay into clutter. The software layer is what turns them into a durable,
decision-ready record, and this is where color measurement stops being a number and becomes actionable data.
The Roast Color Analyzer Tool in CoffeeOS holds whole-bean tests and grounds
tests under a single testing Session, averages each set, and computes
the roast delta, peak shift, and uniformity delta discussed in Part 6.
It lets you highlight matching bands across the two distributions, and it retains every prior test so you can look backward.
https://cdn.shopify.com/s/files/1/0636/6701/1811/files/Roast_Analyzer_80929712-4a79-425f-a405-0dc7ea0f76a8.png?v=1772286427
Its interpretation-shaping settings are the same ones to keep fixed: bin width at 5 or 10 Agtron, spectrum range at 70 to 200 or 30 to 200.
The part that makes it genuinely useful is the connection to Bean
Manager. A color-analysis session attaches to a specific bean through the "Assign Beans" control in the bottom controller. Once linked, that session lands on the bean's detail page under Bean Insights, which groups every session by the tool that produced it. For example, a bean
might show "Roast Color Analyzer × 10," and tapping in reveals every individual color reading that coffee has ever received, sitting
alongside its particle analysis sessions,brew records, etc.
The value of that is not filing for its own sake. It means color stops being an orphan number you have to remember the context for. Every reading is bound to the bean that produced it, and both the beans and testing data are shareable. When you share a bean, you choose which attached data travels with it in the link or QR payload. Color becomes a permanent part of the coffee's quality record rather than a figure you jotted down and lost.
Part 11 — The bigger picture: the universal color curve
It is worth stepping up from procedure to what the science says color means, because the research reinforces the entire argument of this guide from the outside.
A study on a commercial five-kilogram drum roaster took seven very different roast profiles across three coffee origins and tracked color throughout each roast. The finding was striking: despite dramatic
differences in how the roasts were run and where the coffees came from, the bean color always traced the same path through the CIELAB L*a*b* color space, which the authors call a universal roasted arabica coffee color curve. Different profiles moved along that path at different speeds, but the path itself was shared.
More useful still, the coffees arrived at approximately the same L*a*b* values at the major roast milestones regardless of how they got there. At dry end, at first crack around an L* of 30, and at second
crack around an L* of 20. That means color at these milestones is a legitimate, quantitative way to define roast level, independent of the particular profile that produced it.
And here is why that matters for everything above. The same research states directly that the industry lacks a shared definition of "light," "medium," and "dark" precisely because everyone measures on different
devices and scales that do not agree. Your task is to measure consistently, understand where your coffee sits on the curve, and use
that position to make decisions. The research earns its credibility by
naming its limits: it studied specialty-grade, relatively defect-free arabica, and did not experimentally cover decaffeinated or heavily defective lots, though robusta followed the same curve in the
accompanying literature review. Those caveats are worth carrying, but they do not weaken the core lesson: consistent method beats absolute value, and the science agrees.
Part 12 — Putting it to work
The whole of this guide reduces to a discipline and a set of decisions.
The discipline is a preparation checklist you run the same way every time: a fixed grind chosen for your use case, a fixed sample amount, a level (or tamped) surface, standardized quakers, a dedicated grinder, consistent timing, a calibrated device, fixed settings, and a weight-loss cross-check running alongside. Together they are the difference between numbers you can trust and numbers you argue about.
The decisions are where the data pays off. To place a roast level, read the mean or peak, the Agtron value or the L*, against your own curve and targets, not someone else's. To judge evenness, read the standard deviation, the roast delta, and the peak shift, interpreted against your own baseline. To guide a roast while it is still happening, watch OmniFlux's Roast Track curve and act on its trajectory.
And to build a memory you can actually learn from, link every Roast Color Analyzer session to its bean in Bean Manager so your color history lives with the coffee.
A color reading is a value a method produces, not a fact you extract, and once
your method is fixed, your numbers become trustworthy, comparable, and genuinely actionable.