Freshness Check
{{ model.verdict.label }}
{{ model.summaryLine }}
{{ model.ageLabel }} {{ methodInfo.label }} {{ storageInfo.shortLabel }} {{ model.riskLabel }}
{{ model.warnings.join(' · ') }}
Coffee freshness inputs
The date the coffee was roasted.
The date you want to judge freshness against.
Choose the workflow that will use this coffee.
Pick the nearest roast profile printed by the roaster.
Use whole beans unless the bag is already ground.
Choose the closest container and handling pattern.
Approximate how often the container is opened.
x/day
Adjust for the room where the coffee sits most of the day.
Controls how quickly the checker moves from peak to good, fading, and stale.
Optional amount left in the bag or canister.
g
Approximate grams used per day.
g/day
Marker Date / age Stage Use guidance Copy
{{ row.marker }} {{ row.when }} {{ row.stage }} {{ row.guidance }}
Check Status Impact Action Copy
{{ row.check }} {{ row.status }} {{ row.impact }} {{ row.action }}

            
Customize
Advanced
:

Introduction

Coffee freshness is a changing balance between roast gas, aroma compounds, oxygen exposure, and the way the beans are handled after roasting. A bag can taste sharp and unsettled when it is too new, vivid and sweet during its peak, then flat or rancid as aromatics fade. The useful question is not only the roast date, but whether the coffee is ready for the brew you plan to make.

Roasted coffee releases carbon dioxide after roasting. That release helps explain why espresso often needs a longer rest than filter brewing: too much trapped gas can make puck resistance, crema, and shot flow unstable. Filter, immersion, and moka brewing still change after roast, but they usually tolerate a wider range of timing because the extraction pressure and contact pattern are different.

Storage changes the tail of the window. Whole beans in a dark airtight container keep aroma longer than fine grounds in a loose bag on a warm counter. Moisture, heat, light, and repeated opening all give oxygen and humidity more chances to damage flavor. Frozen sealed portions can extend quality when they stay sealed and condensation is avoided, but daily containers should still be kept cool, dry, dark, and tightly closed.

A freshness window is a taste-planning guide, not a safety date or a lab measurement. Old roasted coffee is usually a flavor problem before it is a food-safety problem, unless moisture, mold, or contamination enters the bag. Use the dates to decide which bag to open, whether espresso needs more rest, and when a fading coffee should move to less flavor-critical use.

Technical Details:

Freshness windows combine two processes that move in opposite directions. Early after roasting, carbon dioxide leaves the porous bean structure and extraction becomes easier to control. Later, volatile aroma compounds decline and oxidation products become more noticeable. The useful flavor period sits between those two changes.

Roast level and brew method set the starting range. Light roasts are treated as slower to open, dark roasts as faster to degas and faster to fade, and espresso as more demanding about rest than filter or immersion brewing. Moka pot sits between espresso and filter because it is pressure-style brewing, but it usually has a little more tolerance than espresso.

Timeline showing roast day, rest, peak, good, fading, and stale coffee freshness stages

The baseline calendar is measured in whole local days after the roast date. With whole beans, airtight opaque storage, normal room conditions, one opening per day, and the balanced stance, the base day ranges are:

Baseline coffee freshness day ranges by brew method and roast level
Brew method Roast Rest starts Rest through Peak through Good through Fading through
Filter / immersion Light day 5 day 10 day 28 day 42 day 60
Filter / immersion Medium day 3 day 7 day 24 day 38 day 52
Filter / immersion Dark day 1 day 4 day 16 day 28 day 40
Espresso Light day 10 day 16 day 38 day 52 day 70
Espresso Medium day 7 day 12 day 32 day 46 day 60
Espresso Dark day 4 day 8 day 22 day 34 day 46
Moka pot Light day 7 day 13 day 32 day 46 day 62
Moka pot Medium day 5 day 10 day 28 day 40 day 54
Moka pot Dark day 3 day 7 day 20 day 32 day 44

Handling choices then stretch or shorten those ranges. Ground coffee multiplies the post-peak spans downward, storage and climate add day shifts, and frequent opening subtracts a penalty from the peak, good, and fading endpoints.

Age days = check date-roast date Opening penalty = max(0, opens per day - 1)×2.4×grind exposure×storage scale Adjusted endpoint = base start + scaled span + storage shift + climate shift + stance shift + unopened credit - opening penalty
Key adjustment rules used in coffee freshness windows
Choice Effect Practical meaning
Whole beans Post-peak span factor 1.00 Lower exposed surface area keeps the modeled window widest.
Coarse, medium, or fine ground Span factors 0.44, 0.34, or 0.26 More exposed surface area shortens peak, good, and fading time.
Unopened valve bag Extends peak, good, and fading endpoints One-way valve packaging slows oxygen exposure until opening.
Clear jar or loose bag Moves endpoints earlier Light, headspace, and air exchange reduce the useful tail.
Warm counter or humid kitchen Subtracts 7 or 10 days from endpoints Heat and humidity accelerate aroma loss and oxidation risk.
Freshness stance Conservative shortens; generous extends The same coffee can be judged tighter for espresso or high-value beans, or looser for drinkable everyday use.

The current verdict is assigned with inclusive date boundaries. The rest-end day remains Resting; the peak label begins after that day even though the peak marker is displayed at the boundary date.

Freshness stage boundary rules
Age condition Verdict How to use it
age < 0 Not roasted yet The check date is before the roast date.
0 <= age < rest starts Too fresh Wait before judging the cup, especially for espresso.
rest starts <= age <= rest through Resting Taste if needed, but expect more change ahead.
rest through < age <= peak through Peak window Prioritize this coffee for flavor-critical brewing.
peak through < age <= good through Good window Use normally and watch for aroma fade.
good through < age <= fading through Fading Use soon or reserve for milk drinks, cold brew, or less demanding cups.
age > fading through Stale / replace soon Replace for clarity, sweetness, crema, or recipe calibration.

Everyday Use & Decision Guide:

A strong first pass is to enter the roasted-on date, leave Check date on today, and choose the brew method that will actually use the coffee. Pick Espresso when shot flow and crema stability matter, Filter / immersion for pour-over, drip, press, AeroPress, or cupping-style cups, and Moka pot for a pressure-style brew that is less strict than espresso.

Use Bean state and Storage honestly. Fine grounds in a loose bag should not share the same window as whole beans in an airtight opaque container. Opens per day is also worth setting because a bag opened four or five times daily behaves differently from a sealed portion that is opened once.

  • Open Advanced when the kitchen is warm or humid, when you want a conservative espresso estimate, or when strong storage justifies a more generous taste window.
  • Add Bag remaining and Daily use when the question is whether the bag will be finished before Good through.
  • Use a future Check date when planning which subscription bag to open next week.
  • Slow down when warnings mention ground coffee, warm or humid storage, high exposure, or frequent opening.

The most common misread is to treat Freshness score as a taste certificate. It is only a modeled score on a 0 to 100 scale. If bloom, aroma, espresso flow, sweetness, or rancid notes disagree with the result, trust the cup and update the storage or bean-state inputs before reusing the estimate.

A practical stopping point is the combination of Current check, Peak opens, Good through, Risk label, and the storage rows. If those lines match how the coffee is really stored and brewed, copy the table or JSON record for planning.

Step-by-Step Guide:

Use the fields in this order so the verdict, windows, storage checks, and timeline describe the same coffee.

  1. Enter Roast date and Check date. The result panel appears only when both dates are valid; otherwise the page shows Enter a valid roast date. or Enter a valid check date..
  2. Choose Brew method and Roast level. These two fields set the baseline rest, peak, good, and fading windows.
  3. Select Bean state, Storage, and Opens per day. The warning line and Risk label update when exposure becomes moderate or high.
  4. Open Advanced for Storage climate and Freshness stance. Use conservative for expensive beans, espresso prep, or competition-style dialing; use generous only when storage is strong and taste still holds.
  5. Add Bag remaining and Daily use if you want the Use pace row to compare your depletion rate with the Good through date.
  6. Read Freshness Windows first. Check Current check, Peak opens, Peak closes, Good through, Fading through, and Stale after.
  7. Open Storage Checks to review brew fit, roast behavior, grind exposure, storage exposure, opening rhythm, climate, use pace, and the sensory check before copying or downloading results.
  8. Use Freshness Timeline when a visual day-by-day score helps compare today against the peak and good windows. Use JSON when the inputs and outputs need to move into another planning note.

Interpreting Results:

Read the verdict and date markers together. Peak window means the selected coffee is inside the modeled flavor-priority period for the chosen method, roast, storage, and handling. Good window still supports normal brewing, while Fading and Stale / replace soon are signals to use the coffee quickly or stop relying on it for dialing recipes.

A high score does not prove the coffee will taste good, and a stale verdict does not mean the dry roasted coffee is automatically unsafe. The corrective check is sensory: smell the beans, watch bloom or espresso flow, taste for sweetness and rancidity, and confirm that the storage rows match the real container and kitchen conditions.

How to act on coffee freshness outputs
Output cue Read first Verify before trusting
Freshness verdict Current check and Freshness score The Check date is the day you plan to brew.
Opening the right bag Peak opens, Peak closes, and Good through The brew method and roast level match the bag and recipe.
Storage concern Risk label and Storage Checks The coffee is not in a clear jar, loose bag, warm counter, or humid area by mistake.
Use pace Bag remaining, Daily use, and the Use pace row The grams left and grams per day are realistic for the household or bar.
Ground coffee warning Warning banner and Grind exposure The selected ground size matches the actual bag and has not been left open longer than assumed.

Worked Examples:

Medium filter coffee opened at peak

A medium roast for filter brewing roasted on May 1, 2026 and checked on May 11, 2026 is 10 days old. With whole beans, airtight opaque storage, normal room conditions, one opening per day, and the balanced stance, Current check is Peak window with Freshness score 95/100. Peak opens is May 8, Peak closes is May 25, and Good through is Jun 8, so this is a good bag to brew now.

Fine-ground dark espresso fades quickly

A dark espresso roast from May 1, 2026 checked on May 18, 2026 looks very different when it is fine ground, kept in a loose bag, opened four times a day, and stored on a warm counter. The result moves to Stale / replace soon with Freshness score 22/100, High exposure, and warnings for ground coffee, storage risk, warm storage, and frequent opening. Good through has already passed, so the practical fix is to replace it for espresso dialing and tighten storage for the next bag.

Frozen sealed portions keep the tail open

A light moka-pot coffee roasted on May 1, 2026 and checked on May 20, 2026 can still show Peak window with a 95/100 score when it is stored as frozen sealed portions, opened zero times per day, and handled under a cool dark profile. In that scenario, Peak opens is May 14, Peak closes is Jun 16, and Good through is Sep 4. The result assumes portions stay sealed until use; repeated thawing or condensation would make the estimate too generous.

Missing date blocks the result

If the result panel disappears and the alert says Enter a valid roast date., the date field is empty or not a valid calendar date. Fix the roast date first, then recheck Freshness Windows. Numeric fields such as Opens per day, Bag remaining, and Daily use are bounded inputs, but date validity is the main gate for showing a freshness result.

FAQ:

Is coffee unsafe after the stale date?

The stale date is a flavor guidance date, not a food-safety ruling. Dry roasted coffee usually loses aroma and sweetness before it becomes a safety concern, but coffee exposed to moisture, mold, pests, or contamination should be discarded regardless of the modeled stage.

Why does espresso rest longer than filter coffee?

The espresso preset uses longer rest windows because trapped carbon dioxide can make puck resistance, crema, and shot flow less repeatable. Filter and immersion methods still need rest, but they are modeled with shorter rest and broader peak windows.

Should I use the roast date or the best-by date?

Use the roasted-on date when the bag provides it. A best-by date is usually too broad for rest, peak, and good-through planning because it does not reveal how many days have passed since roasting.

Why did ground coffee make the window so short?

Ground coffee exposes far more surface area to oxygen. The page applies shorter span factors for coarse, medium, and fine grounds, then adds extra exposure risk when storage or opening frequency is poor.

Does the calculation send my coffee data to a server?

The freshness math runs in your browser. The page does not use a server-side freshness request, so roast date, storage choices, and use pace stay in the page unless you copy, download, or share them.

Why am I seeing a date error?

The result panel requires valid Roast date and Check date values. If either date is missing or invalid, correct the highlighted date field before reading the verdict, timeline, tables, or JSON.

Glossary:

Degassing
The release of carbon dioxide from roasted coffee after roasting.
Peak window
The modeled period when the selected coffee is most suitable for flavor-critical brewing.
Good through
The last modeled day for normal brewing before the coffee moves into the fading stage.
Fading
A stage where the coffee may still brew acceptably but aroma, sweetness, crema, or clarity may be weaker.
Opening penalty
The modeled freshness-day loss caused by opening the container more than once per day.
Freshness stance
The conservative, balanced, or generous setting that shifts how quickly the estimate leaves peak, good, and fading windows.