Close an Opportunity and Record Hours
Goal: Wrap up the opportunity, convert attendance into volunteer hours on each person's record, and credit any sweat equity to the right partner family.
Closing the opportunity
Once everyone's gone and check-outs are recorded, run the close action.
Closing:
- Generates a volunteer hours record for each checked-in volunteer based on their actual time present or the scheduled length of the event based on configuration
- Routes those hours into the review/approval queue
- Credits sweat equity hours to homeowners where the slot was configured for sweat equity
- Locks the opportunity for further registration changes
Closing never removes hours from someone who isn't on the roster — for example imported historical hours, or hours logged for a walk-in who was never registered. Those are left exactly as they are; only registered volunteers' hours are (re)generated on close.
How actual check-in/check-out time is measured
For opportunities that log actual check-in/check-out time, logged time is measured between the opportunity's scheduled start and end, not from whenever the buttons happened to be pressed:
- A volunteer who checks in before the opportunity starts — which is normal when you use Open Check-In Early — is credited from the scheduled start. Time spent waiting for the event to begin is not logged.
- A volunteer who never checks out, or checks out after the scheduled end, is credited up to the scheduled end (or to the extended end, if you extended the opportunity).
- Between those two bounds, real check-in and check-out times are used as-is, so a late arrival or an early departure is reflected accurately.
If someone genuinely worked outside those hours, extend the opportunity or adjust their row in the Per-Volunteer Hours table when you close.
Extending an opportunity that runs long
If the event runs past its scheduled end, you don't have to edit each volunteer's hours one by one. On the Day-of Dashboard, while the event is still in progress, click Extend Event and enter how many minutes to add (use the +15 / +30 / +60 / +90 / +120 quick-add buttons, or type a value). You can also enter a negative value if the event wrapped up early.
Notes:
- The extension is a single value on the event, not a per-volunteer adjustment. Every checked-in volunteer gets the same minutes added to their logged time.
- The value is absolute — saving it again overwrites the previous extension. Set it to 0 to clear.
- Bounded to plus or minus 12 hours.
- Applies to all hour-tracking modes:
- Scheduled-length events: the minutes are added to the preset duration.
- Shift-based events: the minutes are added to each shift's duration.
- Actual check-in/check-out events: the cap on logged time moves out with the extension, so volunteers who stayed past the planned end now get credit. Volunteers who already checked out keep their actual recorded duration.
Including volunteers who never checked in
Sometimes people show up and do the work but never get checked in — the sign-in sheet was on paper, or the line moved too fast. When you close (from either the Day-of Dashboard or the Close Opportunity option on the opportunity's detail page), tick "Include registered volunteers who didn't check in" to log hours for the whole registered roster, not just the checked-in folks.
- For opportunities that log scheduled length, everyone gets the event's duration as usual.
- For opportunities that log actual check-in/check-out time, the people who did check in keep their real time, and anyone without a check-in defaults to the full length of the opportunity.
Leave the box unticked (the default) to log hours only for volunteers who were actually checked in. The close preview updates live as you toggle it.
Preview before you close
Before committing, run the close preview. It shows:
- Each volunteer who'll get hours, with the calculated duration
- Any sweat equity that will be credited and to whom
- Any anomalies (someone who checked in but never checked out, someone with zero recorded time)
Adjusting hours for individual volunteers at close
The Close Event dialog includes an editable Per-Volunteer Hours table — whether you close from the Day-of Dashboard or the Close Opportunity option on the opportunity's detail page, it works the same way. Each row shows what the system calculated and lets you type a different value to override it — useful when one or two volunteers' actual time differs from what the system computed (Alice stayed an extra hour, Bob left early, Carla never checked out).
- Type a new value in the Adjusted column for any row you want to override. Values are rounded to 0.25 and bounded to 0–24 hours.
- Click the reset arrow on a row to return it to the calculated value.
- A running total at the bottom shows the new total and how it compares to the calculated total.
- When any row is adjusted, a Reason field appears below the table. Fill it in — it's required, and the same reason is recorded on every adjusted row for audit.
- Sweat equity totals re-compute live as you edit so the homeowner credit shown matches what will actually post.
- Adjusted rows are saved with
coordinator_adjusted = trueso they're easy to find later in the Review Hours screen. - If a volunteer already has hours logged for the opportunity (from an earlier close or a bulk entry), the table pre-fills with that value rather than recomputing it — so closing again preserves what you set, and you only change the rows you mean to.
When to use the per-volunteer adjustment vs. Extend Event:
- Extend Event (before close) — the whole event ran long or short. Adds the same delta to every checked-in volunteer.
- Per-volunteer adjustment (in the close dialog) — only some volunteers' time differs from the calculation. Use on top of an extension when both are needed.
What if someone needs to be added after close
Yes, you can:
- Add a manual hours entry for someone who attended but wasn't checked in
Reopening an opportunity
If something significant needs to be redone, reopen the opportunity. Reopening:
- Reverses the hours generation
- Returns the opportunity to the active state
Use sparingly — reopening after volunteers have already seen their hours posted creates confusion.
Sweat equity flow
When an opportunity attendee has an open homeowner application, hours get automatically identified for sweat equity, closing the opportunity posts those hours to the partner family's homeowner record. The volunteer who worked the slot still gets credited too — sweat equity is additive, not a substitution.
Approval
Generated hours land in the review queue. Coordinators approve them, individually or in bulk, before they count toward final reporting. See Review and Approve Hours. (If approval required is toggled on for the opportunity)
After close
- Send a thank-you to attendees from the opportunity's notifications panel (a quick, well-timed thank-you is one of the highest-leverage things you can do for retention)
- Run the Run Hours and Engagement Reports for the opportunity's totals