{
  "title": "Utility bill splitter",
  "human_url": "https://happytails.ai/en/calculators/utility-bill-splitter/",
  "agent_url": "https://happytails.ai/agents/en/calculators/utility-bill-splitter/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/utility-bill-splitter.md",
  "content": "Utility bill splitter\nSplit a shared electricity, gas or water bill by the days each person lived there and, if you have them, sub-meter readings. Shares are exact to the cent and always add up to the bill.\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 Utility bill splitter\nEnter the bill period and the fixed and usage charges from the bill.\nList the occupants, with move-in and move-out dates for anyone who was not there the whole period.\nTo split usage by sub-meters, choose that option and add each person’s start and end readings.\nOptionally name who paid the bill, then review the shares and download the CSV.\nUseful next steps\nExpense splitter\nElectricity bill calculator\nAppliance electricity cost calculator\nPerson-days\nEach occupant counts the calendar days they lived there inside the bill period, move-in and move-out days included. In the example, Ana is there all 30 days of September, Ben from the 11th (20 days) and Cleo until the 20th (20 days), 70 person-days in all. Fixed charges are always split this way.\nSub-meter readings\nWith sub-meters, usage charges follow each person’s metered usage, the way submetering bills each tenant for their portion (Wikipedia, checked 16 October 2026). Usage on the main bill above the sub-meter total, such as shared rooms, is shared by person-days.\nExact to the cent\nExact shares are rounded once to the currency’s smallest unit with the largest remainder (Hamilton) method (Wikipedia, checked 16 October 2026): everyone gets the whole cents of their share, and the cents left over go to the largest remainders. The 150 example gives 64.28, 42.86 and 42.86, which add up to 150.00 exactly. Equal remainders favour the person listed first.\nLimits\nUp to 50 occupants, bill periods of 1 to 366 days and charges up to 10,000,000 with 0, 2 or 3 decimal places. Meter readings go up to 1,000,000,000 with up to 3 decimals. This is arithmetic on your numbers, not a reading of tenancy law or tariffs.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Expense splitter",
      "url": "https://happytails.ai/en/calculators/expense-splitter/"
    },
    {
      "name": "Electricity bill calculator",
      "url": "https://happytails.ai/en/calculators/electricity-bill-calculator/"
    },
    {
      "name": "Appliance electricity cost calculator",
      "url": "https://happytails.ai/en/calculators/appliance-electricity-cost-calculator/"
    }
  ],
  "tool": {
    "id": "utility-bill-splitter",
    "category": "calculators",
    "built": true,
    "requirements": "One occupant per line, up to 50 occupants and 100,000 characters; bill periods of 1 to 366 days between 1900 and 2200; each charge 0 to 10,000,000 with 0, 2 or 3 decimal places; meter readings 0 to 1,000,000,000 with up to 3 decimals. Calculated on your device; download a JSON report and CSV files of results and shares.",
    "implementation": {
      "fields": [
        {
          "key": "decimals",
          "label": "Currency decimal places",
          "value": "2",
          "type": "select",
          "values": [
            "2",
            "0",
            "3"
          ],
          "labels": {
            "0": "0 (for example yen or won)",
            "2": "2 (for example cents or pence)",
            "3": "3 (for example fils or baisa)"
          }
        },
        {
          "key": "periodStart",
          "label": "Bill period start",
          "value": "2026-09-01",
          "type": "date"
        },
        {
          "key": "periodEnd",
          "label": "Bill period end",
          "value": "2026-09-30",
          "type": "date",
          "help": "The last day the bill covers."
        },
        {
          "key": "fixedCharge",
          "label": "Standing and fixed charges",
          "value": 30,
          "type": "number",
          "min": 0,
          "max": 10000000,
          "step": "any",
          "help": "Charges that do not depend on usage, including their tax. Split by person-days."
        },
        {
          "key": "usageCharge",
          "label": "Usage charges",
          "value": 120,
          "type": "number",
          "min": 0,
          "max": 10000000,
          "step": "any",
          "help": "Charges for energy or water used, including their tax."
        },
        {
          "key": "usageSplit",
          "label": "Split usage charges",
          "value": "By person-days",
          "type": "select",
          "values": [
            "By person-days",
            "By sub-meter readings"
          ]
        },
        {
          "key": "mainUsage",
          "label": "Total usage on the bill (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "help": "Usage above the sub-meter total is shared by person-days. Leave empty when the sub-meters cover everything.",
          "showWhen": {
            "usageSplit": [
              "By sub-meter readings"
            ]
          }
        },
        {
          "key": "payer",
          "label": "Bill paid by (optional)",
          "value": "",
          "type": "text",
          "maxLength": 80,
          "help": "An occupant name from the list, to show what each person owes them.",
          "required": false
        }
      ],
      "registrationFamily": "household-planning",
      "input": true,
      "live": false,
      "presentation": "metrics",
      "inputMaxLength": 100000,
      "inputErrorCode": "HOUSEHOLD_PLANNING_TOO_LONG",
      "note": "Calculated on your device for up to 50 occupants and bill periods up to 366 days. Shares are exact to the smallest currency unit and add up to the bill.",
      "inputKeywords": [
        {
          "id": "household-planning/utility-bill-splitter/occupants.header",
          "kind": "header",
          "code": "HOUSEHOLD_PLANNING_UTILITY_HEADER",
          "fold": "lower",
          "values": {
            "name": [
              "name",
              "Name"
            ],
            "moveIn": [
              "moveIn",
              "Move-in date"
            ],
            "moveOut": [
              "moveOut",
              "Move-out date"
            ],
            "meterStart": [
              "meterStart",
              "Sub-meter start reading"
            ],
            "meterEnd": [
              "meterEnd",
              "Sub-meter end reading"
            ]
          },
          "describedBy": [
            "Name the columns in this order: Name, Move-in date, Move-out date, Sub-meter start reading and Sub-meter end reading, or leave out the header row.",
            "Occupants"
          ]
        }
      ],
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 100000,
        "inputMode": "text",
        "label": "Occupants",
        "placeholder": "Ben, 2026-09-11",
        "help": "One person per line: name, then optional move-in date, move-out date (YYYY-MM-DD), and sub-meter start and end readings. Up to 100,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "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": "# Utility bill splitter\n\n- Human page: https://happytails.ai/en/calculators/utility-bill-splitter/\n- Markdown: https://happytails.ai/en/calculators/utility-bill-splitter.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/utility-bill-splitter/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `utility-bill-splitter` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\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\nCalculated on your device for up to 50 occupants and bill periods up to 366 days. Shares are exact to the smallest currency unit and add up to the bill.\n\n### Inputs and settings\n\nText input: Occupants.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nBen, 2026-09-11\n```\n\nOne person per line: name, then optional move-in date, move-out date (YYYY-MM-DD), and sub-meter start and end readings. Up to 100,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `decimals` | Currency decimal places | select | \"2\" | Allowed: 2, 0, 3 |\n| `periodStart` | Bill period start | date | \"2026-09-01\" |  |\n| `periodEnd` | Bill period end | date | \"2026-09-30\" |  |\n| `fixedCharge` | Standing and fixed charges | number | 30 | min=0 max=10000000 step=any |\n| `usageCharge` | Usage charges | number | 120 | min=0 max=10000000 step=any |\n| `usageSplit` | Split usage charges | select | \"By person-days\" | Allowed: By person-days, By sub-meter readings |\n| `mainUsage` | Total usage on the bill (optional) | number | \"\" | min=0 max=1000000000 step=any |\n| `payer` | Bill paid by (optional) | text | \"\" |  |\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\nOne occupant per line, up to 50 occupants and 100,000 characters; bill periods of 1 to 366 days between 1900 and 2200; each charge 0 to 10,000,000 with 0, 2 or 3 decimal places; meter readings 0 to 1,000,000,000 with up to 3 decimals. Calculated on your device; download a JSON report and CSV files of results and shares.\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\": \"utility-bill-splitter\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"One occupant per line, up to 50 occupants and 100,000 characters; bill periods of 1 to 366 days between 1900 and 2200; each charge 0 to 10,000,000 with 0, 2 or 3 decimal places; meter readings 0 to 1,000,000,000 with up to 3 decimals. Calculated on your device; download a JSON report and CSV files of results and shares.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"decimals\",\n        \"label\": \"Currency decimal places\",\n        \"value\": \"2\",\n        \"type\": \"select\",\n        \"values\": [\n          \"2\",\n          \"0\",\n          \"3\"\n        ],\n        \"labels\": {\n          \"0\": \"0 (for example yen or won)\",\n          \"2\": \"2 (for example cents or pence)\",\n          \"3\": \"3 (for example fils or baisa)\"\n        }\n      },\n      {\n        \"key\": \"periodStart\",\n        \"label\": \"Bill period start\",\n        \"value\": \"2026-09-01\",\n        \"type\": \"date\"\n      },\n      {\n        \"key\": \"periodEnd\",\n        \"label\": \"Bill period end\",\n        \"value\": \"2026-09-30\",\n        \"type\": \"date\",\n        \"help\": \"The last day the bill covers.\"\n      },\n      {\n        \"key\": \"fixedCharge\",\n        \"label\": \"Standing and fixed charges\",\n        \"value\": 30,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 10000000,\n        \"step\": \"any\",\n        \"help\": \"Charges that do not depend on usage, including their tax. Split by person-days.\"\n      },\n      {\n        \"key\": \"usageCharge\",\n        \"label\": \"Usage charges\",\n        \"value\": 120,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 10000000,\n        \"step\": \"any\",\n        \"help\": \"Charges for energy or water used, including their tax.\"\n      },\n      {\n        \"key\": \"usageSplit\",\n        \"label\": \"Split usage charges\",\n        \"value\": \"By person-days\",\n        \"type\": \"select\",\n        \"values\": [\n          \"By person-days\",\n          \"By sub-meter readings\"\n        ]\n      },\n      {\n        \"key\": \"mainUsage\",\n        \"label\": \"Total usage on the bill (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"help\": \"Usage above the sub-meter total is shared by person-days. Leave empty when the sub-meters cover everything.\",\n        \"showWhen\": {\n          \"usageSplit\": [\n            \"By sub-meter readings\"\n          ]\n        }\n      },\n      {\n        \"key\": \"payer\",\n        \"label\": \"Bill paid by (optional)\",\n        \"value\": \"\",\n        \"type\": \"text\",\n        \"maxLength\": 80,\n        \"help\": \"An occupant name from the list, to show what each person owes them.\",\n        \"required\": false\n      }\n    ],\n    \"registrationFamily\": \"household-planning\",\n    \"input\": true,\n    \"live\": false,\n    \"presentation\": \"metrics\",\n    \"inputMaxLength\": 100000,\n    \"inputErrorCode\": \"HOUSEHOLD_PLANNING_TOO_LONG\",\n    \"note\": \"Calculated on your device for up to 50 occupants and bill periods up to 366 days. Shares are exact to the smallest currency unit and add up to the bill.\",\n    \"inputKeywords\": [\n      {\n        \"id\": \"household-planning/utility-bill-splitter/occupants.header\",\n        \"kind\": \"header\",\n        \"code\": \"HOUSEHOLD_PLANNING_UTILITY_HEADER\",\n        \"fold\": \"lower\",\n        \"values\": {\n          \"name\": [\n            \"name\",\n            \"Name\"\n          ],\n          \"moveIn\": [\n            \"moveIn\",\n            \"Move-in date\"\n          ],\n          \"moveOut\": [\n            \"moveOut\",\n            \"Move-out date\"\n          ],\n          \"meterStart\": [\n            \"meterStart\",\n            \"Sub-meter start reading\"\n          ],\n          \"meterEnd\": [\n            \"meterEnd\",\n            \"Sub-meter end reading\"\n          ]\n        },\n        \"describedBy\": [\n          \"Name the columns in this order: Name, Move-in date, Move-out date, Sub-meter start reading and Sub-meter end reading, or leave out the header row.\",\n          \"Occupants\"\n        ]\n      }\n    ],\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 100000,\n      \"inputMode\": \"text\",\n      \"label\": \"Occupants\",\n      \"placeholder\": \"Ben, 2026-09-11\",\n      \"help\": \"One person per line: name, then optional move-in date, move-out date (YYYY-MM-DD), and sub-meter start and end readings. Up to 100,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\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 a shared electricity, gas or water bill by the days each person lived there and, if you have them, sub-meter readings. Shares are exact to the cent and always add up to the bill.\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 Utility bill splitter\n\n1. Enter the bill period and the fixed and usage charges from the bill.\n2. List the occupants, with move-in and move-out dates for anyone who was not there the whole period.\n3. To split usage by sub-meters, choose that option and add each person’s start and end readings.\n4. Optionally name who paid the bill, then review the shares and download the CSV.\n\n## Useful next steps\n\n- [Expense splitter](https://happytails.ai/en/calculators/expense-splitter/) ([Markdown](https://happytails.ai/en/calculators/expense-splitter.md))\n\n- [Electricity bill calculator](https://happytails.ai/en/calculators/electricity-bill-calculator/) ([Markdown](https://happytails.ai/en/calculators/electricity-bill-calculator.md))\n\n- [Appliance electricity cost calculator](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator/) ([Markdown](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator.md))\n\n## Person-days\n\nEach occupant counts the calendar days they lived there inside the bill period, move-in and move-out days included. In the example, Ana is there all 30 days of September, Ben from the 11th (20 days) and Cleo until the 20th (20 days), 70 person-days in all. Fixed charges are always split this way.\n\n### Sub-meter readings\n\nWith sub-meters, usage charges follow each person’s metered usage, the way submetering bills each tenant for their portion (Wikipedia, checked 16 October 2026). Usage on the main bill above the sub-meter total, such as shared rooms, is shared by person-days.\n\n### Exact to the cent\n\nExact shares are rounded once to the currency’s smallest unit with the largest remainder (Hamilton) method (Wikipedia, checked 16 October 2026): everyone gets the whole cents of their share, and the cents left over go to the largest remainders. The 150 example gives 64.28, 42.86 and 42.86, which add up to 150.00 exactly. Equal remainders favour the person listed first.\n\n### Limits\n\nUp to 50 occupants, bill periods of 1 to 366 days and charges up to 10,000,000 with 0, 2 or 3 decimal places. Meter readings go up to 1,000,000,000 with up to 3 decimals. This is arithmetic on your numbers, not a reading of tenancy law or tariffs.\n"
}