{
  "title": "Sourdough hydration calculator",
  "human_url": "https://happytails.ai/en/calculators/sourdough-hydration-calculator/",
  "agent_url": "https://happytails.ai/agents/en/calculators/sourdough-hydration-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/sourdough-hydration-calculator.md",
  "content": "Sourdough hydration calculator\nCalculate overall hydration including your starter, or find the separate water needed for a target hydration.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Sourdough hydration calculator\nEnter the measurements and assumptions for this recipe or plan.\nReview the calculated quantities and their stated basis.\nDownload the report and verify it against your measured result.\nUseful next steps\nBaker's percentage calculator\nPreferment calculator\nCount the starter contributions\nA 100 g starter at 100% hydration contains 50 g flour and 50 g water. Added to 500 g flour and 300 g water, the overall dough is about 63.64% hydration.\nSolve for the next mix\nSwitch to Reach target hydration to calculate added water while holding flour and starter fixed. At 70% in the example, add 335 g water outside the starter.\nSave the result\nDownload CSV and a text or JSON report with the calculation and its assumptions. Processing stays on your device. Check measurements and selected units before using the result.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Baker's percentage calculator",
      "url": "https://happytails.ai/en/calculators/bakers-percentage-calculator/"
    },
    {
      "name": "Preferment calculator",
      "url": "https://happytails.ai/en/calculators/preferment-calculator/"
    }
  ],
  "tool": {
    "id": "sourdough-hydration-calculator",
    "category": "calculators",
    "built": true,
    "requirements": "Starter is treated as flour and water only. Water in eggs, dairy and other ingredients is not inferred. Negative required added water is rejected.",
    "implementation": {
      "fields": [
        {
          "key": "mode",
          "label": "Calculate",
          "value": "Measure existing dough",
          "type": "select",
          "values": [
            "Measure existing dough",
            "Reach target hydration"
          ]
        },
        {
          "key": "flour",
          "label": "Flour added outside the starter",
          "value": 500,
          "type": "number",
          "min": 0,
          "max": 100000000,
          "step": "any"
        },
        {
          "key": "water",
          "label": "Water added outside the starter",
          "value": 300,
          "type": "number",
          "min": 0,
          "max": 100000000,
          "step": "any",
          "showWhen": {
            "mode": [
              "Measure existing dough"
            ]
          }
        },
        {
          "key": "starter",
          "label": "Starter mass",
          "value": 100,
          "type": "number",
          "min": 0,
          "max": 100000000,
          "step": "any"
        },
        {
          "key": "starterHydration",
          "label": "Starter hydration (%)",
          "value": 100,
          "type": "number",
          "min": 0,
          "max": 500,
          "step": "any"
        },
        {
          "key": "targetHydration",
          "label": "Target overall hydration (%)",
          "value": 70,
          "type": "number",
          "min": 0,
          "max": 300,
          "step": "any",
          "showWhen": {
            "mode": [
              "Reach target hydration"
            ]
          }
        },
        {
          "key": "massUnit",
          "label": "Mass unit",
          "value": "g",
          "type": "select",
          "values": [
            "g",
            "kg",
            "oz",
            "lb"
          ]
        }
      ],
      "input": false,
      "live": true,
      "presentation": "metrics",
      "note": "Count starter flour and water in the overall hydration, or calculate separate water needed for a target. Other ingredients’ water is not inferred. Calculated on your device. Changing units keeps the entered numbers.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Sourdough hydration calculator\n\n- Human page: https://happytails.ai/en/calculators/sourdough-hydration-calculator/\n- Markdown: https://happytails.ai/en/calculators/sourdough-hydration-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/sourdough-hydration-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `sourdough-hydration-calculator` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCount starter flour and water in the overall hydration, or calculate separate water needed for a target. Other ingredients’ water is not inferred. Calculated on your device. Changing units keeps the entered numbers.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `mode` | Calculate | select | \"Measure existing dough\" | Allowed: Measure existing dough, Reach target hydration |\n| `flour` | Flour added outside the starter | number | 500 | min=0 max=100000000 step=any |\n| `water` | Water added outside the starter | number | 300 | min=0 max=100000000 step=any |\n| `starter` | Starter mass | number | 100 | min=0 max=100000000 step=any |\n| `starterHydration` | Starter hydration (%) | number | 100 | min=0 max=500 step=any |\n| `targetHydration` | Target overall hydration (%) | number | 70 | min=0 max=300 step=any |\n| `massUnit` | Mass unit | select | \"g\" | Allowed: g, kg, oz, lb |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nStarter is treated as flour and water only. Water in eggs, dairy and other ingredients is not inferred. Negative required added water is rejected.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"sourdough-hydration-calculator\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Starter is treated as flour and water only. Water in eggs, dairy and other ingredients is not inferred. Negative required added water is rejected.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"mode\",\n        \"label\": \"Calculate\",\n        \"value\": \"Measure existing dough\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Measure existing dough\",\n          \"Reach target hydration\"\n        ]\n      },\n      {\n        \"key\": \"flour\",\n        \"label\": \"Flour added outside the starter\",\n        \"value\": 500,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100000000,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"water\",\n        \"label\": \"Water added outside the starter\",\n        \"value\": 300,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100000000,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"mode\": [\n            \"Measure existing dough\"\n          ]\n        }\n      },\n      {\n        \"key\": \"starter\",\n        \"label\": \"Starter mass\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100000000,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"starterHydration\",\n        \"label\": \"Starter hydration (%)\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 500,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"targetHydration\",\n        \"label\": \"Target overall hydration (%)\",\n        \"value\": 70,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 300,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"mode\": [\n            \"Reach target hydration\"\n          ]\n        }\n      },\n      {\n        \"key\": \"massUnit\",\n        \"label\": \"Mass unit\",\n        \"value\": \"g\",\n        \"type\": \"select\",\n        \"values\": [\n          \"g\",\n          \"kg\",\n          \"oz\",\n          \"lb\"\n        ]\n      }\n    ],\n    \"input\": false,\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Count starter flour and water in the overall hydration, or calculate separate water needed for a target. Other ingredients’ water is not inferred. Calculated on your device. Changing units keeps the entered numbers.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nCalculate overall hydration including your starter, or find the separate water needed for a target hydration.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Sourdough hydration calculator\n\n1. Enter the measurements and assumptions for this recipe or plan.\n2. Review the calculated quantities and their stated basis.\n3. Download the report and verify it against your measured result.\n\n## Useful next steps\n\n- [Baker's percentage calculator](https://happytails.ai/en/calculators/bakers-percentage-calculator/) ([Markdown](https://happytails.ai/en/calculators/bakers-percentage-calculator.md))\n\n- [Preferment calculator](https://happytails.ai/en/calculators/preferment-calculator/) ([Markdown](https://happytails.ai/en/calculators/preferment-calculator.md))\n\n## Count the starter contributions\n\nA 100 g starter at 100% hydration contains 50 g flour and 50 g water. Added to 500 g flour and 300 g water, the overall dough is about 63.64% hydration.\n\n### Solve for the next mix\n\nSwitch to Reach target hydration to calculate added water while holding flour and starter fixed. At 70% in the example, add 335 g water outside the starter.\n\n### Save the result\n\nDownload CSV and a text or JSON report with the calculation and its assumptions. Processing stays on your device. Check measurements and selected units before using the result.\n"
}