Reparto de tareas del hogar: horario semanal rotativo justo y gratis
Cuatro tareas repartidas entre tres compañeros de piso completan una rotación entera en 12 semanas, y cada semana las cargas no se separan en más de una tarea. Escriba las tareas y las personas, elija las semanas y obtenga un cuadrante con totales. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Los pisos compartidos dependen de un acuerdo frágil: todos limpian, pero nadie recuerda a quién le toca. Un horario rotativo de tareas sustituye la discusión por aritmética. Indique a la herramienta su lista de tareas del hogar y su lista de compañeros de piso, y asignará cada tarea a una persona para cada semana mediante un reparto circular con desplazamiento: en la primera semana las tareas se reparten en orden, y cada semana siguiente cada asignación avanza un compañero, de modo que cada tarea pasa por todas las personas a su turno. El resultado es una cuadrícula semana a semana con totales por persona de tareas y esfuerzo, para comprobar la equidad de un vistazo en lugar de negociarla. Las tareas pueden llevar un peso de esfuerzo opcional, de modo que fregar el baño puede contar más que regar una planta.
Cómo funciona la asignación rotativa
El algoritmo es un reparto circular con desplazamiento, elegido porque es lo bastante transparente para verificarse a mano. Numere los compañeros desde cero en el orden en que los enumeró, y numere las tareas desde cero en su orden. En la semana cero, la tarea c se asigna al compañero c mod n, donde n es el número de compañeros: las tareas simplemente se reparten alrededor de la mesa.
En la semana uno, cada asignación avanza un asiento: la tarea c pasa al compañero (c + 1) mod n. En general, la semana w asigna la tarea c al compañero (c + w) mod n. Esta única regla tiene tres consecuencias útiles.
Primero, dentro de cualquier semana las cargas por persona difieren como máximo en una tarea, porque repartir cartas alrededor de una mesa es lo más equilibrado que puede ser un reparto. Tercero, el horario es totalmente determinista: no hay semilla aleatoria, ni fecha actual, ni estado oculto, de modo que regenerarlo el mes próximo con las mismas listas continúa el mismo patrón de forma predecible. Las tareas pueden llevar opcionalmente un valor de esfuerzo, un peso relativo no negativo que por defecto es uno.
El esfuerzo nunca cambia quién recibe cada tarea —la rotación permanece pura—, pero los totales por persona informan el esfuerzo acumulado junto con los recuentos de tareas, para que usted vea si la pila más pequeña de alguien es también la más pesada, y reequilibre su lista de tareas (o los esfuerzos) antes de imprimir la lista para el refrigerador.
Dónde encaja una rotación de tareas en hogares reales
El uso clásico es el piso compartido que mantiene una lista rotativa en el refrigerador: enumere las tareas semanales una vez, enumere los compañeros una vez, regenere el horario cuando alguien se mude o se vaya, y deje que la aritmética absorba el cambio en lugar de convocar una reunión de convivencia. Las residencias de estudiantes y los espacios de co-living usan la misma cuadrícula como documento de bienvenida para fijar expectativas antes del primer fregadero lleno de platos.
Las parejas usan una versión de dos personas para confirmar que el reparto es realmente equitativo con el tiempo, en lugar de fiarse de la memoria, que siempre favorece a quien cocinó último. Como los pesos de esfuerzo son independientes de la rotación, los hogares pueden marcar las limpiezas a fondo, el cuidado de mascotas o el día de la basura como tareas más pesadas y revisar los totales de esfuerzo antes de que alguien se queje: el bloque fairness muestra la diferencia directamente.
Esta capacidad deliberadamente no gestiona dinero —repartir el alquiler, los servicios o la cuenta de un restaurante es tarea del divisor ponderado de gastos— y tampoco registra el cumplimiento; solo responde quién hace qué esta semana.
Qué puede hacer con ella
Lista semanal de un piso compartido
Enumere las tareas y los compañeros una vez, luego imprima o publique la cuadrícula semanal para que todos vean sus asignaciones rotar con equidad.
Acuerdo de bienvenida para co-living
Adjunte el horario generado al contrato o a las normas de la casa para fijar las expectativas sobre las tareas antes de la primera disputa.
Preguntas frecuentes
¿Cómo se asignan las tareas cada semana?
Cada semana todas las asignaciones avanzan un compañero, así que las tareas rotan por todos.
¿Es realmente justo el reparto?
Dentro de cualquier semana, los recuentos de tareas por persona difieren como máximo en uno. Durante un ciclo completo de mcm(tareas, compañeros) semanas, cada tarea visita a cada compañero por igual. Los bloques de totales y equidad muestran recuentos y sumas de esfuerzo para que pueda verificarlo.
¿Para qué sirve el campo de esfuerzo?
El esfuerzo es un peso opcional no negativo por tarea (por defecto 1) que marca tareas más pesadas como una limpieza a fondo. Nunca cambia la rotación; solo alimenta los totales de esfuerzo por persona para comparar cargas.
¿Qué ocurre si no hay tareas o no hay compañeros?
Una lista de tareas vacía no tiene nada que asignar, y una lista de compañeros vacía no tiene a quién asignar. Los nombres de compañeros duplicados también se rechazan.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
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/life/chore-split-roommates \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"chores":["Dishes","Vacuum living room","Take out trash","Clean bathroom"],"roommates":["Alice","Bob","Carol"]}'const res = await fetch("https://api.kit.forhosting.com/life/chore-split-roommates", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"chores": [
"Dishes",
"Vacuum living room",
"Take out trash",
"Clean bathroom"
],
"roommates": [
"Alice",
"Bob",
"Carol"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/chore-split-roommates",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"chores": [
"Dishes",
"Vacuum living room",
"Take out trash",
"Clean bathroom"
],
"roommates": [
"Alice",
"Bob",
"Carol"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/chore-split-roommates", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"chores":["Dishes","Vacuum living room","Take out trash","Clean bathroom"],"roommates":["Alice","Bob","Carol"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"chores":["Dishes","Vacuum living room","Take out trash","Clean bathroom"],"roommates":["Alice","Bob","Carol"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/chore-split-roommates", 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",
"Vacuum living room",
"Take out trash",
"Clean bathroom"
],
"roommates": [
"Alice",
"Bob",
"Carol"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.chore_split_roommates",
"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 | 200 |
max_roommates | 50 |
max_weeks | 52 |
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
Todo es determinista —sin azar, sin fechas, sin cuentas—, así que las mismas listas siempre producen el mismo horario, tanto en la herramienta gratuita del navegador como en la API de pago.
Cómo funciona la asignación rotativa
Segundo, durante un ciclo completo cada tarea recae en cada compañero exactamente el mismo número de veces, así que nadie queda atrapado con el baño para siempre; la duración del ciclo es el mínimo común múltiplo del número de tareas y el número de compañeros, que la respuesta informa como cycle_weeks.
Qué envía y qué recibe
Envíe dos campos obligatorios y uno opcional. El campo roommates es un array no vacío de nombres, de nuevo como cadenas simples u objetos con un campo name; los nombres duplicados se rechazan porque las asignaciones serían ambiguas. El campo opcional weeks es un entero de 1 a 52, con valor predeterminado 4, de modo que una solicitud nueva ya muestra la rotación en marcha. El campo chores es un array no vacío donde cada entrada es una cadena simple como "Platos" o un objeto con un name no vacío y un effort opcional, finito y no negativo; también se acepta una cadena JSON de ese array. Los campos ausentes, los arrays vacíos, los nombres en blanco, los compañeros duplicados, los esfuerzos inválidos y los números de semanas fuera de rango fallan con invalid_input y no se cobran. En caso de éxito, la respuesta devuelve chore_count, roommate_count, weeks y cycle_weeks, la lista depurada de tareas con index, name y effort, la lista depurada de compañeros y el propio horario: un array de semanas, cada una con un array assignments de tripletas chore, effort y roommate. Un array totals indica el chore_count y el effort_total de cada compañero en todo el horizonte, y un bloque fairness resume los recuentos y esfuerzos mínimos y máximos para que los desequilibrios sean visibles sin recorrer la cuadrícula. La cadena de método rotating_offset_round_robin y la cadena formula reafirman la regla de asignación para que el contrato se autodocumente. Los fallos de validación no consumen saldo; las llamadas exitosas a la API cuestan la base publicada de $0.002 por elemento.
Dónde encaja una rotación de tareas en hogares reales
La automatización es la otra mitad: un bot doméstico puede llamar a la API según un calendario, publicar las asignaciones de la semana en curso en un chat grupal y nunca desviarse de la herramienta del navegador, porque ambos ejecutan la misma función pura. El slug de SEO apunta a búsquedas sobre repartir tareas del hogar en un horario entre compañeros de piso, una intención distinta del reparto de gastos, las listas de limpieza o las aplicaciones de calendario, y el precio es la base publicada de $0.002 por elemento exitoso.
Casos de integración
Bot de chat del hogar
Llame a la API semanalmente desde un script o bot y envíe las asignaciones de la semana a un chat grupal, idénticas a las de la herramienta gratuita del navegador.