Calculadora de rotação de tarefas domésticas
A semana 0 dá a louça para Alice, o lixo para Bob e o aspirador para Carol; a cada nova semana todos avançam uma tarefa, e em 3 semanas cada pessoa fez cada tarefa uma vez. Cole suas listas e imprima a escala. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Tarefas domésticas
- Dishes, Trash, Vacuum
- Lista de participantes
- Alice, Bob, Carol
- Índice da semana
- 0
- Semana do ciclo
- 0
- Duração do ciclo
- 3
- Índice da próxima semana
- 1
- Número de tarefas
- 3
Uma calculadora de rotação de tarefas domésticas transforma uma lista de afazeres, um roster ordenado de pessoas e um índice de semana em um rateio semanal justo, para que louça, lixo e aspirador não fiquem para sempre com a mesma pessoa. Você cola as tarefas e os nomes na ordem de rotação, escolhe qual semana do ciclo está planejando e a ferramenta atribui cada afazer com aritmética modular que desliza o roster sob a lista. Em um ciclo completo igual ao tamanho do roster, cada pessoa faz cada tarefa exatamente uma vez: essa é a justiça que famílias, colegas de casa e apartamentos compartilhados realmente querem.
Como a rotação atribui cada afazer com justiça
As tarefas da casa ficam injustas quando o mesmo colega de quarto sempre lava a louça e outro sempre esquece o lixo. Uma atribuição rotativa é uma regra fixa de pareamento, não uma negociação: pegue a lista de afazeres na ordem em que você a escreveu, pegue o roster na ordem em que o escreveu e deslize o roster sob as tarefas pelo índice da semana.
A semana zero alinha a primeira pessoa sob a primeira tarefa, a segunda sob a segunda, e assim por diante, dando a volta quando há mais afazeres do que pessoas. A semana um desloca todo mundo uma posição, de modo que a segunda pessoa herda o primeiro afazer da semana anterior, a terceira herda o segundo e a primeira recolhe o que caiu no fim da lista.
Depois de um número de semanas igual ao tamanho do roster, o deslizamento visitou cada alinhamento exatamente uma vez: cada pessoa fez cada tarefa exatamente uma vez. Essa é a garantia de justiça: não depende de calendários, feriados nem de quem reclamou no domingo passado. Se há mais pessoas do que afazeres, alguns nomes descansam naquela semana e as vagas de descanso também rotacionam, para que a mesma pessoa não fique sempre de folga.
Se há mais afazeres do que pessoas, alguns nomes recebem mais de uma tarefa naquela semana e esses extras também giram pelo roster. Como a regra usa só o resto inteiro, duas casas que compartilham as mesmas listas e o mesmo contador de semana sempre concordam na mesma folha, mesmo se a imprimirem em cozinhas diferentes.
Onde um rodízio justo de tarefas ajuda
Apartamentos compartilhados publicam uma folha semanal para que ninguém possa alegar que não sabia de quem era a noite de tirar o lixo. Famílias com adolescentes rotacionam cozinha, lavanderia e animais sem reescrever um cartaz de papel todo domingo. Locadores e gestores de moradias estudantis publicam um turno determinístico que novos inquilinos recalculam a partir das mesmas listas e de um contador de semana guardado no chat da casa.
Equipes de produto que lançam aplicativos de quadro de tarefas precisam de um oráculo pequeno que marque o mesmo pareamento para as mesmas entradas, em vez de uma planilha que só uma pessoa atualiza. Prefira esta capacidade quando você já conhece as tarefas e as pessoas e só precisa do pareamento justo de uma semana dada; não é um calendário, não é um serviço de lembretes e não é um livro de pontos nem de mesada.
Casos de uso
Folha semanal da República
Colegas de casa informam afazeres, nomes e o número da semana para imprimir um turno justo de louça, lixo e aspirador.
Quadro familiar de deveres
Os pais rotacionam cozinha, lavanderia e animais entre os filhos para que a mesma criança não fique sempre com o pior trabalho.
Perguntas frequentes
Como a calculadora de rotação doméstica atribui as tarefas?
Em um ciclo completo de tantas semanas quanto pessoas, cada uma faz cada tarefa exatamente uma vez.
O que acontece quando há mais pessoas do que afazeres?
Alguns nomes descansam naquela semana. As vagas de descanso rotacionam com a mesma fórmula, então a mesma pessoa não fica sempre de folga. Os nomes em descanso aparecem no campo resting.
O que acontece quando há mais afazeres do que pessoas?
Alguns nomes recebem mais de uma tarefa naquela semana. Os extras dão a volta no roster para que a carga extra também rotacione com justiça de uma semana para outra.
Quantas semanas leva até todos fazerem todas as tarefas?
Tantas semanas quantas forem as pessoas da lista. Com três pessoas o ciclo dura três semanas, e no fim cada uma fez cada tarefa exatamente uma vez, sem depender do calendário nem dos feriados.
O que faço se alguém viajar por uma semana?
A calculadora não cria sozinha semanas de folga, pesos nem calendários de férias. Tire essa pessoa da lista naquela semana, ou avance você mesmo o número da semana, e gere a escala de novo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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}'const res = await fetch("https://api.kit.forhosting.com/home/chore-rotation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"chores": [
"Dishes",
"Trash",
"Vacuum"
],
"roster": [
"Alice",
"Bob",
"Carol"
],
"week_index": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/chore-rotation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"chores": [
"Dishes",
"Trash",
"Vacuum"
],
"roster": [
"Alice",
"Bob",
"Carol"
],
"week_index": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/chore-rotation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"chores":["Dishes","Trash","Vacuum"],"roster":["Alice","Bob","Carol"],"week_index":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"chores":["Dishes","Trash","Vacuum"],"roster":["Alice","Bob","Carol"],"week_index":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/chore-rotation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"chores": [
"Dishes",
"Trash",
"Vacuum"
],
"roster": [
"Alice",
"Bob",
"Carol"
],
"week_index": 0
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.chore_rotation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chores | 50 |
max_roster | 50 |
max_name_length | 80 |
max_week_index | 1000000000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
A mesma função pura alimenta o executor gratuito do navegador e a API, sem relógios, sem sorteio e sem rede. Listas vazias ou um week_index ausente falham com invalid_input e não são cobrados.
Como a rotação atribui cada afazer com justiça
Em termos formais, a pessoa que assume a tarefa i na semana W ocupa person_index igual a (i mais W) módulo o tamanho do roster. A calculadora nunca inventa semanas puladas, pesos nem calendários de férias; se alguém está ausente, remova-o do roster ou avance o week_index na sua própria camada.
Contrato de entrada, forma da resposta e erros
Campos de saída opcionais nunca são preenchidos com null. Envie por POST um corpo JSON com três campos obrigatórios. chores é um array não vazio de uma a cinquenta strings de nomes de tarefa na ordem da lista; cada entrada é recortada e strings em branco após o trim são rejeitadas como invalid_input indicando o índice errado. roster é um array não vazio de uma a cinquenta strings de nomes de pessoa na ordem de rotação; duplicatas após um trim sem distinção de maiúsculas são rejeitadas para que duas menções da mesma pessoa não roubem turnos extras. week_index é um inteiro não negativo de zero a um bilhão que identifica qual semana da série você está resolvendo: zero é a primeira semana. Também se aceita uma string separada por vírgulas, quebras de linha, ponto e vírgula ou barras verticais para chores e roster, para que um texto colado no estilo de lista de compras funcione. Os aliases tasks, duties, jobs e chore_list mapeiam para chores; people, members, names e household para roster; week, week_number, index e w para week_index. Em caso de sucesso o corpo ecoa as listas normalizadas e week_index, informa week_in_cycle, cycle_length, next_week_index, chore_count e person_count, depois lista assignments como linhas de tarefa para pessoa com índices, by_person como cada nome com as tarefas daquela semana, e resting como os nomes sem dever naquela semana. chores_per_person_min e chores_per_person_max mostram quão equilibrada está a carga nesta semana; formula reitera person_index igual a (chore_index mais week_index) mod roster_size; message é uma única linha em inglês que você pode fixar na geladeira ou em um chat. Exemplo: chores Dishes, Trash, Vacuum com roster Alice, Bob, Carol e week_index zero atribui Alice a Dishes, Bob a Trash e Carol a Vacuum; week_index um rotaciona para Bob, Carol e Alice. Listas ausentes, nomes vazios, entradas duplicadas no roster, week_index não inteiro ou negativo e listas grandes demais falham com invalid_input e não consomem saldo.
Onde uma API de rotação de tarefas domésticas se paga
Bots de operações domésticas no Slack ou em um grupo familiar enviam «as tarefas desta semana» chamando a API com o índice da série armazenado em uma chave contador. Como a implementação é parse de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída; validação falha é gratuita. Mantenha a lista de afazeres e o roster na mesma ordem em todo sistema de registro, incremente week_index uma vez por semana (incluindo semanas em que você ainda quer que a rotação avance mesmo se alguém estiver viajando) e você terá atribuições reproduzíveis para impressões, calendários e edge workers sem montar um serviço de agendamento próprio.
Casos de integração
Oráculo para bot e app de tarefas
Um bot doméstico ou um app de quadro de tarefas chama a API com um contador de semana armazenado e publica os turnos desta semana sem uma planilha privada.
Perguntas técnicas
A calculadora pula feriados ou pessoas ausentes?
Não. O núcleo é uma rotação pura. Remova alguém do roster ou continue incrementando week_index na sua própria camada se quiser que o ciclo avance enquanto a pessoa viaja.
Quanto custa a calculadora de rotação de tarefas domésticas?
A ferramenta do navegador é grátis. Solicitações API usam saldo pré-pago de KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.