4 sheets of ice · casual instruction available · all experience levels welcome
E-transfer instructions will be shown on your confirmation screen after registering.
See you on the ice. Details below.
Friday Night Social Curling · Coordinator Dashboard
| Name | Email / Phone | Dates | Experience | Payment Method | Payment | Waiver | Status / Actions | |
|---|---|---|---|---|---|---|---|---|
When you click ⚙ Auto-assign, the app distributes all registered curlers across the active sheets using these rules in order:
Tip: After auto-assigning, you can still move anyone manually — click an assigned name to send them back to the pool, then click Assign → to place them elsewhere (there's no drag-and-drop yet). A ⚠ icon appears on new/instruction curlers placed off the instruction sheet.
Sharon forwards relevant Interac e-transfer emails from her own inbox to a dedicated intake address. The server checks that inbox automatically every 15 minutes, parses each one, and lists it here with a best-guess match — nothing is ever marked paid without you confirming it below.
Copy the full text of an Interac e-transfer deposit notification email and paste it below. The app will extract the sender name, amount, and reference number, then match it against unpaid registrations.
The problem it solves: When a registrant sends you an e-transfer, you get a bank notification email. You then have to find that person in the Dashboard tab and click Mark Paid. This feature makes that one paste + one click instead of a manual search.
Step 1 — Paste the email(s). Open the Interac deposit
notification in your email client, select all text (Ctrl+A or Cmd+A), copy it, and paste it into
the text box below. Works with TD, RBC, Scotiabank, BMO, CIBC, and most credit unions.
Multiple emails: paste them all together, separating each with a line containing just --- between them.
Step 2 — Click Parse Email. The app scans the text for five fields: the amount, the sender name (who sent the transfer), the message they typed, the Interac reference number, and the date. Each found field lights up green.
Step 3 — Review the matches. The app compares the sender
name against all unpaid e-transfer registrations and scores them:
✅ Strong match — name matched directly; high confidence
⚠️ Possible match — partial name or message match; verify before confirming
❌ Weak match — low confidence; check manually
Amount mismatch warning: If the email shows $30 but the registration expects $45 (e.g. they registered for 3 nights but only sent for 2), a red warning appears. You can still mark them paid but should follow up on the balance.
Tip: If the registrant put their booking reference (e.g. FRI-D04) in the e-transfer message, the match will always be Strong — encourage registrants to do this by including the booking ref in your e-transfer instructions.
---
| Credit ID | Member | Amount | Reason | Issued | Status | Actions |
|---|
| Name ↕ | Email / Phone ↕ | Dates ↕ | Experience | Payment Method | Payment | Waiver | Status / Actions | |
|---|---|---|---|---|---|---|---|---|
| Type a name, email, or booking reference above to search. | ||||||||
Shows or hides the yellow Demo Controls bar (Load demo data / Add report data / Clear all) at the top of every admin tab. This is a global, server-saved setting — it applies for every admin on every device, not just this one. Turning it off does not delete any data currently loaded; it only hides the controls. Click Apply Settings below for this to take effect.
Generate all Fridays for the season, deselect any exceptions, adjust per-night capacity, then save. Saved dates persist on the server and replace the built-in schedule, visible from any device.
| ✓ | Date | Max spots |
|---|
Archiving hides old registrations from the Dashboard, its stat cards, and Reports, so the active view stays focused on the current season — nothing is deleted. Archived bookings stay fully searchable from the Search tab (check "Include archived") and can be unarchived any time. A booking is only archived if every date on it falls inside the range you select — anything with a date outside the range still has current or future relevance and is left alone. Registrations with an associated credit are automatically skipped, to avoid breaking the Credits Ledger's "Applied to…" lookup.
| ✓ | Date | Active bookings |
|---|
Waivers signed by public (non-member) registrants are stored on the server for the current curling season (September to September) — visible from any device. A person who has signed once will not be asked again until the following season. ECC Members are automatically exempt.
One row per unique email address across every registration on file this season, including archived ones — for a season-start email or similar. For notifying people registered on a specific date (e.g. a weather cancellation), use the ⬇ CSV or 📋 Copy Emails buttons in the admin toolbar above after filtering the Dashboard to that date instead — those match exactly what's currently filtered. Full Sheet attendees other than the booking contact aren't included here; the app doesn't currently collect their email or phone, only their name for waiver purposes.
To change the Admin Access password:
v1.3.40 (matches the badge top-right), so look for the filename ending in that version number.adminPwHash — it appears more than once, so you may need to click the down arrow (Find Next) a couple of times until you reach the actual value line, which looks like:adminPwHash: '34f12a9d4aa2a...',
index.html via Cloudflare Pages, following the usual deploy steps.This can't be a clickable link — it's a local file edit on your computer, not a web address.
Simply click one or more Friday night dates on the calendar, fill in your information, choose how you'll pay, and click Complete Registration.
You can register for several Fridays in one go — click each date you want to attend. The total owing updates automatically at $15 per session. One e-transfer covers all selected dates.
E-Transfer: Send your payment to the club's e-transfer address before the event. Include your booking reference number (e.g. FRI-071226-8K3QZ) in the message — it helps the treasurer match your payment instantly.
Cash at door: Bring exact change ($15 per night). Cash registrants are still asked to pre-register so the coordinator can plan sheet assignments.
ECC members pay $10 per session instead of $15. Check "I am an ECC Member", search for your name, and enter the last 4 digits of your home phone number as your PIN to verify your membership and apply the discount automatically.
Telling us your experience level helps the coordinator assign you to the right sheet. The coordinator designates one sheet each night for beginners — choosing 📚 New — would like instruction places you on that sheet where an instructor will be available. Experienced curlers are distributed across the remaining sheets as evenly as possible.
If you want to curl with a specific person who is registering on their own, enter their name in the "Curl with someone not in your group?" field. The coordinator will do their best to honour pairing requests — pairs are kept together even when distributing players across sheets. If you're registering together with other people as one booking, add them under "Registering with others?" instead.
Contact the club at Curlennismore@gmail.com or call 705-292-5200.
After entering the admin password, you'll be asked: 🚶 Door Duty or 📋 Full Dashboard. Door Duty opens a streamlined walk-in check-in form — on a phone (≤600px) this is full-screen; on a tablet or laptop it opens the walk-in modal immediately. Full Dashboard takes you to the main coordinator view.
The header button toggles between the admin area and a live preview of the public registration page — handy for checking what registrants see without signing out. While previewing, the admin toolbar (tab bar, Settings, etc.) is hidden so the preview looks exactly like what the public sees; the button reads ← Public View while you're logged in as admin, or Admin once you're back on the public-facing view. Clicking it again brings the toolbar back and returns you to wherever you left off in the admin area.
Small round ⓘ badges appear throughout the admin area (Credits Ledger, Notify Treasurer, Dashboard stat cards, the Registering tab's guest-linking hint, and elsewhere) with a short explanation on demand. On a computer with a mouse, hover over the badge. On an iPad or other touch screen, tap the badge to open it — tap it again, tap a different badge, or tap anywhere else on the screen to close it. Only one tip stays open at a time.
The main coordinator view. Shows stat cards at the top: Registrations / Total People (split card — Registrations counts registration rows, Total People counts actual attendees; these differ once Full Sheet bookings are in play, since one Full Sheet row can represent up to 8 people — hover or tap the ⓘ for a reminder), Paid / Unpaid (click the Unpaid half to filter the table instantly), Cash at Door, Revenue Collected, Outstanding, and — when applicable — Refunds Owing 💸 and Future Credits 🎫 (click either to jump to the Credits tab). The registrant table below is filterable by date, status, and name. Click Mark Paid on any unpaid row; use Cancel to cancel dates and issue credits. The Bank Ref # (Interac transaction ID) appears under each confirmed e-transfer payment.
A registration showing $0 — no payment needed instead of the usual red Unpaid badge (with "Nothing to collect" in place of the Mark Paid button) means nothing is actually owed — most commonly a guest whose fee was waived by a linked ECC member at signup. This is a display-only difference: it does not mean the registration has been marked Paid, and it's deliberately left that way, since a waiver can revert mid-season (e.g. if the linked guest later cancels, the member's fee reverts to full price and the badge reverts too). This is separate from a credit bringing a balance to $0 — applying a credit that fully covers what's owed (via the Credits tab) does mark the registration Paid automatically, since that adjustment is final and won't reverse. See the Credits tab section below for more on how credits work.
Every registration gets a reference in the format FRI-MMDDYY-XXXXX — e.g. FRI-071226-8K3QZ is a booking submitted July 12, 2026 (the date embedded is when the registration was submitted, not necessarily the Friday date attended). The trailing 5 characters are random and only exist to keep same-day bookings unique — they don't encode anything else. The reference now appears directly under the registrant's name in the Dashboard table (previously it only showed up in the Notify Treasurer report), so if someone calls in quoting their reference number, you can find them immediately from either the Dashboard or the Search tab below without digging through reports.
A dedicated tab for looking up any booking by name, email, or booking reference — the same detail table as the Dashboard, but not limited to one date, with the Name, Email, and Dates columns click-to-sort (click again to reverse). Check Include archived to also search bookings that have been archived (see "Archive Old Registrations" below) — leave it unchecked and archived bookings are left out, same as everywhere else. The same search box, with its own ✕ clear button, also sits on the Dashboard tab for quick lookups without leaving that view; reach for the Search tab when you want the full sortable list.
Red button in the Coordinator tab bar. Opens the walk-in form pre-set to tonight's date. Check ECC Member first (top of form) to auto-fill name and apply the $10 rate. Experience defaults to Casual; payment defaults to Cash. Generates a standard FRI-MMDDYY-XXXXX booking ref (see "Booking reference numbers" below). Walk-ins appear in the Dashboard with a 🚶 badge and in the Sheet Assignment unassigned pool.
Use the Active tonight toggles to mark which sheets are available. The Spots tonight field overrides capacity for that date. The Unassigned Registrants pool lists everyone still needing a sheet, tagged so you can see at a glance what you're placing: 🏒 Full Sheet bookings, 👥 Party groups (with a shared code and "Guest of" notes), or plain individuals.
Full Sheet bookings reserve an entire physical sheet rather than one roster slot — click Reserve sheet → and pick from the sheets offered (only completely empty ones are eligible). A reserved sheet shows as a solid purple block; click it to release the sheet if plans change.
To move someone manually today, click their name in a sheet to remove them back to the pool, then click Assign → to place them on a different sheet — there's no drag-and-drop yet, just click-to-remove and click-to-reassign.
Click ⚙ Auto-assign — the first time each session you'll be asked which sheet is the instruction sheet. Full Sheet reservations are always protected and excluded from this process. Registered parties (Group registrations) are kept together as one block — if anyone in the party needs instruction, the whole party follows them to the instruction sheet; if a party can't fit together anywhere, it's left unassigned in the pool for you to place by hand rather than being split up automatically. Everyone else is distributed in a balanced round-robin, 📚 Needs Instruction curlers first. A ⚠ icon flags misplaced instruction curlers as a soft reminder.
Stat cards show Registrants, Collected, Outstanding, Total Bookings — Ice Utilisation ⓘ (hover, or tap on iPad, for explanation), plus a breakdown by all three experience levels. Per-night table shows registered count vs capacity. Cancellations and Refunds sections follow below.
Full credits ledger with status, reason, and action buttons. A credit is created automatically when a registration is cancelled — either as a Future credit (🎫 applied toward a later booking, no money moves) or a Refund Pending (💸 the Treasurer owes an e-transfer). The AVAILABLE / Refund Pending status badges each carry an ⓘ tooltip explaining exactly what happens next.
Apply ⓘ deducts a Future credit from one of that person's existing registrations — you pick which one from a list of everything currently in the system under their email. If the credit fully covers what was owed, that registration is automatically marked Paid too (no separate Payment Received email is sent, since no payment actually arrived — just the Credit Applied confirmation). A partial credit leaves the registration unpaid as normal. Once applied, the Status column shows exactly which booking it was applied to and the Friday date(s) that booking covers, so you don't have to cross-reference the registrant table to trace where a credit went. Mark Refund Sent confirms the Treasurer has e-transferred a refund credit. Void Credit Transaction ⓘ cancels the credit so it can no longer be applied — use for errors or out-of-system settlements. This does not delete the row: it stays in the ledger permanently, relabeled Voided, as an audit record. That's a distinct label from Forfeit (which means no credit was ever owed — the coordinator picked "no credit" at cancellation time) — Voided specifically means a credit was issued and later administratively cancelled.
There is no automatic link between a credit and "whatever the person registers for next." Nothing on the public registration page knows a credit exists, shows a balance, or reduces the amount owed — registrants always see and pay the full price when they submit a new registration. A credit only affects a registration's amount owed at the moment a coordinator opens the Credits tab and clicks Apply, choosing which existing registration (could be one just submitted, or one from weeks earlier) to deduct it from. That means applying a credit is always a retroactive, after-the-fact adjustment — it lowers a registration's total, it doesn't lower what the registrant was shown at signup.
Because of that gap, a registrant who was told (by email or otherwise) that they have a credit may reasonably send a reduced e-transfer expecting the credit to make up the difference — e.g. $20 for a $30 booking, expecting their $10 credit to cover the rest. Until v1.3.46, nothing flagged this: the shortfall just showed as an amount mismatch with no explanation, and confirming payment anyway (Mark Paid / Confirm) never checked or recorded the actual dollar gap. As of v1.3.46, the e-transfer matching screens (Parse E-Transfer paste tool — both single and multi-email modes — and the Pending E-Transfers queue) now show a blue 💡 note when a short amount matches, or is covered by, that person's unused credit(s), e.g. "$10.00 short — matches credit CRD-001 ($10). Apply it in the Credits tab, then confirm this payment." This is a hint only — it doesn't apply the credit or change any total by itself. The coordinator still needs to go to the Credits tab and click Apply so the registration's total and the payment actually reconcile; only then does Mark Paid / Confirm reflect the true picture.
Clicking Apply also emails the registrant confirming the credit was applied and their new amount owed (the "ECC Friday - Credit Available" template, active as of July 2026 — see "Email notifications — EmailJS templates" below) — closing the loop so they know it went through.
A Pending E-Transfers panel now sits at the top of this tab, automatically populated every 15 minutes from a dedicated intake mailbox that Sharon forwards relevant e-transfer emails to — no copy-pasting needed for anything she's already forwarded. Each entry shows a confidence badge (Strong/Possible/Weak) with a dropdown to confirm or correct the matched registration, plus the 💡 credit-shortfall note described above when the amount received is short and a credit could explain it; click Confirm → to apply payment (this also sends the registrant a payment-confirmation email — a real send, so double-check before clicking), or Reject to dismiss a false match with no side effects on any registration. Use Check Now to check the inbox immediately instead of waiting on the 15-minute schedule.
The manual paste tool below still works exactly as before, for anything not forwarded through the new intake address. Paste one or more Interac deposit notification emails — separate multiple with ---. The parser extracts Amount, Sender, Message, Reference #, Date and fuzzy-matches against unpaid registrations, showing the same 💡 credit-shortfall note when relevant. Click Mark Paid on a match — the Interac bank reference is saved to the registration and appears in the Dashboard Bank Ref # field.
Opens a financial summary panel with four colour-coded stat cards: ✅ Confirmed · ⏳ Outstanding · 💸 Refunds Owing · 🎫 Future Credits. Each section has a detail table with an ⓘ tooltip explaining what action is needed. Two action buttons: ↧ Download Treasurer CSV (always available — saves to your Downloads folder as ECC_Treasurer_YYYY-MM-DD.csv) and 📝 Send Email to Treasurer (requires EmailJS setup). The Outstanding section includes a pre-written 📧 Send reminder mailto link for each unpaid registrant. If an unpaid registrant has an unused Future credit sitting on their email (matched the same way Apply and the e-transfer shortfall hint match — by email, not exact name, since parties/guests often share one), the Owing amount shows a 💡 note flagging it — e.g. "$15 credit available" — so the Treasurer isn't asked to chase money that might already be covered by an un-applied credit. The same note is included in the emailed Outstanding list sent via Send Email to Treasurer. This is informational only; it doesn't apply the credit — the coordinator still needs to do that from the Credits tab.
Pricing & Capacity fields apply for the current session only. The Season Dates section is a once-a-year task — generate all Fridays, deselect closures (Dec 25 and Jan 1 pre-unchecked), adjust per-night capacity for nights with fewer sheets, then Save Season Dates. Saved to the server and visible from any device. Active date chips show amber when registrations exist on that date — removing an amber date triggers a warning and triage banner.
As a season winds down, use this panel to hide old registrations from the Dashboard, its stat cards, and Reports, so the active view stays focused on the current season. Archiving never deletes anything — archived bookings remain fully findable from the Search tab (check "Include archived") and can be unarchived any time from the "Currently archived" list at the bottom of this panel.
Select an entire season or a custom date range, then click Archive Selected Dates. A booking is only archived if every date on it falls inside the range you picked — anything with a date outside the range still has current or future relevance and is left alone.
Registrations with an associated credit are skipped automatically, since archiving them could break the Credits Ledger's "Applied to…" lookup for that booking. When any are skipped, a bold warning names exactly which registration(s) and why, with two choices: leave them (recommended — go void or resolve the credit first), or Archive Anyway (Override), which forces the archive through despite the risk. Only use the override once you understand a credit's traceability to that booking may be affected.
Once registrations are archived, the "Currently archived" list lets you select any number of them (checkboxes, plus Select all / Select none) and permanently delete them from the database with Permanently Purge Selected. Unlike archiving, this is irreversible — there is no unarchive-style undo.
Three safeguards, each stricter than archiving's own: a registration referenced by any credit is always blocked from purging — there is no override, ever; void or resolve the credit first, then purge again. Confirming requires typing PURGE into a text box before the delete button enables, and the confirmation modal names every registration about to be deleted. The moment you confirm, a CSV backup of exactly what's being deleted downloads automatically to your computer, before the delete happens on the server.
The season-long Waiver Records list is separate from the Dashboard's per-night waiver badges — it's the complete audit trail of every signed waiver this season. Click any of the Name, Email, or Date Signed column headers to sort, click again to reverse. Name and Email sort ignoring capitalization, so e.g. "Kris Keyser" and "kris keyser" group together — useful for spotting everyone who signed under one shared email address (the Full Sheet/group situation). A faint ↕ marks sortable columns; the active sort shows a solid ▲/▼. Export Waivers CSV exports in whatever order is currently on screen.
Yellow Demo bar at the top of every tab. Load demo data populates 10 sample registrations with realistic Interac bank refs. Add report data layers on additional credits and cancellation history to fully populate the Reports and Credits tabs. Clear all wipes everything — if demo data is loaded, only the demo records are cleared; if real data is showing, it only clears your local view (no server data is touched — refreshing or logging in again reloads the real data). All demo data resets on page refresh.
The bar itself can be hidden — a Show Demo Controls bar checkbox sits in the Settings tab, just above the Apply Settings button (Pricing & Capacity section). This is a global, server-saved setting: turning it off hides the bar for every admin on every device, not just yours. Click Apply Settings after changing it for the change to take effect.
Use 🔑 Generate a new password hash in the Settings tab (below Waiver Records) to create a new hash after any password change. Paste the hash into CONFIG.adminPwHash in the HTML file. The 👁 show/hide button on the password field lets you confirm what you've typed before signing in.
All outgoing email runs through seven EmailJS templates (service service_p2s10a4), each mapped to a template ID in the EMAILJS config block. Reply-To addresses are set per-template in the EmailJS dashboard, not in this file — most are fixed to the coordinator or treasurer's inbox; two use dynamic variables ({{to_email}} or {{coordinator_email}}) so replies route to the right person automatically.
confirmTemplateId) — to the registrant on signup. Variables: to_email, to_name, booking_ref, dates, sessions, total, price_note, pay_method, etransfer_to, pay_note, coordinator_email.cancelTemplateId) — to the registrant when a date is cancelled. Variables: to_email, to_name, booking_ref, cancelled_dates, cancelled_count, refund_note, coordinator_email.adminTemplateId) — to the coordinator on signup. Variables: to_email, registrant, reg_email, booking_ref, dates, total, pay_method, experience, is_member, coordinator_email.adminCancelTemplateId) — to the coordinator when a date is cancelled. Variables: to_email, registrant, reg_email, booking_ref, cancelled_dates, cancelled_count, booking_status, initiated_by, credit_action, credit_amount, credit_reason, coordinator_email.treasurerTemplateId) — to the treasurer, sent manually via 📝 Notify Treasurer in the admin tools bar. Variables: to_email, generated_on, paid_count, paid_list, unpaid_count, unpaid_list, refund_count, refund_list, refunds_owing_total, coordinator_email.paymentTemplateId) — to the registrant, sent when a coordinator confirms an e-transfer (manual Mark Paid or Pending E-Transfers Confirm). Variables: to_email, to_name, booking_ref, dates, sessions, total, pay_method, etransfer_ref, paid_date, coordinator_email.creditAppliedTemplateId, EmailJS template "ECC Friday - Credit Available") — to the registrant, Bcc'd to the Treasurer, sent when a coordinator applies a credit to one of their bookings via the Credits tab's Apply button. The Bcc means Sharon sees it too, so she doesn't end up chasing an amount a credit just changed. Variables: to_email, to_name, booking_ref, dates, credit_id, credit_applied, new_total, coordinator_email, treasurer_email. The template's Bcc field must be set to {{treasurer_email}} in the EmailJS dashboard for the Bcc to actually happen. Active as of v1.3.56.Note (Jul 2026): the Admin Alert and Confirmation template IDs were previously swapped in EMAILJS config, so each was receiving the wrong variable set — fixed in v1.3.38/39. The coordinator_email variable was added to every send in v1.3.39 so Reply-To fields can be made dynamic in the EmailJS dashboard instead of hardcoding an address.
Short walkthroughs for the trickier Dashboard and Sheet Assignment scenarios — Full Sheet bookings, party (group) registrations, and Auto-Assign's placement logic.
The Full Sheet booking takes Sheet 4 off the table entirely — Auto-Assign never places anyone else on it. The party of 4 has one member who needs instruction, so the whole party follows to Sheet 1 together — nobody in the group gets split up, regardless of the other members' skill level. The solo curler who also needs instruction joins them on Sheet 1 too. The two remaining solo curlers get distributed across Sheets 2 and 3.
This party of 4 has a mix of Regular, Casual, and one Needs-Instruction member — but skill level isn't why they're left unassigned here. Auto-Assign tries to fit the whole party onto Sheet 1, but only two spots remain, so the party stays together and waits in the pool rather than splitting up. A solo curler in the same batch still gets placed normally, since Auto-Assign only refuses to split parties, not individuals. If a helper curler is available elsewhere — like R. Costa on Sheet 3 — the coordinator can move the party there by hand and instruct informally. Auto-Assign won't do this automatically, but the option is always there.
Drag a curler's card directly onto a different sheet — or click to remove them, then click to reassign elsewhere. Both do exactly the same thing; use whichever's easier in the moment. Here, D. Alvarez moves from Sheet 2 to Sheet 1. Moving a party member only moves that one person — not their whole group. Here, only J. Smith relocates to Sheet 3; the other three members of the party stay right where they are on Sheet 1.
| Name | Experience | Waiver |
|---|---|---|
| R. Thompson
show names ✓ R. Thompson
✓ M. Bauer
✓ L. Fontaine
⚠ S. Cardinal
⚠ T. Boucher
⚠ N. Sabourin
⚠ D. Whitford
|
🏒 Full Sheet — 7 people | 3/7 signed |
| J. Smith 👥 Party (3) · A82F |
Regular | Member ✓ |
| A. Kim Guest of J. Smith |
Casual | ✓ Signed |
| B. Lee Guest of J. Smith |
Casual | ⚠ Pending |
A Full Sheet booking shows one aggregate count for the whole group — 3 of 7 attendees have signed so far. Click "show names" to see exactly which attendees still need to sign, without leaving the Dashboard. A party (Group registration) works differently — since each member is technically a separate linked registration, every one of them gets their own individual waiver status. Here, J. Smith is exempt as a member, A. Kim has signed, and B. Lee is still pending — all visible at a glance, no expanding required.
J. Smith (ECC member, normally $10/night) registers with two guests, both marked "guest of J. Smith":
| Person | Role | Amount |
|---|---|---|
| J. Smith | Member — fee waived (has a linked guest) | $0 |
| K. Wiebe | Guest of J. Smith — non-member rate | $15 |
| L. Fontaine | Guest of J. Smith — non-member rate | $15 |
Total for this booking: $30
K. Wiebe later cancels their date. L. Fontaine is still registered and still linked to J. Smith, so the waiver holds — J. Smith's fee stays at $0. K. Wiebe's own $15 is credited or refunded per the normal cancellation policy; it isn't affected by the waiver either way.
L. Fontaine also cancels — now no linked guest remains. J. Smith's fee automatically reverts from $0 back to the normal $10 member rate, with a note explaining why in the confirmation toast. The rule is simple either way: the waiver holds as long as at least one linked guest is still registered, and reverts the moment none are.
Sharon forwarded this bank e-transfer from her own inbox to the dedicated intake address. The server checked that inbox (automatically every 15 minutes, or right away via Check Now), parsed the sender, amount, reference, and message, and queued it here. The sender sent it as “Diane Alvarez” — a spouse's name, not how D. Alvarez is registered — so the amount matches but the name doesn't exactly, producing a Possible match rather than a Strong one. The coordinator reviews the details, uses the dropdown to confirm (or correct) which registration this belongs to, and clicks Confirm →. If nothing here actually matches a current registration, Reject dismisses the entry with zero effect on any registration. Confirm applies the payment atomically — the registration and the pending entry update together — and fires a real Payment Confirmed email to the registrant, the same as any other paid marking. Nothing is ever marked paid without this human confirmation step, on either the automated queue or the manual paste tool.
Select the registration to apply this credit toward:
Kris has a $15 credit on file from a prior cancellation, and her Nov 6 booking still shows $15 outstanding. The coordinator clicks Apply next to the available credit in the Credits Ledger, which opens this modal listing Kris's current registrations under the same email the credit was issued to. The coordinator selects the Nov 6 booking and confirms. The credit is deducted immediately: the ledger now shows it as Used, with a trace line showing exactly which booking and date it went to — and since $15 fully covered the $15 owing, the booking is automatically marked Paid, no separate click needed. At the same moment, an automatic Credit Applied email goes to Kris confirming the amount and her new balance, and the Treasurer is quietly Bcc'd on that same email — so she's never left chasing a balance a credit just changed.
Answers are AI-generated and may be imperfect — for anything urgent, contact the coordinator.
Which sheet is the instruction sheet tonight? 📚 Needs Instruction curlers will be placed there first.
A CSV backup of these registrations downloads automatically the moment you confirm, before anything is deleted.