{
  "title": "Preferment calculator",
  "human_url": "https://happytails.ai/en/calculators/preferment-calculator/",
  "agent_url": "https://happytails.ai/agents/en/calculators/preferment-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/preferment-calculator.md",
  "content": "Preferment calculator\nSplit flour and water among seed starter, preferment feed and final dough without counting anything twice.\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 Preferment 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\nSourdough hydration calculator\nAllocate the prefermented flour\nChoose total recipe flour, overall hydration, the fraction of flour prefermented and ripe preferment hydration. The final dough receives only what remains after the preferment.\nInclude the seed in the total\nSeed flour and water are already part of the ripe preferment. For the example, 20 g of 100%-hydration seed contributes 10 g of each; feed adds 190 g flour and 190 g water to reach 400 g.\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": "Sourdough hydration calculator",
      "url": "https://happytails.ai/en/calculators/sourdough-hydration-calculator/"
    }
  ],
  "tool": {
    "id": "preferment-calculator",
    "category": "calculators",
    "built": true,
    "requirements": "The starter is modeled as flour plus water. Impossible flour or water budgets are rejected. Maturity, yeast additions and fermentation timing are not predicted.",
    "implementation": {
      "fields": [
        {
          "key": "flour",
          "label": "Total flour across the entire dough",
          "value": 1000,
          "type": "number",
          "min": 0,
          "max": 100000000,
          "step": "any"
        },
        {
          "key": "massUnit",
          "label": "Mass unit",
          "value": "g",
          "type": "select",
          "values": [
            "g",
            "kg",
            "oz",
            "lb"
          ]
        },
        {
          "key": "hydration",
          "label": "Overall hydration (%)",
          "value": 70,
          "type": "number",
          "min": 0,
          "max": 300,
          "step": "any"
        },
        {
          "key": "prefermented",
          "label": "Flour allocated to preferment (%)",
          "value": 20,
          "type": "number",
          "min": 0,
          "max": 100,
          "step": "any"
        },
        {
          "key": "prefermentHydration",
          "label": "Ripe preferment hydration (%)",
          "value": 100,
          "type": "number",
          "min": 0,
          "max": 500,
          "step": "any"
        },
        {
          "key": "seedMass",
          "label": "Seed starter mass included in preferment",
          "value": 20,
          "type": "number",
          "min": 0,
          "max": 100000000,
          "step": "any"
        },
        {
          "key": "seedHydration",
          "label": "Seed starter hydration (%)",
          "value": 100,
          "type": "number",
          "min": 0,
          "max": 500,
          "step": "any"
        },
        {
          "key": "salt",
          "label": "Final salt as % of all flour",
          "value": 2,
          "type": "number",
          "min": 0,
          "max": 20,
          "step": "any"
        }
      ],
      "input": false,
      "live": true,
      "presentation": "metrics",
      "note": "Split seed, preferment feed and final dough without counting flour or water twice. Seed and preferment contributions must fit within the specified totals. 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": "# Preferment calculator\n\n- Human page: https://happytails.ai/en/calculators/preferment-calculator/\n- Markdown: https://happytails.ai/en/calculators/preferment-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/preferment-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `preferment-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\nSplit seed, preferment feed and final dough without counting flour or water twice. Seed and preferment contributions must fit within the specified totals. 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| `flour` | Total flour across the entire dough | number | 1000 | min=0 max=100000000 step=any |\n| `massUnit` | Mass unit | select | \"g\" | Allowed: g, kg, oz, lb |\n| `hydration` | Overall hydration (%) | number | 70 | min=0 max=300 step=any |\n| `prefermented` | Flour allocated to preferment (%) | number | 20 | min=0 max=100 step=any |\n| `prefermentHydration` | Ripe preferment hydration (%) | number | 100 | min=0 max=500 step=any |\n| `seedMass` | Seed starter mass included in preferment | number | 20 | min=0 max=100000000 step=any |\n| `seedHydration` | Seed starter hydration (%) | number | 100 | min=0 max=500 step=any |\n| `salt` | Final salt as % of all flour | number | 2 | min=0 max=20 step=any |\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\nThe starter is modeled as flour plus water. Impossible flour or water budgets are rejected. Maturity, yeast additions and fermentation timing are not predicted.\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\": \"preferment-calculator\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"The starter is modeled as flour plus water. Impossible flour or water budgets are rejected. Maturity, yeast additions and fermentation timing are not predicted.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"flour\",\n        \"label\": \"Total flour across the entire dough\",\n        \"value\": 1000,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100000000,\n        \"step\": \"any\"\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        \"key\": \"hydration\",\n        \"label\": \"Overall hydration (%)\",\n        \"value\": 70,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 300,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"prefermented\",\n        \"label\": \"Flour allocated to preferment (%)\",\n        \"value\": 20,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"prefermentHydration\",\n        \"label\": \"Ripe preferment hydration (%)\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 500,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"seedMass\",\n        \"label\": \"Seed starter mass included in preferment\",\n        \"value\": 20,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100000000,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"seedHydration\",\n        \"label\": \"Seed starter hydration (%)\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 500,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"salt\",\n        \"label\": \"Final salt as % of all flour\",\n        \"value\": 2,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 20,\n        \"step\": \"any\"\n      }\n    ],\n    \"input\": false,\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Split seed, preferment feed and final dough without counting flour or water twice. Seed and preferment contributions must fit within the specified totals. 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\nSplit flour and water among seed starter, preferment feed and final dough without counting anything twice.\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 Preferment 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- [Sourdough hydration calculator](https://happytails.ai/en/calculators/sourdough-hydration-calculator/) ([Markdown](https://happytails.ai/en/calculators/sourdough-hydration-calculator.md))\n\n## Allocate the prefermented flour\n\nChoose total recipe flour, overall hydration, the fraction of flour prefermented and ripe preferment hydration. The final dough receives only what remains after the preferment.\n\n### Include the seed in the total\n\nSeed flour and water are already part of the ripe preferment. For the example, 20 g of 100%-hydration seed contributes 10 g of each; feed adds 190 g flour and 190 g water to reach 400 g.\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"
}