Calculadora de rotación de tareas del hogar
La semana 0 asigna a Alice los platos, a Bob la basura y a Carol la aspiradora; cada semana nueva todos avanzan una tarea, y en 3 semanas cada persona ha hecho cada tarea una vez. Pegue sus listas e imprima la hoja. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Tareas del hogar
- Dishes, Trash, Vacuum
- Lista de participantes
- Alice, Bob, Carol
- Índice de semana
- 0
- Semana del ciclo
- 0
- Duración del ciclo
- 3
- Índice de la semana siguiente
- 1
- Número de tareas
- 3
Una calculadora de rotación de tareas del hogar convierte una lista de quehaceres, un roster ordenado de personas y un índice de semana en un reparto semanal equitativo, de modo que los platos, la basura y la aspiradora no recaigan siempre en la misma persona. Usted pega las tareas y los nombres en el orden de rotación, elige qué semana del ciclo está planificando y la herramienta asigna cada quehacer con aritmética modular que desliza el roster bajo la lista. En un ciclo completo igual al tamaño del roster, cada persona realiza cada tarea exactamente una vez: esa es la equidad que buscan familias, compañeros de piso y pisos compartidos.
Cómo la rotación reparte cada quehacer con equidad
Las tareas del hogar se vuelven injustas cuando el mismo compañero de piso lava siempre los platos y otro olvida la basura. Un reparto rotativo es una regla de emparejamiento fija, no una negociación: tome la lista de quehaceres en el orden en que la escribió, tome el roster en el orden en que lo escribió y deslice el roster bajo las tareas según el índice de semana.
La semana cero alinea a la primera persona con la primera tarea, a la segunda con la segunda, y así sucesivamente, envolviendo cuando hay más quehaceres que personas. La semana uno desplaza a todos un puesto, de modo que la segunda persona hereda el primer quehacer de la semana anterior, la tercera hereda el segundo y la primera recoge lo que cayó al final de la lista.
Tras un número de semanas igual al tamaño del roster, el deslizamiento ha visitado cada alineación exactamente una vez: cada persona ha hecho cada tarea exactamente una vez. Esa es la garantía de equidad: no depende de calendarios, festivos ni de quién se quejó el domingo pasado. Si hay más personas que quehaceres, algunos nombres descansan esa semana y los huecos de descanso rotan para que nadie quede siempre libre.
Si hay más quehaceres que personas, algunos nombres reciben más de una tarea esa semana y esos extras también rotan por el roster. Como la regla usa solo el resto entero, dos hogares que compartan las mismas listas y el mismo contador de semana coincidirán siempre en la misma hoja, aunque la impriman en cocinas distintas.
Dónde ayuda una rotación justa de tareas
Los pisos compartidos publican una hoja semanal para que nadie pueda alegar que no sabía a quién le tocaba sacar la basura. Las familias con adolescentes rotan cocina, colada y mascotas sin reescribir un cartel de papel cada domingo. Los caseros y gestores de residencias de estudiantes publican un turno determinista que los nuevos inquilinos pueden recalcular a partir de las mismas listas y un contador de semana guardado en el chat de la casa.
Los equipos de producto que publican aplicaciones de cuadro de tareas necesitan un oráculo pequeño que marque el mismo emparejamiento para las mismas entradas, en lugar de una hoja que solo actualiza una persona. Prefiera esta capacidad cuando ya conoce las tareas y las personas y solo necesita el emparejamiento equitativo de una semana concreta; no es un calendario, no es un servicio de recordatorios y no es un libro de puntos ni de pagas.
Qué puede hacer con ella
Hoja semanal del piso compartido
Los compañeros de piso introducen quehaceres, nombres y el número de semana para imprimir un turno equitativo de platos, basura y aspiradora.
Cuadro familiar de deberes
Los padres rotan cocina, colada y mascotas entre los hijos para que el mismo niño no quede siempre con el peor trabajo.
Preguntas frecuentes
¿Cómo asigna las tareas la calculadora de rotación del hogar?
En un ciclo completo de tantas semanas como personas, cada una realiza cada tarea exactamente una vez.
¿Qué ocurre si hay más personas que quehaceres?
Algunos nombres descansan esa semana. Los huecos de descanso rotan con la misma fórmula, de modo que la misma persona no queda siempre libre. Los nombres en descanso aparecen en el campo resting.
¿Qué ocurre si hay más quehaceres que personas?
Algunos nombres reciben más de una tarea esa semana. Los extras envuelven el roster para que la carga adicional también rote con equidad de una semana a otra.
¿Cuántas semanas pasan hasta que todos han hecho todas las tareas?
Tantas semanas como personas haya en la lista. Con tres personas el ciclo dura tres semanas, y al terminar cada una ha hecho cada tarea exactamente una vez, sin depender del calendario ni de los festivos.
¿Qué hago si alguien se ausenta una semana?
La calculadora no añade por su cuenta semanas de descanso, pesos ni calendarios de vacaciones. Quite a esa persona de la lista esa semana, o adelante usted el número de semana, y vuelva a calcular la hoja.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"chores": [
"Dishes",
"Trash",
"Vacuum"
],
"roster": [
"Alice",
"Bob",
"Carol"
],
"week_index": 0
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.chore_rotation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chores | 50 |
max_roster | 50 |
max_name_length | 80 |
max_week_index | 1000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La misma función pura alimenta el ejecutor gratuito del navegador y la API, sin relojes, sin sorteos y sin red. Las listas vacías o un week_index ausente fallan con invalid_input y no se facturan.
Cómo la rotación reparte cada quehacer con equidad
En términos formales, quien asume la tarea i en la semana W ocupa person_index igual a (i más W) módulo el tamaño del roster. La calculadora no inventa semanas omitidas, pesos ni calendarios de vacaciones; si alguien está ausente, quítelo del roster o avance el week_index en su propia capa.
Contrato de entrada, forma de la respuesta y errores
Los campos de salida opcionales nunca se rellenan con null. Envíe por POST un cuerpo JSON con tres campos obligatorios. chores es un array no vacío de una a cincuenta cadenas de nombres de tarea en orden de lista; cada entrada se recorta y las cadenas en blanco tras el trim se rechazan como invalid_input indicando el índice erróneo. roster es un array no vacío de una a cincuenta cadenas de nombres de persona en orden de rotación; los duplicados tras un trim sin distinción de mayúsculas se rechazan para que dos menciones de la misma persona no roben turnos extra. week_index es un entero no negativo de cero a mil millones que identifica qué semana de la serie resuelve: cero es la primera semana. También se acepta una cadena separada por comas, saltos de línea, punto y coma o barras verticales para chores y roster, de modo que un texto pegado al estilo de lista de la compra funcione. Los alias tasks, duties, jobs y chore_list se asignan a chores; people, members, names y household a roster; week, week_number, index y w a week_index. Si tiene éxito, el cuerpo repite las listas normalizadas y week_index, informa week_in_cycle, cycle_length, next_week_index, chore_count y person_count, luego enumera assignments como filas de tarea a persona con índices, by_person como cada nombre con las tareas de esa semana, y resting como los nombres sin deber esa semana. chores_per_person_min y chores_per_person_max muestran cuán pareja es la carga esta semana; formula reitera person_index igual a (chore_index más week_index) mod roster_size; message es una sola línea en inglés que puede fijar en la nevera o en un chat. Ejemplo: chores Dishes, Trash, Vacuum con roster Alice, Bob, Carol y week_index cero asigna Alice a Dishes, Bob a Trash y Carol a Vacuum; week_index uno rota a Bob, Carol y Alice. Listas ausentes, nombres vacíos, entradas duplicadas en el roster, week_index no entero o negativo, y listas demasiado grandes fallan con invalid_input y no consumen saldo.
Dónde aporta valor una API de rotación de tareas del hogar
Los bots de operaciones domésticas en Slack o en un grupo familiar envían «las tareas de esta semana» llamando a la API con el índice de la serie guardado en una clave contador. Como la implementación es parse de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente; la validación fallida es gratuita. Mantenga la lista de quehaceres y el roster en el mismo orden en todo sistema de registro, incremente week_index una vez por semana (incluidas las semanas en las que aún desea que la rotación avance aunque alguien viaje) y obtendrá asignaciones reproducibles para impresiones, calendarios y edge workers sin montar un servicio de planificación propio.
Casos de integración
Oráculo para bot y aplicación de tareas
Un bot doméstico o una aplicación de cuadro de tareas llama a la API con un contador de semana guardado y publica los turnos de esta semana sin una hoja privada.
Preguntas técnicas
¿La calculadora omite festivos o personas ausentes?
No. El núcleo es una rotación pura. Quite a alguien del roster o siga incrementando week_index en su propia capa si desea que el ciclo avance mientras viaja.
¿Cuánto cuesta la calculadora de rotación de tareas del hogar?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo prepago de KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.