[Backend] Feed an RSVP of "no" into the session at-risk evaluation #525

Open
opened 2026-09-06 04:06:30 +00:00 by claude-bot · 0 comments
Contributor

Follow-up from #370 (v4.3.0 phase 4), deliberately left out of that change because it alters when the at-risk Discord pings fire.

availability_service.evaluate_session_at_risk counts explicit time-slot votes only. With web RSVP in place, a confirmed session now carries session_attendance.rsvp_status (yes | maybe | no, NULL = no answer) for every member, which is a better attendance signal than a slot vote cast weeks earlier: a party where three of five have answered "no" is at risk even if the slot vote was unanimous.

Proposal: treat rsvp_status = "no" as a declared absence and "maybe" as half-weight (or as unanswered; decide and document), so the at-risk warning reflects what people said most recently. Keep the existing threshold semantics and the campaign's reminder_offsets_minutes; add tests for a session that is at risk only because of RSVPs and one that stops being at risk once RSVPs come in.

Follow-up from #370 (v4.3.0 phase 4), deliberately left out of that change because it alters when the at-risk Discord pings fire. `availability_service.evaluate_session_at_risk` counts explicit time-slot votes only. With web RSVP in place, a confirmed session now carries `session_attendance.rsvp_status` (`yes | maybe | no`, NULL = no answer) for every member, which is a better attendance signal than a slot vote cast weeks earlier: a party where three of five have answered "no" is at risk even if the slot vote was unanimous. Proposal: treat `rsvp_status = "no"` as a declared absence and `"maybe"` as half-weight (or as unanswered; decide and document), so the at-risk warning reflects what people said most recently. Keep the existing threshold semantics and the campaign's `reminder_offsets_minutes`; add tests for a session that is at risk only because of RSVPs and one that stops being at risk once RSVPs come in.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#525
No description provided.