happytails.ai

Utility bill splitter

Open Utility bill splitter on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.

Tool capabilities

{
  "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.",
      "helpParts": [
        "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"
  }
}

Page guide

Split 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.

How to use Utility bill splitter
  1. Enter the bill period and the fixed and usage charges from the bill.
  2. List the occupants, with move-in and move-out dates for anyone who was not there the whole period.
  3. To split usage by sub-meters, choose that option and add each person’s start and end readings.
  4. Optionally name who paid the bill, then review the shares and download the CSV.

Useful next steps

Person-days

Each 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.

Sub-meter readings

With 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.

Exact to the cent

Exact 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.

Limits

Up 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.