Semesters¶
The semester calendar is fixed:
| Term | Window |
|---|---|
| Fall | September 1 – December 31 |
| Spring | January 1 – May 31 |
| Summer gap | June 1 – August 31 (no active semester) |
The bot derives the current semester automatically from today's date. You don't pick — you just set the dollar amount.
Semester IDs are deterministic strings (spring-2026, fall-2025) used everywhere internally.
/set_semester¶
Set the flat dues amount for the current semester.
Usage: /set_semester <amount>
| Argument | Required | Description |
|---|---|---|
amount |
yes | Dollar amount each non-resident brother owes |
Example:
Sets Spring 2026 (or whichever semester you're in) to $400 per non-resident.
Notes:
- Idempotent — re-running updates the amount. Existing payments and deductions stay attached.
- If you run this during the summer gap, it errors. Wait for September 1.
- Brothers assigned to a room don't pay this — their dues =
room_price × share_fraction. See How dues are calculated.
/current_semester¶
Show the current semester window and configured dues amount.
Usage: /current_semester
Output: ephemeral. Shows the window dates, the per-brother flat amount, and whether the semester record has been closed.
/end_semester¶
Archive the current semester. After this, it's treated as historical — new payments belong to the next semester (after you /set_semester for the new one).
Usage: /end_semester
Notes:
- Doesn't delete data. Past payments / deductions / receipts stay queryable via
/audit @brother. - Run this at the end of the term, before recording any payments for the next term.
- Idempotent — already-closed semesters return a polite "already closed".