Grind Recommendation
{{ grindLabelText }}
{{ micronDisplay }}
{{ dialDisplay }}
{{ methodLabel }} - Target {{ targetTimeDisplay }} - Actual {{ actualTimeDisplay }}
{{ grindBandDetail }} Window {{ targetWindowDisplay }} {{ waterTempDisplay }} {{ timeDeltaBadge }} {{ tasteBadge }}
Fine
Coarse
Fine micron
Coarse micron
dial
Grind guidance
Item Recommendation Details Copy
{{ row.item }} {{ row.value }} {{ row.detail }}
Fixes
{{ fix.title }}
{{ fix.detail }}

        
:

Introduction:

Coffee grind size is the typical particle size of your ground coffee, and it is one of the biggest levers for controlling flavour and flow. When the grind is off, brew time drifts and the cup can taste sharp, thin, dry, or bitter.

Different brewing methods need different particle sizes because filters, pressure, and contact time change how much resistance the bed creates. Use this guide when you want a practical starting point, then refine with a timed brew and a quick taste check.

Pick your method and the brew time you are aiming for, and the tool returns a recommended grind in microns plus a plain language band such as medium or coarse. If you also enter the time you actually measured from bloom or pump start to finish, it nudges the recommendation to bring you closer to target.

For example, if a pour over drains 30 seconds fast and tastes sour, a slightly finer grind and a small temperature increase can pull more sweetness. If it runs slow and tastes bitter, the guidance goes the other direction so you reduce dryness without losing balance.

Treat the micron number as an estimate, since grinders differ in burr geometry and calibration and the same dial mark can mean different gaps. Change one variable at a time, repeat a brew, and compare the new time and taste against your last result to stay consistent.

When you are dialing in espresso, keep adjustments smaller because shot time reacts quickly to tiny changes. When you are planning a long steep like cold brew, focus on keeping fines low and time steady.

Technical Details:

The calculator treats grind size as an approximate burr gap expressed in micrometres, commonly called microns. It combines a selected brew method, a target brew time, an optional measured brew time, and a taste cue to recommend a grind target and supporting adjustments.

Each brew method includes a built in reference time range in seconds and a corresponding micron range for typical particle sizes. Your target time is mapped into that range with a linear interpolation, producing a base micron recommendation that moves finer as the target approaches the slow end.

If an actual time is provided, the tool computes the relative time error and applies a proportional correction capped at plus or minus 75 percent. Taste feedback then applies a small multiplier that tightens or opens the grind, and the result is clamped to a wider safety band around the method range.

Results are reported as a micron estimate, a grind band label, a suggested dial move relative to your current setting when grinder details are provided, and a target time window that shows what counts as close enough.

Core calculations

r = clamp( ttargettmin tmaxtmin ,0,1) mbase = mcoarse ( mcoarsemfine ) · r p = clamp( tactualttarget ttarget ,−0.75,0.75) mtime = mbase · (1+0.45·p) mfinal = clamp( mtime·ktaste , 0.70·mfine , 1.35·mcoarse )

When no actual time is provided, the time correction step is skipped and mtime is treated as mbase.

Symbols and units used in grind calculations
Symbol Meaning Unit or datatype Source
ttarget Desired total brew time. seconds Input
tactual Measured brew time from start to finish, optional. seconds Input
tmin, tmax Method reference time range. seconds Preset
mfine, mcoarse Method micron range endpoints. microns Preset
r Interpolation ratio mapping target time into the method range. 0 to 1 Derived
p Relative time error capped to reduce overcorrection. fraction Derived
ktaste Taste multiplier applied after time correction. multiplier Preset
mfinal Final grind recommendation after corrections and clamping. microns Derived

Worked example

Scenario: pour over, target 3.00 min (180 sec), actual 2.50 min (150 sec), taste is sour. Preset ranges: 150 sec to 210 sec and 550 microns to 750 microns.

r = 180150 210150 = 0.5
mbase = 750 (750550) · 0.5 = 650
p = 150180 180 = −0.1667
mtime = 650 · (1+0.45·−0.1667) = 601.3
mfinal = 601.3 · 0.94 = 565.2

A recommendation of about 565 microns falls in the Medium band, and the dial mapping (using your grinder range and burr gap estimates) can convert that to an approximate click adjustment.

Grind band thresholds

Grind band thresholds in microns
Band Lower bound Upper bound Typical note
Extra fine 0 259 Turkish powder
Fine 260 359 Espresso range
Medium fine 360 519 Paper filter sweet spot
Medium 520 719 Versatile drip profile
Medium coarse 720 899 Thicker paper or immersion
Coarse 900 1149 Press friendly
Extra coarse 1150 No upper bound Cold brew range

Band edges are strict less than checks in the logic, so a value of 520 microns lands in Medium, not Medium fine.

Method presets

Preset ranges drive the starting recommendation and the suggested time window slack around your chosen target.

Brew method preset ranges
Method Target range Default target Micron range Window slack Default water
Pour over (V60 or flat bed) 150 to 210 sec 180 sec 550 to 750 18 sec 94 deg C
Chemex 225 to 285 sec 255 sec 800 to 980 20 sec 93 deg C
AeroPress (classic) 90 to 150 sec 120 sec 480 to 640 15 sec 90 deg C
Espresso (1:2 ratio) 25 to 32 sec 28 sec 230 to 360 4 sec 93 deg C
Moka pot 120 to 210 sec 170 sec 420 to 600 14 sec 92 deg C
French press 210 to 300 sec 240 sec 900 to 1150 20 sec 95 deg C
Cold brew concentrate 43200 to 64800 sec 54000 sec 950 to 1150 1200 sec 20 deg C

Taste multipliers

Taste feedback adjusts the grind after the time correction step.

Taste multipliers applied to microns
Taste cue ktaste Effect on grind
Balanced or unsure 1.00 No change
Too sour or sharp 0.94 Finer
Too bitter or dry 1.06 Coarser
Thin or weak 0.97 Slightly finer
Dry or astringent 1.05 Slightly coarser

Constants and caps

Constants used by the grind adjustment rules
Constant Value Unit Notes
Time correction gain 0.45 multiplier Scales the relative time error into a micron adjustment.
Time error cap −0.75 to 0.75 fraction Limits how far one run can move the grind.
Fine clamp factor 0.70 multiplier Allows going finer than the preset range but not indefinitely.
Coarse clamp factor 1.35 multiplier Allows going coarser than the preset range but not indefinitely.

Units, precision, and rounding

  • Time inputs accept seconds, minutes, or hours and are converted to seconds internally.
  • When you switch time units, the stored value is rounded to 1 decimal for seconds, 2 decimals for minutes, and 3 decimals for hours.
  • Displayed durations use adaptive rounding, seconds show 1 decimal below 10 and 0 decimals at 10 or above.
  • Displayed durations use adaptive rounding, minutes show 2 decimals below 10 and 1 decimal at 10 or above.
  • Displayed durations use adaptive rounding, hours show 1 decimal below 10 and 0 decimals at 10 or above.
  • Micron recommendations are displayed as whole microns.
  • Dial suggestions and water temperature displays round to 1 decimal place.
  • Decimal formatting uses a dot as the separator, and edge cases can be affected by floating point representation.

Validation and bounds

Input validation and bounds
Field Type Min Max Step or pattern Notes
Target brew time number + unit 0 None 0.1 Negative values are clamped to 0 during conversion.
Actual brew time number + unit 0 None 0.1 Zero is treated as not measured.
Water temperature number + unit 0 None 0.5 Unit switches convert the numeric value.
Dial range minimum number 0 None 1 Used as the finest dial endpoint.
Dial range maximum number 1 None 1 Forced to be at least 1 greater than the minimum.
Finest burr gap number 100 None 10 Internally clamped to at least 50 microns.
Coarsest burr gap number 200 None 10 Forced to be at least 10 microns above the finest gap.
Current dial setting number 0 None 0.5 Used to compute the suggested click change.

Outputs and formats

Input and output formats supported by the tool
Output What it contains Format Notes
Guidance table Grind level, dial target, time window, time delta, taste focus, water temperature. Copy or download as CSV Each row can also be copied on its own.
Summary payload Inputs, recommendation, and a list of suggested fixes. Copy or download as JSON Numeric values include seconds, microns, and dial position.
Report export Guidance table plus a short header describing the run. DOCX The filename includes an ISO timestamp.

Networking, storage, and determinism

  • No network requests are defined in the package logic.
  • The app checks URL query parameters for target and actual time fields when deciding whether to apply method defaults.
  • Given the same inputs, the recommendation is deterministic. Only exported filenames vary due to timestamps.

Security considerations

  • All primary inputs are numeric, reducing the risk of untrusted text injection into outputs.
  • Clipboard actions depend on browser permissions and may fail silently in restricted contexts.
  • Downloaded files should be treated as personal notes if you include custom grinder details.

Assumptions and limitations

  • Heads-up Micron values are estimates, not a measurement from your grinder.
  • The mapping assumes grind size is the main driver of brew time for a fixed recipe.
  • Bean freshness, roast level, dose, filter type, and pouring style can overwhelm small grind changes.
  • Taste cues apply fixed multipliers and cannot represent every coffee or palate.
  • The time window is centered on your target time, not on the method default time.
  • Dial clicks are approximate because dial markings and click spacing vary by grinder.
  • Water temperature guidance is directional and does not account for heat loss or kettle accuracy.
  • Cold brew presets focus on coarse grinds and long times and do not cover ready to drink ratios.

Edge cases and error sources

  • Empty inputs can be interpreted as 0, which disables the actual time correction step.
  • Non numeric values become 0 during conversion, which can hide typing mistakes.
  • NaN and Infinity inputs are treated as invalid and fall back to 0 in conversions.
  • Localized decimal commas are not supported for numeric entry.
  • Signed zero values can appear internally, but they display as 0.
  • Very large hour values can overflow practical brewing reality even if they remain numeric.
  • Floating point rounding can shift borderline values by a small amount before display.
  • Halfway rounding cases follow fixed decimal formatting rules and can surprise at exact ties.
  • Dial mapping clamps ratios outside the burr gap range, which can hide out of range inputs.
  • Changing units triggers conversion, which can introduce rounding drift after repeated toggles.
  • Rapid edits can briefly show intermediate states because recomputation is debounced.
  • A stale cached page can behave differently after an update until you reload.
  • Clipboard writes may be blocked in private browsing modes or embedded contexts.
  • Downloads may be blocked by strict content settings or file permission policies.

Privacy and compliance

All calculations and exports are generated locally, and no data is transmitted or stored server side by this package.

Step by Step Guide:

Coffee grind size targets help you hit a repeatable brew time and a taste profile that fits your chosen method.

  1. Choose a Method that matches how you are brewing.
  2. Set a Target brew time in seconds, minutes, or hours.
  3. Brew once and measure the Actual brew time from bloom or pump start to finish.
  4. Select a Taste check that matches what you are tasting.
  5. Confirm Water temperature, and adjust in 1 to 2 degree steps toward balance.
  6. If you want dial guidance, fill in Dial range, Burr gaps, and your Current setting.
  7. Read the recommendation, then apply the Fixes suggestions one change at a time.

Example: Target 3.00 min, actual 2.50 min, tastes sour.

Expect a slightly finer micron target, a suggestion to move the dial finer, and a prompt to raise water temperature by 1 to 2 degrees.

Pro tip: keep dose, ratio, and pouring style steady, and let time and taste drive your next grind change.

If your time is close but taste is off, adjust taste and temperature before changing the target time.
If your time is far off, prioritize grind changes, then revisit taste.
Save the JSON summary as a simple brew log you can compare across beans.

Features:

Method presets for pour over, Chemex, AeroPress, espresso, moka pot, French press, and cold brew.
Micron based grind recommendation plus a descriptive grind band label.
Optional dial mapping using your grinder range and burr gap estimates.
Time window around your target and a fast or slow badge when actual time is provided.
Taste driven fixes that suggest grind and water temperature nudges.
Exports as CSV, JSON, and DOCX for saving or sharing guidance.

FAQ:

Is my data stored?

The package logic performs calculations locally and does not define any server calls. Copy and download actions only place data on your clipboard or in a file you save.If you share exports, they may reveal your grinder settings and preferences.

How accurate are microns?

Microns are a guidance scale based on the built in method ranges and your optional burr gap estimates. Treat them as a repeatable target for your setup, not an absolute measurement.Two grinders can produce different particle distributions at the same stated micron gap.

Which units can I use?

Brew time accepts seconds, minutes, or hours, and water temperature accepts deg C or deg F. The tool converts units automatically when you switch the unit selector.Repeated unit toggles can introduce small rounding drift.

Can I use it offline?

After the page loads, the calculation logic does not require a network connection. Some export features still depend on your browser supporting clipboard and file download APIs.If the page itself is not available without a connection, load it once before going offline.

What does On target mean?

It appears when the measured brew time matches the target exactly in seconds. If it is faster or slower, the badge shows the time difference in seconds and the details include the percent difference.Use the time window as a practical tolerance around your target.

How do I fix sour coffee?

Choose the sour taste option to nudge the grind finer and to recommend raising water temperature by about 1 to 2 deg C. If you are also brewing fast, entering the actual time will further push the recommendation toward a tighter grind.Adjust one variable per brew to keep feedback clear.

Is there a license?

No license information is included in the provided package metadata. If you plan to redistribute or embed it, follow the terms of the site or repository you obtained it from.The safest approach is to treat it as all rights reserved unless stated otherwise.

Troubleshooting:

  • No recommendation appears: set a target brew time greater than 0 and make sure a method is selected.
  • The dial suggestion looks wrong: confirm your dial min and max and your finest and coarsest burr gap estimates.
  • Changes feel too big: clear the actual time field to get a starting grind, then add measured time after one brew.
  • Copy does nothing: your browser may block clipboard writes, so try a download instead.
  • Downloads are blocked: check content settings that restrict automatic downloads or file creation.
  • Temperature jumps unexpectedly: switching units converts the numeric value, so re enter the temperature if you intended a fixed number.

If the page shows a blank result area, the most common cause is a target brew time of 0 or an invalid numeric entry that was coerced to 0.

Advanced Tips:

  • Tip Use the actual time field after your first brew to turn the tool into a feedback loop.
  • Tip For espresso, treat changes as small, since the preset window slack is only 4 sec.
  • Tip If you adjust water temperature, keep the grind steady for one run to isolate the effect.
  • Tip When dial mapping feels off, update the burr gap endpoints first, not the time target.
  • Tip Cold brew presets use very long times, so verify your unit is hours before interpreting the number.
  • Tip Export the JSON payload after each bean change to build a simple history you can compare later.

Glossary:

Micron
A micrometre sized unit used here as an estimated grind gap target.
Brew time
Total time from start to finish, including bloom or pump start.
Target window
A tolerance band around the target time based on the method slack.
Grind band
A named category derived from micron thresholds, like Medium or Coarse.
Burr gap
An estimated distance between burrs used to map microns to a dial.
Dial range
The minimum and maximum dial numbers used as endpoints for mapping.
Taste cue
A simple label that applies a fixed multiplier to the micron target.
Time delta
The difference between actual and target time, shown in seconds.