ForHosting KIT · Home, food & hobbies

Household chore rotation calculator

Week 0 gives Alice the dishes, Bob the trash and Carol the vacuuming; each new week moves everyone one chore along, and after 3 weeks each person has done every chore once. Paste your own lists and print the sheet. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Chores
Dishes, Trash, Vacuum
Roster
Alice, Bob, Carol
Week index
0
You get
Week in cycle
0
Cycle length
3
Next week index
1
Chore count
3

A household chore rotation calculator turns a list of chores, an ordered roster of people, and a week index into a fair weekly assignment so dishes, trash, and vacuuming do not stick to the same person forever. You paste the duties and the names in rotation order, choose which week of the cycle you are planning, and the tool assigns every chore with modular arithmetic that slides the roster under the chore list. Over a full cycle equal to the roster size, each person does each chore exactly once, which is the fairness property families, housemates, and shared flats actually want.

How the rotation assigns every chore fairly

Household chores become unfair when the same roommate always does dishes and someone else always forgets the trash. A rotating assignment is a fixed pairing rule, not a negotiation: take the chore list in the order you wrote it, take the roster in the order you wrote it, and slide the roster under the chores by the week index. Week zero lines the first person under the first chore, the second under the second, and so on, wrapping when there are more chores than people.

Week one shifts everyone one slot, so the second person inherits last week's first chore, the third person inherits the second, and the first person picks up whatever fell off the end of the list. After a number of weeks equal to the roster size the slide has visited every alignment exactly once, which means each person has done each chore exactly once. That is the fairness guarantee: it does not depend on calendars, holidays, or who complained last Sunday.

If there are more people than chores, some names rest that week, and the rest slots themselves rotate so the same person is not forever off duty. If there are more chores than people, some names receive more than one chore that week, and those extras also rotate through the roster. The calculator never invents skip weeks, weights, or vacation calendars; if someone is away, remove them from the roster or advance the week index in your own layer.

Because the rule uses only integer remainder, two households that share the same lists and the same week counter will always agree on the same sheet, even if they print it in different kitchens.

Where a fair chore rotation helps

Shared flats post a weekly sheet so nobody can claim they did not know whose night it was to take out the bins. Families with teenagers rotate kitchen, laundry, and pet duties without rewriting a paper chart every Sunday. Landlords and property managers of student houses publish a deterministic rota that new tenants can recompute from the same lists and a week counter stored in the house chat.

Product teams that ship chore-chart apps need a tiny oracle that marks the same pairing for the same inputs instead of a spreadsheet that only one person updates. Prefer this capability when you already know the duties and the people and only need the fair pairing for a given week; it is not a calendar, not a reminder service, and not a points or allowance ledger.

Shared flat weekly sheet

Housemates enter chores, names, and the week number to print a fair rota for dishes, trash, and vacuuming.

Family duty chart

Parents rotate kitchen, laundry, and pet chores among children so the same kid is not stuck with the worst job every week.

How does the household chore rotation calculator assign chores?

Over a full cycle of roster size weeks, each person does each chore exactly once.

What happens when there are more people than chores?

Some names rest that week. The rest slots rotate with the same formula, so the same person is not always off duty. Resting names appear in the resting field.

What happens when there are more chores than people?

Some names receive more than one chore that week. The extras wrap around the roster so the extra load also rotates fairly from week to week.

How many weeks until everyone has done every chore?

As many weeks as there are people on the list. With three people the cycle lasts three weeks, and by the end each person has done each chore exactly once, whatever the calendar or the holidays say.

What if someone is away for a week?

The calculator does not add skip weeks, weights or holiday calendars by itself. Take that person off the list for that week, or move the week number forward yourself, and work out the sheet again.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/home/chore-rotation

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/home/chore-rotation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"chores":["Dishes","Trash","Vacuum"],"roster":["Alice","Bob","Carol"],"week_index":0}'
{
  "chores": [
    "Dishes",
    "Trash",
    "Vacuum"
  ],
  "roster": [
    "Alice",
    "Bob",
    "Carol"
  ],
  "week_index": 0
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "home.chore_rotation",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_chores50
max_roster50
max_name_length80
max_week_index1000000000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Invalid empty lists or a missing week index fail with invalid_input and are not billed.

How the rotation assigns every chore fairly

Formally, the person who owns chore i in week W sits at person_index equals (i plus W) modulo the roster size.

Input contract, response shape, and error behaviour

A comma-, newline-, semicolon-, or pipe-separated string is also accepted for chores and roster so a pasted shopping-list style text works. Optional output fields are never filled with null. POST a JSON body with three required fields. chores is a non-empty array of one to fifty duty name strings in list order; each entry is trimmed, and blank strings after trim are rejected as invalid_input naming the bad index. roster is a non-empty array of one to fifty person name strings in rotation order; duplicates after a case-insensitive trim are rejected so two listings of the same person cannot steal extra turns. week_index is a non-negative integer from zero through one billion identifying which week of the series you are resolving—zero is the first week. Aliases tasks, duties, jobs, and chore_list map to chores; people, members, names, and household map to roster; week, week_number, index, and w map to week_index. On success the body echoes the normalized lists and week_index, reports week_in_cycle, cycle_length, next_week_index, chore_count, and person_count, then lists assignments as chore-to-person rows with indexes, by_person as each name with that week's chores, and resting as the names who have no duty this week. chores_per_person_min and chores_per_person_max show how even the load is this week; formula restates person_index equals (chore_index plus week_index) mod roster_size; message is a single English line you can pin to a fridge or a chat. Example: chores Dishes, Trash, Vacuum with roster Alice, Bob, Carol and week_index zero assigns Alice to Dishes, Bob to Trash, and Carol to Vacuum; week_index one rotates to Bob, Carol, and Alice. Missing lists, empty names, duplicate roster entries, non-integer or negative week_index, and oversized lists all fail with invalid_input and do not consume balance.

Where a household chore rotation API earns its keep

Home-ops bots in Slack or a family group send “this week's chores” by calling the API with the series index stored in a counter key. Keep the chore list and the roster ordered the same way in every system of record, increment week_index once per week (including weeks you still want the rotation to advance even if someone is travelling), and you get reproducible assignments for printouts, calendars, and edge workers without standing up a scheduling service of your own.

Chat bot and chore-app oracle

A home-ops bot or chore-chart app calls the API with a stored week counter and posts this week's assignments without a private spreadsheet.

Does the calculator skip holidays or people who are away?

No. The core is a pure rotation. Remove someone from the roster or still increment week_index in your own layer if you want the cycle to advance while they are travelling.

What does the household chore rotation calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →