# Rent Split Calculator

> Splits a total rent between housemates equally, in proportion to each person's room area (optionally dividing the common-area share equally) or in proportion to incomes, and returns per-person shares rounded to cents that add up exactly to the total.

- Calculator id: `rent-split` · Category: Everyday Life (`everyday`) · Tool name: `split_rent`
- Canonical page: https://tttkmbb.com/everyday/rent-split · This document: https://tttkmbb.com/everyday/rent-split.md · JSON definition: https://tttkmbb.com/everyday/rent-split.json

## Purpose

Splits a total rent between housemates equally, in proportion to each person's room area (optionally dividing the common-area share equally) or in proportion to incomes, and returns per-person shares rounded to cents that add up exactly to the total.

**Use when:** Several people share a flat or house and need a defensible split of the rent by room size or income instead of a plain equal split.

**Do not use when:** You are splitting a one-off bill with a tip (use bill-split) or need utilities split by metered usage; this tool does not track deposits or running shared expenses.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `total_rent` | number |  | required | Total rent per period, in your currency. (min 0, max 100000000) |
| `method` | enum: equal \| by_room_area \| by_income |  | optional, default "equal" | How to divide the rent. |
| `people` | integer |  | optional | Number of tenants for the equal method (otherwise taken from the length of room_areas or incomes). (min 1, max 100) |
| `room_areas` | number_list |  | optional | Private room area per person in any one unit (m² or ft²), in tenant order; required for by_room_area. |
| `incomes` | number_list |  | optional | Income per person (same period and currency for everyone), in tenant order; required for by_income. |
| `common_area` | number |  | optional, default 0 | Shared space (kitchen, living room, bathrooms) in the same unit as room_areas; used by by_room_area. (min 0, max 1000000) |
| `common_area_share_equal` | boolean |  | optional, default true | true: the rent attributable to common_area is divided equally and only the private-room rent follows room size; false: the whole rent follows private room size. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `shares` | number_list |  | Rent per person in list order, rounded to cents so that they sum to total_rent. |
| `shares_table` | list |  | Per person: person, share, percent of the total and the weight used (1, room area or income). |
| `per_person_average` | number |  | total_rent / number of people. |
| `people_count` | integer |  | Number of shares. |
| `largest_share` | number |  | Highest individual share. |
| `smallest_share` | number |  | Lowest individual share. |
| `method_used` | string |  | Description of the split that was applied. |

## Formula

`equal: share_i = total_rent / n; by_income: share_i = total_rent × income_i / Σ incomes; by_room_area: common_rent = total_rent × common_area / (Σ areas + common_area) when common_area_share_equal else 0, share_i = common_rent / n + (total_rent − common_rent) × area_i / Σ areas; shares are rounded to cents with the largest-remainder method so that Σ share_i = total_rent`

Proportional splits assume the rent scales with the chosen weight; the mixed rule (common-area rent shared equally, private rent by area) is the usual compromise for flats with unequal rooms. Percentages are shares of the total; fairness schemes based on bids (rental harmony) are not implemented.

## Data Sources

- Rental harmony – fair division of rent between housemates (Wikipedia) — https://en.wikipedia.org/wiki/Rental_harmony (reference, retrieved 2026-09-24)
- Largest remainder method – rounding shares so they sum to the total (Wikipedia) — https://en.wikipedia.org/wiki/Largest_remainder_method (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/rent-split?total_rent=…`
- `POST https://tttkmbb.com/api/v1/calculate/rent-split` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/rent-split · OpenAPI operationId `split_rent` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "rent-split", "inputs": {…}}`

## Example

- 3000 by room area 12 / 15 / 18: inputs `{"total_rent":3000,"method":"by_room_area","room_areas":[12,15,18]}` → `{"shares":[800,1000,1200],"per_person_average":1000,"people_count":3,"largest_share":1200,"smallest_share":800}`
- 3000 by income 40,000 / 60,000: inputs `{"total_rent":3000,"method":"by_income","incomes":[40000,60000]}` → `{"shares":[1200,1800],"per_person_average":1500,"people_count":2}`

```
GET https://tttkmbb.com/api/v1/calculate/rent-split?total_rent=3000&method=by_room_area&room_areas=12%2C15%2C18
```

## Limitations

You are splitting a one-off bill with a tip (use bill-split) or need utilities split by metered usage; this tool does not track deposits or running shared expenses. Proportional splits assume the rent scales with the chosen weight; the mixed rule (common-area rent shared equally, private rent by area) is the usual compromise for flats with unequal rooms. Percentages are shares of the total; fairness schemes based on bids (rental harmony) are not implemented. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**How is the common area handled?**

With common_area_share_equal (default) the fraction of rent that corresponds to the shared space is split equally, and only the remainder follows room size: 3000 with rooms 12/15/18 m² and 30 m² of common space gives 880 / 1000 / 1120.

**Why do the shares not equal total / people exactly?**

Shares are rounded to whole cents; the largest-remainder method assigns the leftover cents to the people with the largest fractional parts so the shares still add up to the total.

## Related

- [Bill Split Calculator](https://tttkmbb.com/everyday/bill-split.md) — Equal split of a bill with an optional tip.
- [Unit Price Comparison Calculator](https://tttkmbb.com/everyday/unit-price.md) — Compare cost per square metre between flats.
