Payment Plans¶
Structured installment plans — different from one-off promises. Use when a brother needs to spread a payment over multiple installments at fixed intervals (e.g. "$100 every 30 days for 6 installments").
The bot pre-generates the full installment schedule, sends DM reminders for each one, and flips overdue installments to missed.
/payment_plan¶
Create a new plan.
Usage: /payment_plan <member> <installment_amount> <interval_days> [total_amount] [start_date] [note]
| Argument | Required | Description |
|---|---|---|
member |
yes | The brother on the plan |
installment_amount |
yes | Dollar amount per installment |
interval_days |
yes | Days between installments (e.g. 30) |
total_amount |
no | Total they owe — bot derives count = ceil(total / installment) |
start_date |
no | First installment due date (default: today) |
note |
no | Optional note (e.g. "spring dues split") |
Examples:
Closed-end plan (knows total):
Creates 6 installments of $100, 30 days apart, starting today.Open-ended plan (no total):
Pre-generates 6 installments. You can extend later if needed./payment_plans¶
List active plans, optionally filtered to one brother. Shows progress bars (████░░░░░░ 40%).
Usage: /payment_plans [member]
/show_plan¶
Full schedule for one plan — every installment with status (✅ / ⏳ / ❌), due date, paid date, and ID.
Usage: /show_plan <plan_id>
/plan_progress¶
Quick progress view for a brother's active plan(s).
Usage: /plan_progress <member>
/cancel_plan¶
Cancel an active plan. Drops all pending installments (no more reminders).
Usage: /cancel_plan <plan_id>
Already-paid installments are preserved in history.
/mark_installment_paid¶
Manually credit one installment. Use when:
- The brother paid but
/log_payment's auto-match didn't catch it - You're reconciling against a Slash transaction
Usage: /mark_installment_paid <installment_id>
Reminder schedule¶
For each installment, the same daily 1pm UTC loop fires:
| When | Who | Message |
|---|---|---|
| Day before | Brother | "Installment #N of $X due tomorrow" |
| Day of | Brother | "Today: installment #N of $X" |
| Day of | Treasurer | "Joe — installment #N, $X" |
Each installment tracks its own reminded_day_before and reminded_day_of flags so reminders are idempotent across bot restarts.
Auto-match on /log_payment¶
If a /log_payment for a brother matches a pending installment's exact amount, the response embed includes the matching installment ID under "💡 Possible plan installment". One command (/mark_installment_paid <id>) credits it.