Verification
Why the photos matterThe pair is the proof
A single photo of a clean kitchen proves nothing — it might have been clean already. ChorHaus only scores pairs: the same place before and after. What gets graded is the delta, not the end state.
What the model is asked
Both frames go to a vision model along with the chore's title and description. It returns a cleanliness score from 0 to 100 and a written justification. Score high enough and the chore completes and pays out; fall short and it's recorded as failed, with the reasoning attached so you can see why.
If the AI is unavailable
Verification degrades rather than breaking. If the model can't be reached, the app falls back to a local result and keeps the queue moving.
Anti-cheat
Runs before the AIPerceptual hashing
Each photo is reduced to a short numeric fingerprint that survives resizing, recompression and small crops. Two visually similar photos produce near-identical fingerprints even if the files differ completely.
Compared against your whole house
New submissions are checked against every image your household has ever submitted, using a bitwise distance calculation in the database. A Hamming distance of 8 or less across the 64-bit fingerprint is treated as a duplicate, blocked before it reaches the AI, and shown to you next to the original.
Why it runs first
Cheap and certain beats expensive and probabilistic. Catching a recycled photo with arithmetic costs nothing; asking a model to spot it costs an API call and might miss.
Points and caps
Why you can't farm the easy jobsA ledger, not a counter
Points aren't a number that gets edited. Every award is an entry with an amount, a category, a week and a cause, so a total can always be explained by the entries behind it.
The weekly cap
Each house has a standard points budget of 1000 per week, divided across its members. Once the shared budget is spent, standard chores stop paying — so being first to claim the bins every day doesn't win the season.
Stretch work
Genuinely unpleasant jobs are categorised as stretch work and sit outside the cap. That keeps the awful chores worth doing even after the standard budget is gone.
Money
Recorded in whole centsNetting
Log an expense and who it should be split between. Rather than tracking a web of individual debts, the ledger nets everything down to the smallest set of payments that settles the house.
Whole cents only
Amounts are stored as integer cents, never as floating-point. Split three ways, a bill still adds back up to exactly what was paid.
ChorHaus doesn't touch the money
Settlement is a record of something you did elsewhere. Marking a debt settled tells your house it's done; the app never moves funds.
Rivalries
OptionalJoin codes
Every house gets a short code. Roommates use it to join; other houses use it to start a rivalry. Nothing happens without the code being shared deliberately.
Local leaderboards
Houses are grouped by campus or neighbourhood, so you're ranked against people who live near you rather than a global table you'll never top.