Summary
Opportunity cards are missing a match status field. This status is derived entirely from the volunteer section already present on each opportunity profile — no new BE endpoint is needed.
Status values
| Value |
Display label |
Condition |
no_match |
No match |
Default — no volunteers linked to this opportunity |
pending_match |
Pending match |
At least one volunteer has this opportunity in their Pending section (even if others are matched) |
matched |
Matched |
Volunteer(s) are in the Matched section for this opportunity |
past |
Past |
Volunteer(s) are in the Past section — the number of active volunteers no longer covers the number of volunteers needed |
Logic notes
- The status is computed from the volunteer section data that already exists on the opportunity profile
- Priority order when multiple volunteers exist: if any volunteer is Pending, show
Pending match over Matched
Past applies when the covered volunteer count drops below the required headcount
No match is the fallback when no volunteer is associated at all
Placement
The match status field should appear visually below "Current status" and above "Volunteer type" on the opportunity card.
Scope
FE only — derive and display the status from the existing volunteer section on the opportunity card (list view + detail view)
Summary
Opportunity cards are missing a match status field. This status is derived entirely from the volunteer section already present on each opportunity profile — no new BE endpoint is needed.
Status values
no_matchpending_matchmatchedpastLogic notes
Pending matchoverMatchedPastapplies when the covered volunteer count drops below the required headcountNo matchis the fallback when no volunteer is associated at allPlacement
The match status field should appear visually below "Current status" and above "Volunteer type" on the opportunity card.
Scope
FE only — derive and display the status from the existing volunteer section on the opportunity card (list view + detail view)