Rooms¶
The chapter house has fixed rooms with fixed prices that include the standard semester dues. A brother assigned to a room pays room_price × share_fraction instead of the flat /set_semester amount.
When two brothers share a room, the bot auto-rebalances to equal shares (1/N).
/set_room¶
Define a room or update its price.
Usage: /set_room <name> <price> [notes]
| Argument | Required | Description |
|---|---|---|
name |
yes | Room name (e.g. "Room 1", "East Loft") |
price |
yes | Full-occupant semester price in dollars |
notes |
no | Optional notes (e.g. "no AC", "shared bathroom") |
Example:
Notes:
- Idempotent — re-running with the same name updates the price.
- Past assignments are not retroactively repriced. Only future semesters use the new price.
/list_rooms¶
List every defined room with its full-occupant price.
Usage: /list_rooms
/show_room¶
Show one room with its current-semester occupants and what each is paying.
Usage: /show_room <name>
/room_assignments¶
Show every room with its current-semester occupants. Useful at start of semester to verify everyone's placed correctly.
Usage: /room_assignments
/assign_room¶
Assign a brother to a room for the current semester. Auto-rebalances all current occupants of that room to equal shares.
Usage: /assign_room <name> <member>
| Argument | Required | Description |
|---|---|---|
name |
yes | Room name (must exist via /set_room) |
member |
yes | Brother (must be onboarded) |
Example:
After both, Joe and Bob each have share_fraction=0.5 and pay $1000 of a $2000 room.
Notes:
- A brother can only be in one room per semester. Reassigning them to a different room moves them automatically.
- A brother can be moved out via
/unassign_room.
/unassign_room¶
Remove a brother's room assignment. They fall back to the flat /set_semester amount unless reassigned.
Usage: /unassign_room <member>
When the unassigned brother leaves, remaining occupants are rebalanced (e.g. if Joe leaves Bob alone, Bob's share goes from 0.5 back to 1.0).
/set_share¶
Override one brother's share fraction for unequal splits. Use only when 50/50 isn't right.
Usage: /set_share <member> <share_fraction>
| Argument | Required | Description |
|---|---|---|
member |
yes | Onboarded brother with an active room assignment |
share_fraction |
yes | Number between 0 (exclusive) and 1 — e.g. 0.6 for 60% |
Example:
Joe has the bigger half of Room 1, Bob has the smaller half. You decide Joe pays 60%:
Notes:
- Does not auto-rebalance the rest of the room. You must explicitly set every occupant's share when departing from equal split.
- The bot doesn't enforce that occupants of one room sum to 1.0 — you might leave the room "underbooked" intentionally if a 3rd brother is expected later.