What CupTune calculates
Brew water = dry coffee × water ratio. Espresso beverage = dose × beverage ratio. Approximate filter yield = water − dose × the visible absorption coefficient.
Extraction yield = beverage mass × (measured TDS ÷ 100) ÷ dry dose × 100. Dilution preserves dissolved solids: final mass = concentrate × current TDS ÷ target TDS.
The timer derives elapsed time from an absolute anchor. It never assumes interval callbacks ran while the tab was backgrounded.
A worked example
Take 20 g of coffee at 1:16. Brew water is 20 × 16 = 320 g. With the default absorption of 2 g per gram of dry coffee, the grounds keep about 40 g, so roughly 280 g reaches the cup; that figure is a plan, not a reading. Now weigh the cup: say it holds 284 g, and a refractometer reads 1.35 % TDS. Extraction yield is 284 × 0.0135 ÷ 20 × 100 = 19.17 %, and every input in that line was measured. For dilution, 100 g of cold-brew concentrate at 4.0 % TDS taken to 1.3 % gives 100 × 4.0 ÷ 1.3 = 307.7 g, so about 208 g of water goes in. Change the absorption coefficient and only the planned yield moves; the extraction figure follows your scale and your meter, never the coefficient.
What the measurements do not establish
- TDS is never inferred from colour, method or taste.
- Absorption and cold-brew retention are editable approximations.
- Taste descriptors do not prove a single extraction cause.
- Recipe times do not override taste, flow, equipment limits or food safety.
How to use the result
Use a scale, record the actual beverage and change one controllable variable. SCA explains brew ratio and espresso beverage ratio; its current Brewing Chart research describes the measured TDS, extraction-yield and brew-ratio relationship. The formulas here apply those definitions and mass balance. Authored recipes and sensory suggestions remain starting preferences, not standards or diagnoses. The editorial policy covers the rest: who publishes CupTune, how pages are drafted and checked, and how a correction is made.