{{ summaryTitle }} {{ summaryValue }} {{ summaryLine }} {{ badge.label }} {{ badge.value }}
Coffee roast date, brew method, and storage inputs
The calendar date printed as the roast date.
The date to compare with the modeled freshness window.
Choose the main brewing workflow for this bag.
Pick the nearest profile stated by the roaster.
Choose whole bean or the closest packaged grind size.
Choose the closest container and handling pattern.
Enter a whole-number estimate from 0 to 24.
times/day
Choose the room conditions around the coffee.
Balanced is the practical home-brewing baseline.
{{ workflowFeedback }}
Leave at zero to omit the use-pace comparison.
g
Leave at zero to keep the optional pace model inactive.
g/day
{{ windowExportStatus }}
MarkerDate / ageStageUse guidanceCopy
{{ row.marker }}{{ row.when }}{{ row.stage }}{{ row.guidance }}
{{ storageExportStatus }}
CheckReadingSignalActionCopy
{{ row.check }}{{ row.reading }}{{ row.signal }}{{ row.action }}
{{ chartExportStatus }}
{{ summaryAnnouncement }}

Roasted coffee changes from the moment it leaves the roaster. Carbon dioxide escapes, delicate aroma compounds dissipate, and oxygen, moisture, and heat gradually push the flavor toward flatness or rancidity. Brewing too early can also be disappointing: a very fresh coffee may release enough gas to disturb wetting, extraction, or espresso flow.

A freshness window is therefore more useful than a single expiry date. The resting period allows early degassing to settle; the peak window marks the modeled period of strongest flavor potential; the good window remains suitable for everyday brewing; and the fading period signals that aroma loss is becoming more likely. These are tasting guides, not food-safety limits.

The calendar alone cannot describe every bag. The useful period changes with:

  • Brewing method: espresso often benefits from a longer rest than filter or immersion brewing because gas affects puck resistance and shot consistency.
  • Roast level: darker roasts generally degas faster and are modeled with shorter windows than lighter roasts.
  • Bean state: grinding increases exposed surface area, so ground coffee loses freshness much faster than whole beans.
  • Storage and handling: a tight, opaque seal limits oxygen and light exposure, while repeated opening, warmth, and humidity shorten the modeled window.

Taste remains the final test. Origin, roast development, package atmosphere, water, grinder, and recipe can all change how a coffee behaves. A date-based estimate helps plan when to open and finish a bag, but it cannot measure the aroma still present in those particular beans.

How to Use This Tool:

Start with the dates and brewing context, then describe the exposure that the coffee has actually experienced.

  1. Enter the Roast date and the Check date. A future check date is useful for planning; a check date before roasting produces a not-yet-roasted status.
  2. Choose the main Brew method, nearest Roast level, and current Bean state. Use the ground option that most closely matches the bag rather than the grind you intend to make later.
  3. Select the real Storage and Storage climate, then estimate Opens per day. Enter zero openings only for coffee that is still sealed.
  4. Choose a Freshness stance. Balanced is the practical baseline; Conservative closes the later windows sooner, while Generous extends them.
  5. Optionally enter Bag remaining and Daily use. Supply both values or leave both at zero so the finish-date comparison is meaningful.
  6. Read the current stage and freshness score, then check the Window plan for dates and the Storage review for handling changes that could protect the remaining coffee.

Interpreting Results:

The stage is the primary planning result. Too fresh and Resting suggest waiting or tasting cautiously; Peak window and Good window are the main use periods; Fading and Stale / replace soon call for faster use or a less aroma-sensitive recipe.

The freshness score is a smooth indicator derived from the same window boundaries. It is not a laboratory measurement or a percentage of flavor remaining. Compare it with the cup: if aroma, sweetness, extraction, or espresso flow disagree with the estimate, trust repeatable brewing observations and review the storage inputs.

When use-pace inputs are active, Finish before good end answers a planning question rather than a quality guarantee. A bag can still taste acceptable after that date, and poor storage can make it fade sooner.

Technical Details:

The calculation is a built-in planning heuristic. It begins with method-and-roast windows, then adjusts their later boundaries for grinding, storage, room conditions, opening frequency, and the selected stance. It must not be presented as an industry shelf-life standard.

Formula Core

Repeated opening creates a penalty in modeled days. One opening per day is the neutral point; only additional openings add a penalty.

Popen=max(0,o-1)×2.4×Ebean×Sopen

Here o is whole-number openings per day, E is the exposure factor for the bean state, and S is the opening scale for storage. The result remains at full precision until each window boundary is rounded to the nearest day.

The peak end is built from the adjusted peak start, the base peak span, and the selected factors. The good and fading ends use the same pattern with their own spans and storage shifts.

Dpeak-end=round(Dpeak-start+Lpeak×Fbean+Astorage+Aclimate+Astance+Csealed-Popen)

A sealed bag with zero openings receives a two-day credit. Every later boundary is also forced to remain at least one day after the previous boundary, so extreme exposure cannot reverse the timeline.

Base windows and adjustments

The unadjusted windows are calendar days after roasting. Peak end, good end, and fade end are inclusive after the later adjustments are applied.

Base coffee freshness windows in days after roasting
MethodRoastRestPeakGood endFade end
Filter / immersionLight5 to 1010 to 284260
Filter / immersionMedium3 to 77 to 243852
Filter / immersionDark1 to 44 to 162840
EspressoLight10 to 1616 to 385270
EspressoMedium7 to 1212 to 324660
EspressoDark4 to 88 to 223446
Moka potLight7 to 1313 to 324662
Moka potMedium5 to 1010 to 284054
Moka potDark3 to 77 to 203244

Grinding scales each base peak, good, and fading span before later day shifts are added. Exposure and opening scale affect only the repeated-opening penalty; storage risk is reported separately.

Bean-state and storage adjustments
SettingSpan factorExposurePeak / good / fade shiftOpen scaleRisk
Whole beans1.001.000
Ground coarse0.441.152
Ground medium0.341.303
Ground fine0.261.454
Unopened valve bag+3 / +8 / +12 days0.450
Resealed roaster bag+1 / +3 / +5 days0.751
Airtight opaque container0 / 0 / 0 days0.851
Clear jar−4 / −7 / −9 days1.003
Loose or non-airtight bag−7 / −12 / −16 days1.154
Frozen sealed portions+6 / +55 / +72 days0.350

Climate adds the same day shift to the peak, good, and fade ends: Cool Dark Pantry +4, Normal Room 0, Warm Counter −7, and Humid Kitchen −10. Their risk points are 0, 1, 3, and 4 respectively. Conservative shifts peak, good, and fade by −2, −5, and −7 days; Balanced adds zero; Generous adds +2, +5, and +8. None of the three stances changes the rest boundary.

Valid numeric inputs are 0 to 24 whole openings per day, 0 to 5,000 g remaining, and 0 to 1,000 g per day. Finish days equal remaining grams divided by daily grams, rounded up; the pace check activates only when both values are greater than zero.

Rule Core

Age is the whole-calendar-day difference between the check date and roast date. Boundary ownership is exact:

Freshness stage boundary rules
StageAge ruleMeaning
Not roasted yetage < 0The check date is before the roast date.
Too fresh0 to before rest startEarly degassing dominates the model.
Restingrest start to before peak startThe coffee is approaching its modeled peak.
Peak windowpeak start through peak end, inclusiveThe strongest modeled use window.
Good windowafter peak end through good end, inclusiveStill comfortably within the modeled use period.
Fadingafter good end through fade end, inclusiveAroma decline is increasingly likely.
Stale / replace soonage > fade endPast the final modeled boundary.

The score follows piecewise linear segments across those boundaries, is rounded to a whole percent, and bottoms out at 8%. The storage-risk total separately adds fixed bean, storage, and climate points plus 0.5 for each opening beyond the first; it is a handling signal, not the freshness score.

Limitations:

No roast-date model can observe the actual package atmosphere, roast development, bean density, oxygen ingress, temperature history, grinder retention, or sensory result. The built-in windows are practical assumptions and may not match a roaster's own rest guidance.

  • Use the roaster's advice when it is specific to the coffee and brewing method.
  • Do not treat Stale / replace soon as a food-safety verdict.
  • Frozen sealed portions assume portioning that avoids repeated thawing and condensation; storage mistakes can erase the modeled benefit.

Worked Examples:

A medium filter roast on day 10

For whole beans in an airtight opaque container at normal room conditions, one opening per day and the Balanced stance leave the base boundaries unchanged: peak is day 7 through day 24, good extends through day 38, and fading ends on day 52. A check on day 10 lands in Peak window with a freshness score of 95%. If 300 g remain and use is 20 g per day, the modeled finish is 15 days later, still before the good-window end.

References: