{"id":46250,"date":"2025-10-13T22:30:37","date_gmt":"2025-10-13T19:30:37","guid":{"rendered":"https:\/\/kyivcityroast.com.ua\/coffee-recipe-calculator\/"},"modified":"2025-10-20T13:23:09","modified_gmt":"2025-10-20T10:23:09","slug":"coffee-recipe-calculator","status":"publish","type":"page","link":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/","title":{"rendered":"Coffee recipe calculator"},"content":{"rendered":"\n\n\n\n  <meta charset=\"UTF-8\"\/>\n  <title>Coffee calculator &#8211; Kyiv City Roast<\/title>\n  <style>\n    body {\n      background-color: #f4f1ec;\n      font-family: 'Arial', sans-serif;\n      color: #2e2c28;\n      margin: 0;\n      padding: 0;\n    }\n    #coffee-calculator {\n      max-width: 700px;\n      margin: 40px auto;\n      background-color: #f7f4f0;\n      border-radius: 16px;\n      padding: 32px;\n      box-shadow: 0 8px 24px rgba(0,0,0,0.08);\n      border: 1px solid #d7d0c4;\n    }\n    #coffee-calculator label {\n      display: block;\n      margin-top: 20px;\n      font-weight: bold;\n      font-size: 15px;\n      color: #5f4b42;\n    }\n    .button-group {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 10px;\n      margin-top: 10px;\n    }\n    .button-group button {\n      padding: 10px 16px;\n      background-color: #ffffff;\n      color: #2e2c28;\n      border: 1px solid #bfb6ac;\n      border-radius: 10px;\n      cursor: pointer;\n      font-size: 15px;\n      transition: background-color 0.3s, color 0.3s, border-color 0.3s, opacity 0.2s;\n    }\n    .button-group button.selected {\n      background-color: rgb(70, 143, 153);\n      color: white;\n      border-color: rgb(70, 143, 153);\n    }\n    .button-group button:disabled {\n      opacity: 0.5;\n      cursor: not-allowed;\n      background-color: #f1eeea;\n      color: #8a8176;\n      border-color: #d4ccc2;\n    }\n    #coffee-calculator button.calc-btn {\n      margin-top: 30px;\n      width: 100%;\n      padding: 14px;\n      background-color: rgb(70, 143, 153);\n      color: white;\n      border: none;\n      border-radius: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      cursor: pointer;\n      transition: background-color 0.3s;\n    }\n    #coffee-calculator button.calc-btn:hover {\n      background-color: rgb(55, 110, 120);\n    }\n    #resultTable {\n      width: 100%;\n      margin-top: 32px;\n      border-collapse: collapse;\n      background-color: #f7f4f0;\n      border-radius: 12px;\n      overflow: hidden;\n      font-size: 15px;\n      display: none;\n    }\n    #resultTable td, #resultTable th {\n      border: 1px solid #d2cec8;\n      padding: 12px;\n      text-align: left;\n    }\n    #resultTable th {\n      background-color: #e6ded7;\n      font-weight: bold;\n    }\n    @media (max-width: 480px) {\n      #coffee-calculator {\n        padding: 20px;\n        margin: 20px 10px;\n      }\n      .button-group {\n        flex-direction: column;\n      }\n    }\n  <\/style>\n\n\n\n<div id=\"coffee-calculator\">\n  <h2 style=\"text-align:center;\">Coffee calculator<\/h2>\n\n  <label>Select the brewing method:<\/label>\n  <div class=\"button-group\" id=\"brewButtons\">\n    <button data-method=\"filter\" data-ratio=\"16\">Filter.<\/button>\n    <button data-method=\"french\" data-ratio=\"15\">French press<\/button>\n    <button data-method=\"espresso\" data-ratio=\"2\">Espresso<\/button>\n    <button data-method=\"aeropress\" data-ratio=\"12\">Aeropress<\/button>\n    <button data-method=\"chemex\" data-ratio=\"17\">Kemex<\/button>\n    <button data-method=\"v60\" data-ratio=\"16.5\">V60<\/button>\n  <\/div>\n\n  <label>Select the volume of the drink:<\/label>\n  <div class=\"button-group\" id=\"sizeButtons\">\n    <button data-size=\"150\">1 cup<\/button>\n    <button data-size=\"300\">2 cups<\/button>\n    <button data-size=\"450\">3 cups<\/button>\n    <button data-size=\"600\">4 cups<\/button>\n  <\/div>\n\n  <label>Choose the strength:<\/label>\n  <div class=\"button-group\" id=\"strengthButtons\">\n    <button data-strength=\"0.9\">Light<\/button>\n    <button data-strength=\"1\" class=\"selected\">Standard<\/button>\n    <button data-strength=\"1.1\">Durable<\/button>\n  <\/div>\n\n  <label>Roasting level:<\/label>\n  <div class=\"button-group\" id=\"roastButtons\">\n    <button data-roast=\"filter\">Under the filter<\/button>\n    <button data-roast=\"espresso\" class=\"selected\">For espresso<\/button>\n  <\/div>\n\n  <button class=\"calc-btn\" onclick=\"calculateResult()\">Calculate the coffee recipe<\/button>\n\n  <table id=\"resultTable\">\n    <tr><th>Parameter<\/th><th>Value.<\/th><\/tr>\n    <tr><td>Brewing method<\/td><td id=\"t_brew\"><\/td><\/tr>\n    <tr><td>Water volume<\/td><td id=\"t_water\"><\/td><\/tr>\n    <tr><td>Water temperature<\/td><td id=\"t_temp\"><\/td><\/tr>\n    <tr><td>Ratio.<\/td><td id=\"t_ratio\"><\/td><\/tr>\n    <tr><td>The amount of coffee<\/td><td id=\"t_coffee\"><\/td><\/tr>\n    <tr><td>Brewing time<\/td><td id=\"t_time\"><\/td><\/tr>\n  <\/table>\n<\/div>\n\n<script>\n  let selectedBrewRatio = null;\n  let selectedBrewText = \"\";\n  let selectedMethod = null;\n  let selectedStrength = 1;\n  let selectedSize = null;\n  let selectedRoast = \"espresso\";\n\n  const sizeButtons = document.querySelectorAll(\"#sizeButtons button\");\n  const strengthButtons = document.querySelectorAll(\"#strengthButtons button\");\n  const roastButtons = document.querySelectorAll(\"#roastButtons button\");\n\n  function roundToHalf(x) {\n    return Math.round(x * 2) \/ 2;\n  }\n\n  function selectHandler(groupSelector, callback) {\n    document.querySelectorAll(groupSelector + \" button\").forEach(btn => {\n      btn.addEventListener(\"click\", function () {\n        if (this.disabled) return;\n        document.querySelectorAll(groupSelector + \" button\").forEach(b => b.classList.remove(\"selected\"));\n        this.classList.add(\"selected\");\n        callback(this);\n      });\n    });\n  }\n\n  function applySizeAvailability() {\n    const isEspresso = selectedMethod === 'espresso';\n    const isAero = selectedMethod === 'aeropress';\n    sizeButtons.forEach((btn, idx) => {\n      if ((isEspresso || isAero) && idx >= 2) {\n        btn.disabled = true;\n        btn.classList.remove(\"selected\");\n        if (selectedSize && (selectedSize === 450 || selectedSize === 600)) {\n          selectedSize = null;\n        }\n      } else {\n        btn.disabled = false;\n      }\n    });\n  }\n\n  function applyStrengthAvailability() {\n    const isEspresso = selectedMethod === 'espresso';\n    strengthButtons.forEach(btn => {\n      btn.disabled = isEspresso;\n      if (isEspresso) btn.classList.remove(\"selected\");\n    });\n    if (isEspresso) selectedStrength = 1; \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u043b\u0430 \u0434\u043b\u044f \u0435\u0441\u043f\u0440\u0435\u0441\u043e\n  }\n\n  function applyRoastConstraints() {\n    const needsFilterRoast = (selectedMethod === 'filter' || selectedMethod === 'v60');\n    roastButtons.forEach(btn => {\n      const roast = btn.dataset.roast;\n      if (needsFilterRoast) {\n        if (roast === 'filter') {\n          btn.disabled = false;\n          btn.classList.add(\"selected\");\n          selectedRoast = 'filter';\n        } else {\n          btn.disabled = true;\n          btn.classList.remove(\"selected\");\n        }\n      } else {\n        btn.disabled = false;\n        if (!document.querySelector('#roastButtons button.selected')) {\n          btn.classList.toggle(\"selected\", roast === selectedRoast);\n        }\n      }\n    });\n  }\n\n  selectHandler(\"#brewButtons\", btn => {\n    selectedBrewRatio = parseFloat(btn.dataset.ratio);\n    selectedBrewText = btn.innerText;\n    selectedMethod = btn.dataset.method;\n\n    applySizeAvailability();\n    applyStrengthAvailability();\n    applyRoastConstraints();\n  });\n\n  selectHandler(\"#strengthButtons\", btn => {\n    selectedStrength = parseFloat(btn.dataset.strength);\n  });\n\n  selectHandler(\"#sizeButtons\", btn => {\n    selectedSize = parseFloat(btn.dataset.size);\n  });\n\n  selectHandler(\"#roastButtons\", btn => {\n    selectedRoast = btn.dataset.roast;\n    applyRoastConstraints();\n  });\n\n  function calculateResult() {\n    if (!selectedBrewRatio || !selectedBrewText || !selectedMethod) return alert(\"\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u0432\u0430\u0440\u044e\u0432\u0430\u043d\u043d\u044f\");\n    if (!selectedSize) return alert(\"\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u043e\u0431\u02bc\u0454\u043c \u043d\u0430\u043f\u043e\u044e\");\n\n    let water = selectedSize; \/\/ \u043c\u043b\n    let coffee = 0;\n    let ratioText = `1:${selectedBrewRatio}`;\n    let timeText = '2\u20134 \u0445\u0432\u0438\u043b\u0438\u043d\u0438';\n    let tempText = '92\u201396\u00b0C';\n\n    if (selectedMethod === 'espresso') {\n      coffee = selectedSize <= 150 ? 9 : 18;\n      coffee = roundToHalf(coffee);\n      water = selectedSize <= 150 ? 30 : 60;\n      ratioText = '1:2';\n      timeText = '25\u201330 \u0441\u0435\u043a\u0443\u043d\u0434';\n      tempText = '92\u201394\u00b0C';\n    } else {\n      \/\/ \u2705 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0441\u0438\u043b\u044b: \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 selectedStrength\n      const roastFactor = selectedRoast === 'filter' ? 0.95 : 1.0;\n      coffee = (water \/ selectedBrewRatio) * selectedStrength * roastFactor;\n      coffee = roundToHalf(coffee);\n\n      const brewTimes = {\n        'filter': '3\u20134 \u0445\u0432\u0438\u043b\u0438\u043d\u0438',\n        'french': '4 \u0445\u0432\u0438\u043b\u0438\u043d\u0438',\n        'aeropress': '2 \u0445\u0432\u0438\u043b\u0438\u043d\u0438',\n        'chemex': '3.5\u20134.5 \u0445\u0432\u0438\u043b\u0438\u043d\u0438',\n        'v60': '2.5\u20133 \u0445\u0432\u0438\u043b\u0438\u043d\u0438'\n      };\n      timeText = brewTimes[selectedMethod] || '2\u20134 \u0445\u0432\u0438\u043b\u0438\u043d\u0438';\n    }\n\n    document.getElementById(\"t_brew\").innerText = selectedBrewText;\n    document.getElementById(\"t_water\").innerText = `${water.toFixed(0)} \u043c\u043b`;\n    document.getElementById(\"t_ratio\").innerText = ratioText;\n    document.getElementById(\"t_coffee\").innerText = `${coffee.toFixed(1)} \u0433`;\n    document.getElementById(\"t_time\").innerText = timeText;\n    document.getElementById(\"t_temp\").innerText = tempText;\n\n    document.getElementById(\"resultTable\").style.display = 'table';\n  }\n<\/script>\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">How to use the Coffee Calculator?<\/h2>\n\n<p>We've created a simple tool to help you calculate the ideal coffee to water ratio for different brewing methods - taking into account the volume of the drink, the desired strength, and the level of roast.<\/p>\n\n<h3 class=\"wp-block-heading\">Step 1: Select the brewing method<\/h3>\n\n<p>First, choose the method of coffee preparation: V60, Filter, French Press, Aeropress, Keurig, or Espresso. Each has its own recommended coffee to water ratio and brewing time. <\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Step 2: Specify the desired volume of the drink<\/h3>\n<\/blockquote>\n\n<p>Select the number of cups: from 1 to 4. The calculator will automatically convert this to milliliters and adapt the calculation formula. <\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>For espresso and aeropress<\/strong>, volumes of more than 2 cups are not available, as this contradicts the technical features of brewing.<\/p>\n<\/blockquote>\n\n<h3 class=\"wp-block-heading\">Step 3: Choose the strength of the drink<\/h3>\n\n<p>For most methods, you can choose from light, standard, or strong coffee. The calculator changes the ratio of coffee to water according to the selected flavor intensity. <\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>For espresso<\/strong>, the strength does not change - it is constant, and the corresponding setting is automatically turned off.<\/p>\n<\/blockquote>\n\n<h3 class=\"wp-block-heading\">Step 4: Specify the roasting level<\/h3>\n\n<p>Choose between <strong>\"Filter<\/strong> roast\" or <strong>\"Espresso<\/strong> roast\". This affects the flavor profile and recipe calculation. <\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>If you have selected the V60 or Filter method, the calculator will automatically select the appropriate roast \"Under the filter\", as these methods reveal the coffee in this profile.<\/p>\n<\/blockquote>\n\n<h3 class=\"wp-block-heading\">Step 5: Click \"Calculate recipe\"<\/h3>\n\n<p>The calculator will show you the full recipe:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>brewing method<\/li>\n\n\n\n<li>water volume<\/li>\n\n\n\n<li>recommended temperature<\/li>\n\n\n\n<li>coffee to water ratio<\/li>\n\n\n\n<li>amount of coffee in grams (rounded to the nearest 0.5 g)<\/li>\n\n\n\n<li>approximate brewing time<\/li>\n<\/ul>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Tip:<\/strong> experiment with the parameters to find the perfect recipe for your taste and type of grain.<\/p>\n<\/blockquote>\n\n<p><strong>Coffee is more than a drink. It is a tradition. <\/strong><\/p>\n\n<h2 class=\"wp-block-heading\">Coffee to water ratio: how to choose the right one?<\/h2>\n\n<p>The ideal ratio of coffee to water depends on the brewing method and the desired strength of the drink. Our calculator automatically takes this into account - but here are some basic guidelines if you want to get a better understanding of the principle. <\/p>\n\n<div data-block-name=\"woocommerce\/accordion-group\" data-wp-context=\"{&quot;autoclose&quot;:false,&quot;isOpen&quot;:[]}\" data-wp-interactive=\"woocommerce\/accordion\" class=\"wp-block-woocommerce-accordion-group is-layout-flow wp-block-woocommerce-accordion-group-is-layout-flow\">\n<div data-block-name=\"woocommerce\/accordion-item\" data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{&quot;id&quot;:&quot;woocommerce-accordion-item-1&quot;,&quot;openByDefault&quot;:false}\" data-wp-init=\"callbacks.initIsOpen\" class=\"wp-block-woocommerce-accordion-item is-layout-flow wp-block-woocommerce-accordion-item-is-layout-flow\">\n<h3 data-block-name=\"woocommerce\/accordion-header\" data-translated-with-w-p-m-l-t-m=\"1\" class=\"wp-block-woocommerce-accordion-header accordion-item__heading is-layout-flow wp-block-woocommerce-accordion-header-is-layout-flow\"><button aria-expanded=\"false\" aria-controls=\"woocommerce-accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"woocommerce-accordion-item-1\" class=\"accordion-item__toggle\"><span>Filter and V60<\/span><span class=\"accordion-item__toggle-icon has-icon-plus\" style=\"width:1.2em;height:1.2em\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1.2em\" height=\"1.2em\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" fill=\"currentColor\"><\/path><\/svg><\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"woocommerce-accordion-item-1\" data-wp-bind--inert=\"!state.isOpen\" id=\"woocommerce-accordion-item-1-panel\" role=\"region\" data-block-name=\"woocommerce\/accordion-panel\" class=\"wp-block-woocommerce-accordion-panel\"><div class=\"accordion-content__wrapper is-layout-flow wp-block-woocommerce-accordion-panel-is-layout-flow\">\n<p>We recommend three options depending on the desired strength:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Light coffee<\/strong> - 1:18 (meets the SCA Golden Cup standard)<\/li>\n\n\n\n<li><strong>Average strength<\/strong> - 1:16<\/li>\n\n\n\n<li><strong>Strong coffee<\/strong> - 1:13<\/li>\n<\/ul>\n\n\n\n<p>These methods are best suited for <strong>\"under the filter\"<\/strong> roasting, where the flavor is revealed as purely and flavorfully as possible.<\/p>\n<\/div><\/div>\n<\/div>\n\n\n\n<div data-block-name=\"woocommerce\/accordion-item\" data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{&quot;id&quot;:&quot;woocommerce-accordion-item-2&quot;,&quot;openByDefault&quot;:false}\" data-wp-init=\"callbacks.initIsOpen\" class=\"wp-block-woocommerce-accordion-item is-layout-flow wp-block-woocommerce-accordion-item-is-layout-flow\">\n<h3 data-block-name=\"woocommerce\/accordion-header\" data-translated-with-w-p-m-l-t-m=\"1\" class=\"wp-block-woocommerce-accordion-header accordion-item__heading is-layout-flow wp-block-woocommerce-accordion-header-is-layout-flow\"><button aria-expanded=\"false\" aria-controls=\"woocommerce-accordion-item-2-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"woocommerce-accordion-item-2\" class=\"accordion-item__toggle\"><span>French press<\/span><span class=\"accordion-item__toggle-icon has-icon-plus\" style=\"width:1.2em;height:1.2em\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1.2em\" height=\"1.2em\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" fill=\"currentColor\"><\/path><\/svg><\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"woocommerce-accordion-item-2\" data-wp-bind--inert=\"!state.isOpen\" id=\"woocommerce-accordion-item-2-panel\" role=\"region\" data-block-name=\"woocommerce\/accordion-panel\" class=\"wp-block-woocommerce-accordion-panel\"><div class=\"accordion-content__wrapper is-layout-flow wp-block-woocommerce-accordion-panel-is-layout-flow\">\n<p>Thanks to its longer brewing time and full immersion, the French press produces a rich cup:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Easy<\/strong> - 1:18<\/li>\n\n\n\n<li><strong>Average<\/strong> - 1:15<\/li>\n\n\n\n<li><strong>Strong<\/strong> - 1:13<\/li>\n<\/ul>\n\n\n\n<p>The flavor will be more \"fleshy\" and rounded - especially with medium roasting.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div data-block-name=\"woocommerce\/accordion-group\" data-wp-context=\"{&quot;autoclose&quot;:false,&quot;isOpen&quot;:[]}\" data-wp-interactive=\"woocommerce\/accordion\" class=\"wp-block-woocommerce-accordion-group is-layout-flow wp-block-woocommerce-accordion-group-is-layout-flow\">\n<div data-block-name=\"woocommerce\/accordion-item\" data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{&quot;id&quot;:&quot;woocommerce-accordion-item-3&quot;,&quot;openByDefault&quot;:false}\" data-wp-init=\"callbacks.initIsOpen\" class=\"wp-block-woocommerce-accordion-item is-layout-flow wp-block-woocommerce-accordion-item-is-layout-flow\">\n<h3 data-block-name=\"woocommerce\/accordion-header\" data-translated-with-w-p-m-l-t-m=\"1\" class=\"wp-block-woocommerce-accordion-header accordion-item__heading is-layout-flow wp-block-woocommerce-accordion-header-is-layout-flow\"><button aria-expanded=\"false\" aria-controls=\"woocommerce-accordion-item-3-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"woocommerce-accordion-item-3\" class=\"accordion-item__toggle\"><span>Kemex<\/span><span class=\"accordion-item__toggle-icon has-icon-plus\" style=\"width:1.2em;height:1.2em\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1.2em\" height=\"1.2em\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" fill=\"currentColor\"><\/path><\/svg><\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"woocommerce-accordion-item-3\" data-wp-bind--inert=\"!state.isOpen\" id=\"woocommerce-accordion-item-3-panel\" role=\"region\" data-block-name=\"woocommerce\/accordion-panel\" class=\"wp-block-woocommerce-accordion-panel\"><div class=\"accordion-content__wrapper is-layout-flow wp-block-woocommerce-accordion-panel-is-layout-flow\">\n<p>Like the V60, the Chemex requires a filter and fine grinding:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Easy<\/strong> - 1:18<\/li>\n\n\n\n<li><strong>Average<\/strong> - 1:16<\/li>\n\n\n\n<li><strong>Strong<\/strong> - 1:13<\/li>\n<\/ul>\n\n\n\n<p>Perfect for light to medium roasting.<\/p>\n<\/div><\/div>\n<\/div>\n\n\n\n<div data-block-name=\"woocommerce\/accordion-item\" data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{&quot;id&quot;:&quot;woocommerce-accordion-item-4&quot;,&quot;openByDefault&quot;:false}\" data-wp-init=\"callbacks.initIsOpen\" class=\"wp-block-woocommerce-accordion-item is-layout-flow wp-block-woocommerce-accordion-item-is-layout-flow\">\n<h3 data-block-name=\"woocommerce\/accordion-header\" data-translated-with-w-p-m-l-t-m=\"1\" class=\"wp-block-woocommerce-accordion-header accordion-item__heading is-layout-flow wp-block-woocommerce-accordion-header-is-layout-flow\"><button aria-expanded=\"false\" aria-controls=\"woocommerce-accordion-item-4-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"woocommerce-accordion-item-4\" class=\"accordion-item__toggle\"><span>Aeropress<\/span><span class=\"accordion-item__toggle-icon has-icon-plus\" style=\"width:1.2em;height:1.2em\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1.2em\" height=\"1.2em\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" fill=\"currentColor\"><\/path><\/svg><\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"woocommerce-accordion-item-4\" data-wp-bind--inert=\"!state.isOpen\" id=\"woocommerce-accordion-item-4-panel\" role=\"region\" data-block-name=\"woocommerce\/accordion-panel\" class=\"wp-block-woocommerce-accordion-panel\"><div class=\"accordion-content__wrapper is-layout-flow wp-block-woocommerce-accordion-panel-is-layout-flow\">\n<p>A multifunctional method with a short brewing time. We use the ratio: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The average ratio<\/strong> is 1:12<br\/>(You can vary it to your liking)<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Please note:<\/strong> The Aeropress is usually used for 1-2 cups.<\/p>\n<\/blockquote>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div data-block-name=\"woocommerce\/accordion-group\" data-wp-context=\"{&quot;autoclose&quot;:false,&quot;isOpen&quot;:[]}\" data-wp-interactive=\"woocommerce\/accordion\" class=\"wp-block-woocommerce-accordion-group is-layout-flow wp-block-woocommerce-accordion-group-is-layout-flow\">\n<div data-block-name=\"woocommerce\/accordion-item\" data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{&quot;id&quot;:&quot;woocommerce-accordion-item-5&quot;,&quot;openByDefault&quot;:false}\" data-wp-init=\"callbacks.initIsOpen\" class=\"wp-block-woocommerce-accordion-item is-layout-flow wp-block-woocommerce-accordion-item-is-layout-flow\">\n<h3 data-block-name=\"woocommerce\/accordion-header\" data-translated-with-w-p-m-l-t-m=\"1\" class=\"wp-block-woocommerce-accordion-header accordion-item__heading is-layout-flow wp-block-woocommerce-accordion-header-is-layout-flow\"><button aria-expanded=\"false\" aria-controls=\"woocommerce-accordion-item-5-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"woocommerce-accordion-item-5\" class=\"accordion-item__toggle\"><span>Espresso<\/span><span class=\"accordion-item__toggle-icon has-icon-plus\" style=\"width:1.2em;height:1.2em\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1.2em\" height=\"1.2em\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" fill=\"currentColor\"><\/path><\/svg><\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"woocommerce-accordion-item-5\" data-wp-bind--inert=\"!state.isOpen\" id=\"woocommerce-accordion-item-5-panel\" role=\"region\" data-block-name=\"woocommerce\/accordion-panel\" class=\"wp-block-woocommerce-accordion-panel\"><div class=\"accordion-content__wrapper is-layout-flow wp-block-woocommerce-accordion-panel-is-layout-flow\">\n<p>A unique method where the ratio is much lower:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A typical ratio<\/strong> is 1:2<br\/>This means that 18 g of coffee makes about 36 g of drink.<\/li>\n<\/ul>\n\n\n\n<p>For espresso, the option to change the strength is not used - it is always fixed.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<h3 class=\"wp-block-heading\"><strong>All ratios are given as 1 gram of coffee to X grams (ml) of water.<\/strong><\/h3>\n\n<p>Use our calculator to get accurate coffee and water values based on your parameters.<\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Tip:<\/strong> The exact ratio is just a starting point. Don't be afraid to experiment! The type of coffee, grind, water, and equipment all make a difference. And our calculator will help make this process easier.   <\/p>\n<\/blockquote>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Coffee calculator &#8211; Kyiv City Roast Coffee calculator Select the brewing method: Filter. French press Espresso Aeropress Kemex V60 Select the volume of the drink: 1 cup 2 cups 3 cups 4 cups Choose the strength: Light Standard Durable Roasting level: Under the filter For espresso Calculate the coffee recipe Parameter Value. Brewing method Water [&hellip;]<\/p>\n","protected":false},"author":10858,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-46250","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery<\/title>\n<meta name=\"description\" content=\"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery\" \/>\n<meta property=\"og:description\" content=\"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"\u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0430 \u041c\u0456\u0441\u044c\u043a\u0430 \u0420\u043e\u0441\u0442\u0435\u0440\u0456\u044f\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kyivcityroast\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-20T10:23:09+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/coffee-recipe-calculator\\\/\",\"url\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/coffee-recipe-calculator\\\/\",\"name\":\"Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#website\"},\"datePublished\":\"2025-10-13T19:30:37+00:00\",\"dateModified\":\"2025-10-20T10:23:09+00:00\",\"description\":\"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/coffee-recipe-calculator\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/coffee-recipe-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/coffee-recipe-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Coffee recipe calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/\",\"name\":\"kyivcityroast\",\"description\":\"\u041f\u0440\u043e\u0434\u0430\u0436 \u043a\u0430\u0432\u0438 \u0432 \u0423\u043a\u0440\u0430\u0457\u043d\u0456\",\"publisher\":{\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#organization\",\"name\":\"kyivcityroast\",\"url\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo_kyivcityroast.svg\",\"contentUrl\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo_kyivcityroast.svg\",\"width\":55,\"height\":50,\"caption\":\"kyivcityroast\"},\"image\":{\"@id\":\"https:\\\/\\\/kyivcityroast.com.ua\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/kyivcityroast\",\"https:\\\/\\\/www.instagram.com\\\/kyiv_city_roast\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@kyivcityroast1615\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/68334420\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery","description":"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/","og_locale":"en_US","og_type":"article","og_title":"Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery","og_description":"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!","og_url":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/","og_site_name":"\u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0430 \u041c\u0456\u0441\u044c\u043a\u0430 \u0420\u043e\u0441\u0442\u0435\u0440\u0456\u044f","article_publisher":"https:\/\/www.facebook.com\/kyivcityroast","article_modified_time":"2025-10-20T10:23:09+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/","url":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/","name":"Coffee calculator - Calculate the perfect brewing recipe | Kyiv City Roastery","isPartOf":{"@id":"https:\/\/kyivcityroast.com.ua\/en\/#website"},"datePublished":"2025-10-13T19:30:37+00:00","dateModified":"2025-10-20T10:23:09+00:00","description":"The online coffee calculator from Kyiv City Roastery will help you calculate the ideal coffee to water ratio for V60, filter, French press, espresso, and other methods. Choose the volume, strength, and roast - get the exact recipe in 1 click!","breadcrumb":{"@id":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kyivcityroast.com.ua\/en\/coffee-recipe-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kyivcityroast.com.ua\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Coffee recipe calculator"}]},{"@type":"WebSite","@id":"https:\/\/kyivcityroast.com.ua\/en\/#website","url":"https:\/\/kyivcityroast.com.ua\/en\/","name":"kyivcityroast","description":"\u041f\u0440\u043e\u0434\u0430\u0436 \u043a\u0430\u0432\u0438 \u0432 \u0423\u043a\u0440\u0430\u0457\u043d\u0456","publisher":{"@id":"https:\/\/kyivcityroast.com.ua\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kyivcityroast.com.ua\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kyivcityroast.com.ua\/en\/#organization","name":"kyivcityroast","url":"https:\/\/kyivcityroast.com.ua\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kyivcityroast.com.ua\/en\/#\/schema\/logo\/image\/","url":"https:\/\/kyivcityroast.com.ua\/wp-content\/uploads\/2024\/10\/logo_kyivcityroast.svg","contentUrl":"https:\/\/kyivcityroast.com.ua\/wp-content\/uploads\/2024\/10\/logo_kyivcityroast.svg","width":55,"height":50,"caption":"kyivcityroast"},"image":{"@id":"https:\/\/kyivcityroast.com.ua\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kyivcityroast","https:\/\/www.instagram.com\/kyiv_city_roast\/","https:\/\/www.youtube.com\/@kyivcityroast1615","https:\/\/www.linkedin.com\/company\/68334420\/"]}]}},"_links":{"self":[{"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/pages\/46250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/users\/10858"}],"replies":[{"embeddable":true,"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/comments?post=46250"}],"version-history":[{"count":1,"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/pages\/46250\/revisions"}],"predecessor-version":[{"id":46251,"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/pages\/46250\/revisions\/46251"}],"wp:attachment":[{"href":"https:\/\/kyivcityroast.com.ua\/en\/wp-json\/wp\/v2\/media?parent=46250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}