Participants
Roster
Blocks
A block means "this person must NOT be assigned to gift the selected people". Blocking is one-directional: if Alice blocks Bob, only Alice → Bob is forbidden (Bob may still gift Alice unless separately blocked). A person can block any number of others.
Blocked from gifting (multi-select)
Family / household helper
Pick a set of people who live together or are family. This adds mutual blocks between every pair in the set (so nobody in the group gifts anyone else in it). Groups are just a shortcut — the stored result is ordinary block edges you can still edit per person above.
Feasibility check
Shows how many valid gifting options each person has after self-exclusion + blocks, and whether a full assignment is possible right now.
Historic rounds
Past rounds, whose pairs the next draw avoids. Rounds you confirm in the Round tab are added here automatically; to add earlier years, import a history CSV.
Next-round probabilities (admin view)
Pick a participant to see how likely each person is to be their gifter in the next draw. The draw never repeats a pair from history and respects all blocks; every assignment that satisfies those rules is equally likely.
This year's round
① Draw
Everyone gifts and receives exactly once, respecting all blocks and never repeating a pair from history; every assignment that satisfies these rules is equally likely. If none exists, the oldest rounds are allowed to repeat, one at a time, and you're told which.
② Confirm & save to history
Draw an assignment first.
Export
JSON is the complete backup (participants, passwords, blocks, history, current round), encrypted with your admin password. The history CSV holds only past rounds, one row per pair with people's names — handy for a spreadsheet; it is not encrypted.
Offline participant file
Fallback for when the link can't be used: a standalone HTML file with the same encrypted data, opened with the same passwords. Build the shared link first (Round tab, step ③).
Import
Accepts a JSON file (full state) or a history CSV with the columns round,date,gifter,receiver. A CSV only adds past rounds: a round with the same label as one in history replaces it; names must match participants (you'll be asked about any that don't).
Paste JSON or history CSV
Admin password
Protects this browser's saved draft and your JSON exports. It can't be recovered if forgotten — keep an exported JSON and remember its password.