Turni delle faccende tra coinquilini
Quattro faccende divise tra tre coinquilini completano una rotazione intera in 12 settimane, e i carichi settimanali non differiscono mai di più di un compito. Elenchi faccende e persone, scelga le settimane e ottenga un calendario con i totali per persona. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Gli appartamenti condivisi si reggono su un accordo fragile: tutti puliscono, ma nessuno ricorda di chi sia il turno. Un programma rotante delle faccende sostituisce la discussione con l'aritmetica. Fornisca allo strumento l'elenco delle faccende domestiche e quello dei coinquilini, e assegnerà ogni faccenda a una persona per ogni settimana con un round-robin sfalsato: nella prima settimana le faccende sono distribuite in ordine, e ogni settimana successiva ogni assegnazione avanza di un coinquilino, così ogni compito tocca a turno a ogni persona. Il risultato è una griglia settimana per settimana con i totali per persona di faccende e impegno, per verificare l'equità a colpo d'occhio invece di negoziarla. Le faccende possono avere un peso di impegno opzionale, così pulire il bagno può contare più di innaffiare una pianta.
Come funziona l'assegnazione rotante
L'algoritmo è un round-robin sfalsato, scelto perché è abbastanza trasparente da verificare a mano. Numera i coinquilini da zero nell'ordine in cui li ha elencati, e numera le faccende da zero nel loro ordine. Nella settimana zero, la faccenda c è assegnata al coinquilino c mod n, dove n è il numero di coinquilini: le faccende sono semplicemente distribuite intorno al tavolo.
Nella settimana uno, ogni assegnazione avanza di un posto: la faccenda c va al coinquilino (c + 1) mod n. In generale, la settimana w assegna la faccenda c al coinquilino (c + w) mod n. Questa singola regola ha tre conseguenze utili.
Primo, in qualsiasi settimana i carichi per persona differiscono al massimo di una faccenda, perché distribuire carte intorno a un tavolo è il massimo dell'equilibrio possibile. Le faccende possono avere un valore di impegno opzionale, un peso relativo non negativo con valore predefinito uno.
L'impegno non cambia mai chi riceve quale faccenda — la rotazione resta pura — ma i totali per persona riportano l'impegno sommato accanto al conteggio delle faccende, così può vedere se la pila più piccola di qualcuno è anche la più pesante, e ribilanciare l'elenco delle faccende (o gli impegni) prima di stampare il tabellone per il frigorifero.
Dove si colloca una rotazione delle faccende nelle case reali
L'uso classico è l'appartamento condiviso che tiene un tabellone rotante sul frigorifero: elenchi le faccende settimanali una volta, elenchi i coinquilini una volta, rigeneri il programma quando qualcuno entra o esce, e lasci che l'aritmetica assorba il cambiamento invece di convocare una riunione condominiale. Le residenze studentesche e gli spazi di co-living usano la stessa griglia come documento di ingresso, così le aspettative sono fissate prima del primo lavandino pieno di piatti.
Le coppie usano una versione a due persone per confermare che la divisione sia davvero equa nel tempo, invece di affidarsi alla memoria, che favorisce sempre chi ha cucinato per ultimo. Poiché i pesi di impegno sono separati dalla rotazione, le famiglie possono segnare le pulizie profonde, la cura degli animali o il giorno della spazzatura come faccende più pesanti e controllare i totali di impegno prima che qualcuno si lamenti: il blocco fairness mostra direttamente la forbice.
Questa capability deliberatamente non gestisce il denaro — dividere affitto, bollette o il conto del ristorante è compito dello splitter di spese pesate — e non traccia il completamento; risponde solo a chi fa cosa questa settimana.
Casi d'uso
Tabellone settimanale per appartamento condiviso
Elenchi faccende e coinquilini una sola volta, poi stampi o pubblichi la griglia settimanale così tutti vedono le proprie assegnazioni ruotare equamente nel tempo.
Accordo di ingresso per il co-living
Allega il programma generato a un contratto di affitto o al regolamento della casa, così le aspettative sulle faccende sono fissate prima della prima disputa.
Domande frequenti
Come vengono assegnate le faccende ogni settimana?
Ogni settimana ogni assegnazione avanza di un coinquilino, così le faccende ruotano tra tutti.
La divisione è davvero equa?
In qualsiasi settimana, i conteggi delle faccende per persona differiscono al massimo di uno. In un ciclo completo di mcm(faccende, coinquilini) settimane, ogni faccenda tocca a ogni coinquilino in modo uguale. I blocchi totals e fairness mostrano conteggi e somme di impegno per permetterle di verificare.
A cosa serve il campo effort?
L'impegno è un peso opzionale non negativo per faccenda (predefinito 1) che segnala i compiti più pesanti come una pulizia profonda. Non cambia mai la rotazione; alimenta solo i totali di impegno per persona, così può confrontare i carichi.
Cosa succede senza faccende o senza coinquilini?
Un elenco di faccende vuoto non ha nulla da assegnare, e un elenco di coinquilini vuoto non ha nessuno a cui assegnare. Anche i nomi duplicati dei coinquilini sono rifiutati.
Quanto costa?
Lo strumento del browser è gratuito e funziona in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"chores": [
"Dishes",
"Vacuum living room",
"Take out trash",
"Clean bathroom"
],
"roommates": [
"Alice",
"Bob",
"Carol"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.chore_split_roommates",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chores | 200 |
max_roommates | 50 |
max_weeks | 52 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Tutto è deterministico — nessuna casualità, nessuna data, nessun account — quindi gli stessi elenchi producono sempre lo stesso programma, sia nello strumento gratuito del browser sia nell'API a pagamento.
Come funziona l'assegnazione rotante
Secondo, in un ciclo completo ogni faccenda tocca a ogni coinquilino esattamente lo stesso numero di volte, quindi nessuno resta bloccato con il bagno per sempre; la lunghezza del ciclo è il minimo comune multiplo tra numero di faccende e numero di coinquilini, che la risposta riporta come cycle_weeks. Terzo, il programma è completamente deterministico: nessun seme casuale, nessuna data corrente e nessuno stato nascosto, quindi rigenerarlo il mese prossimo con gli stessi elenchi prosegue lo stesso schema in modo prevedibile.
Cosa invia e cosa riceve
Invii due campi obbligatori e uno opzionale. Il campo roommates è un array non vuoto di nomi, di nuovo come stringhe semplici oppure oggetti con un campo name; i nomi duplicati sono rifiutati perché le assegnazioni diventerebbero ambigue. Il campo opzionale weeks è un intero da 1 a 52, con valore predefinito 4, così una nuova richiesta mostra già la rotazione in movimento. Il campo chores è un array non vuoto in cui ogni voce è una semplice stringa come "Piatti" oppure un oggetto con un name non vuoto e un effort opzionale non negativo e finito; è accettata anche una stringa JSON di quell'array. Campi mancanti, array vuoti, nomi vuoti, coinquilini duplicati, impegni non validi e numeri di settimane fuori intervallo falliscono tutti con invalid_input e non vengono addebitati. In caso di successo la risposta restituisce chore_count, roommate_count, weeks e cycle_weeks, l'elenco pulito delle faccende con index, name ed effort, l'elenco pulito dei coinquilini e il programma stesso: un array di settimane, ciascuna con un array assignments di triple chore, effort e roommate. Un array totals fornisce per ogni coinquilino chore_count ed effort_total sull'intero orizzonte, e un blocco fairness riassume i conteggi e gli impegni minimi e massimi, così gli squilibri sono visibili senza scorrere la griglia. La stringa method rotating_offset_round_robin e la stringa formula riaffermano la regola di assegnazione, rendendo il contratto auto-documentante. I fallimenti di validazione non consumano saldo; le chiamate API riuscite costano la base pubblicata di $0.002 per elemento.
Dove si colloca una rotazione delle faccende nelle case reali
L'automazione è l'altra metà: un bot domestico può chiamare l'API a intervalli regolari, pubblicare le assegnazioni della settimana corrente in una chat di gruppo e non discostarsi mai dallo strumento del browser, perché entrambi eseguono la stessa identica funzione pura. Lo slug SEO punta alle ricerche sulla divisione delle faccende domestiche in un programma tra coinquilini, un intento distinto dalla divisione delle spese, dalle checklist di pulizia o dalle app di calendario, e il prezzo è la base pubblicata di $0.002 per elemento riuscito.
Casi di integrazione
Bot di chat domestico
Chiama l'API ogni settimana da uno script o un bot e invia le assegnazioni della settimana corrente in una chat di gruppo, identiche allo strumento gratuito del browser.