| Metric | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
Coffee strength is the concentration of dissolved coffee material in the cup, and extraction is the share of the dry grounds that ended up in the drink. A coffee extraction yield calculator turns those measurements into numbers you can compare from brew to brew, even when the recipe changes.
By combining the dry coffee dose, the beverage mass you actually brewed, and a refractometer reading of dissolved solids, the calculator estimates strength and extraction together. It then places the result against a target zone so you can see whether you are trending light, heavy, or balanced.
For example, a pour over that tastes thin can show up as low strength even when extraction looks acceptable, which usually points to a larger beverage yield than intended. A harsh finish can show up as extraction above the target zone, which is a cue to adjust grind, contact time, or brew water.
Because the math is a simple mass balance, accuracy depends on careful weighing and a stable sampling routine. Treat target zones as helpful guides rather than proof that a brew will taste good, and recheck your refractometer scale when results look implausible.
If you keep notes for training or quality work, repeat the same base recipe with small changes so the differences in results stay meaningful.
Total Dissolved Solids (TDS) is the mass fraction of dissolved material in the brewed beverage, commonly reported as a percentage by coffee refractometers. Extraction yield is a mass balance estimate of how much of the dry coffee dose became dissolved solids in the final beverage.
This calculator takes three primary measurements in grams and percent, then derives dissolved solids and extraction yield by multiplication and division. When your refractometer reports degrees Brix (°Bx), it applies a configurable Brix to TDS factor before doing the same mass balance.
Results are interpreted using a brewing control chart that plots extraction yield on the horizontal axis and strength on the vertical axis. Each brew style includes a target box, and the status label is based on whether your point falls inside or outside that box.
Comparisons are most meaningful when you weigh everything, use the same refractometer workflow, and keep the brew style target consistent. The numbers describe concentration and mass transfer, but they do not guarantee a specific taste outcome.
The calculator converts a refractometer reading into %TDS, then turns that concentration into dissolved solids and extraction yield.
| Symbol | Meaning | Unit or datatype | Source |
|---|---|---|---|
R |
Refractometer reading value | number | Input |
F |
Scale factor, 1 for %TDS or kBx for °Bx |
number | Input or constant |
c |
Reading correction percent | percent | Input |
T |
Strength as %TDS after conversion and correction | percent | Derived |
mc |
Dry coffee dose | g | Input |
mb |
Beverage mass in cup | g | Input |
f |
TDS fraction, T / 100 |
unitless | Derived |
ms |
Dissolved solids extracted | g | Derived |
E |
Extraction yield | percent | Derived |
a |
Absorption ratio, water retained per gram coffee | g/g | Input |
mby |
Bypass water added after brewing | g | Input |
W |
Water to coffee ratio | unitless | Derived |
B |
Beverage ratio in cup | unitless | Derived |
Example input: Filter style, coffee dose 20 g, beverage mass 320 g, refractometer reading 1.35 %TDS, absorption ratio 2.00 g/g, bypass water 0 g.
With strength 1.35 %TDS and extraction 21.6 %, this point sits inside the filter target box, so the status reads Inside ideal box.
| Brew style | TDS lower | TDS upper | Extraction lower | Extraction upper | Label |
|---|---|---|---|---|---|
| Filter | 1.15 | 1.45 | 18 | 22 | SCA filter box |
| Immersion | 1.25 | 1.55 | 18 | 22 | Immersion sweet spot |
| Espresso | 8 | 12 | 19 | 23 | Modern espresso zone |
Values on or within the box edges are treated as inside the ideal box. Values below either lower bound are labeled Under target, and values above either upper bound are labeled Over extracted.
| Parameter | Meaning | Unit or datatype | Typical range | Sensitivity | Notes |
|---|---|---|---|---|---|
| Absorption ratio | Brew water retained by the grounds | g/g | Filter beds 1.8–2.3, espresso pucks 1.0–1.3 | Medium | Used to estimate brew water from in-cup mass |
| Bypass water | Water added after brewing for dilution | g | 0 and up | High | Removed from the brewed portion before estimating brew water |
| Brix to TDS factor | Multiplier applied when the device reports °Bx | number | Coffee often 0.85–0.86 | High | A warning appears outside 0.75–0.95 |
| Reading correction | Percentage offset for small instrument bias | percent | -5 to 5 | Medium | Applied as a multiplier, neutral is 0 |
| Beverage density | Mass to volume conversion for mL display | g/mL | Near 1.0, espresso up to about 1.05 | Low | Does not affect extraction, only the volume estimate |
| Field | Type | Min | Max | Step or pattern | Message |
|---|---|---|---|---|---|
| Coffee dose | number | 0 | — | step 0.1 | Enter a coffee dose above 0 g. |
| Beverage mass | number | 0 | — | step 1 | Enter a beverage mass above 0 g. |
| Refractometer reading | number | 0 | — | step 0.01 | Strength is zero; add a refractometer reading. |
| Absorption ratio | range | 0.5 | 3 | step 0.05 | Higher values increase estimated brew water and water ratio. |
| Bypass water | number | 0 | — | step 1 | Set to 0 for no bypass. |
| Brix to TDS factor | number | 0.6 | 1.2 | step 0.01 | Brix conversion looks atypical; common coffee factors are 0.85–0.86. |
| Reading correction | range | -5 | 5 | step 0.1 | Applied as a multiplier, 1 plus correction percent divided by 100. |
| Beverage density | number | 0.9 | 1.1 | step 0.005 | Used only for the mL estimate; the calculator clamps density to at least 0.5. |
| Strength plausibility | derived check | 0 | 15 | warning if above 15 | TDS is unusually high; recheck the reading scale. |
| Output | Accepted families | What you get | Encoding and precision | Rounding |
|---|---|---|---|---|
| Metrics table | copy or download | CSV with headers Metric, Value |
text, values formatted for display | varies by metric |
| Report | download | DOCX report titled Coffee Strength Report | text and table rows from the metrics list | formatted strings |
| Structured payload | copy or download | JSON with inputs, results, and status |
UTF-8 JSON, numeric values are unquoted numbers | no display rounding applied |
| Control chart | download | PNG, WebP, or JPEG image, plus a small CSV summary | image background set to white; JPEG quality 0.92 | chart CSV uses 4 decimals |
Default filenames include coffee_strength_metrics.csv, coffee_strength_report.docx, coffee_strength.json, and coffee_strength_control_chart with the chosen extension.
Strength and extraction are computed with standard floating point arithmetic and are deterministic for identical inputs. Display formatting typically uses 2 decimals for strength and extraction, 2 decimals for ratios, and metric-specific rounding for supporting values.
Chart rendering is debounced and updates after short input pauses, and the chart is drawn as scalable vector graphics for sharp zooming. The computation itself is constant time and does not grow with input size.
The calculator logic runs browser-based and does not send your numeric inputs to an application server. Copy actions write to the system clipboard, and downloads save files to your device using standard browser mechanisms.
Because inputs are numeric and outputs are derived from those numbers, the risk of script injection through user input is low. Treat copied exports as potentially sensitive in a workplace setting, since any clipboard contents may be visible to other applications.
For context, compare results to the Specialty Coffee Association brewing control chart concept, refractometer guidance for coffee measurement, and basic mass balance models used in brewing education.
Strength and extraction become actionable when you measure dose, beverage yield, and dissolved solids in a consistent way.
Quick example: Dose 20 g, beverage 320 g, reading 1.35 %TDS returns strength 1.35 %TDS and extraction 21.6 %.
Pro tip: log both strength and extraction together, because either number alone can be misleading.
Once your point sits inside the target box, use small changes to keep flavor consistent across batches.
Calculations run on the client and the included logic does not send your inputs to an application server. Copies and downloads only exist where you paste or save them. A charting script may be loaded as a static page asset, but your brew numbers are not uploaded.
The math is a direct mass balance, so the main error sources are weighing, refractometer calibration, sample temperature, and choosing the wrong scale. Treat extraction yield as an estimate for comparison, not a lab-grade truth. Repeat the same recipe and change one variable at a time for the clearest signal.
Enter coffee dose, beverage mass, and bypass water in grams. Enter refractometer strength as %TDS or °Bx, and enter density in g/mL if you want a volume estimate. Outputs report percent for strength and extraction, and ratios as X : 1.
Select the °Bx scale, then set a Brix to TDS factor that matches your instrument and coffee. A warning appears if the factor is outside 0.75 to 0.95, since coffee is often near 0.85 to 0.86. Use reading correction only for small, known bias.
Under target means either strength or extraction is below the selected target box. That often aligns with brews that taste thin, sour, or both, depending on the coffee. Common adjustments include tightening the ratio, increasing dose, or extracting more evenly through grind and time.
Core calculations do not require network requests, but the chart view depends on a page script that may need to load unless it is already cached. Clipboard and downloads also depend on your browser permissions and settings.
This package does not include pricing or licensing terms. Availability and usage terms depend on where it is hosted and how it is offered.
Blocking issue: If you entered values but still see “Awaiting inputs”, one of the key numbers is being treated as 0. Re-enter dose, beverage mass, and the refractometer reading with a decimal point if needed.