SwiftCause Gift Aid & Donor Identity

Problem Statement, Flows, Blockers & Recommended Solutions
Based on 13 April 2026 standup + full project context | Prepared for Qamar Waraich

What Are We Trying to Achieve?

The Core Value Proposition

SwiftCause turns every £1 donated into £1.25 by capturing Gift Aid declarations digitally. The entire platform is built around one idea: a donor taps their card or phone, and we capture enough information — securely, compliantly, with minimal friction — to let the charity reclaim 25% from HMRC.

For donations £30 and under, GASDS lets charities claim the same 25% without donor details — but only if they meet two prerequisites: (1) the 10x matching rule (GASDS cannot exceed 10x standard Gift Aid), and (2) the 2-year Gift Aid history rule — the charity must have made successful Gift Aid claims in at least 2 of the last 4 tax years before GASDS becomes available. So Gift Aid capture is the engine that powers everything, and it takes at least 2 years before GASDS kicks in for charities new to Gift Aid.

What SwiftCause Does Differently

  • Any device, zero hardware cost — competitors (Dona, GoodBox, Hibabox, CollecTin) sell £135–£350+ hardware; we turn any phone or tablet into a collection point
  • Magic link post-tap recovery — unique in the market. When a donor taps and walks away, every other platform loses that Gift Aid forever. SwiftCause gives the donor 30 days to come back via QR/magic link on their own phone
  • 30-day token window — not 72 hours like competitors, giving charities £4,500/yr more recovered Gift Aid per charity
  • Two-pile logic — separates donations (Gift Aid eligible) from activity fees (not eligible), crucial for religious institutions. No competitor has this.
  • GASDS tracking as a system — community building doubled cap (£16k vs £8k), 10x matching alerts, year-end pool dashboard. No competitor tracks any of this — but the dashboard alone is copiable. The moat is the combination: magic link recovery feeds the Gift Aid base, Gift Aid base feeds the GASDS multiplier, location tagging maximises the cap. A competitor needs all three layers to match.
  • 3% Gift Aid commission — less than half the industry standard (Dona/Swiftaid/GoodBox all charge 5%)

The Identity Gap Problem

The fundamental tension surfaced in the 13 April meeting:

At tap time, the donor is anonymous. They tap a card, Apple Pay, or Google Pay. Payment goes through Stripe. We have a successful transaction but zero identity — no name, no address, no email. Gift Aid requires name, home address, and full postcode. It does NOT require email — that's a SwiftCause system concern, not an HMRC one.

The magic link bridges this gap: donor scans a QR code, opens a page on their own phone, and provides their details. This happens off the collection point — there is no queue impact. The only risk is donor abandonment (closing the tab).

Competitors solve the identity problem differently: Dona, Hibabox, and CollecTin use card token recognition — the physical card is the identity, and same card tapping again auto-applies Gift Aid. Swiftaid operates a separate donor network matched by card token. None of them use email verification or OTP. SwiftCause's magic link flow is architecturally different because the payment device and the donor's phone are separate — the card token and the phone session are disconnected.

The emerging solution (Option C): Accept all Gift Aid details (name, address, postcode, email) on one form with zero verification at point of capture — matching industry norms (Dona does exactly this). Send a "thank you" email with a passive verification link. Verified donors get returning donor recognition on future visits (via email + OTP at that point only). Unverified donors' Gift Aid is still fully captured and HMRC-ready. Phase 2 adds Stripe card fingerprint matching for frictionless returning donor recognition — the same proven pattern used by Dona, Hibabox, and Swiftaid.

The Three Things We Must Get Right

Everything else is secondary to these three outcomes:

#ObjectiveWhy It MattersCurrent Status
1 Maximise Gift Aid capture rate on the magic link Every completed declaration = £0.25 per £1 for the charity + 3% commission for SwiftCause. It also feeds the 10x GASDS multiplier. This is the revenue engine. Magic link shipped (PR #622). Gift Aid form flow design in progress — Option C (accept all, verify later) recommended. Pilot KPI target: ≥50% completion.
2 Protect donor data without killing the flow The 13 Apr meeting identified that the current magic link exposes stored donor data to anyone who enters an email. Must be fixed before launch — but the fix must not add friction that tanks the capture rate. Solution: don't show stored data to unverified users. New donors always see a blank form (zero risk). Returning verified donors get OTP-gated prefill. Passive verification via thank-you email builds the verified account base over time.
3 Build the Gift Aid base that unlocks GASDS GASDS is the "free money" pitch to treasurers — 25% back on anonymous £30-and-under taps with no donor details needed. But it only works if the charity has enough standard Gift Aid (10x rule). The magic link recovery path and the Day 1 recurring subscription strategy both feed this base. GASDS pool tracking and community building location tagging are post-launch Phase 2. The foundation (Gift Aid capture) must work first.

The Revenue Impact

£1,250
Monthly HMRC reclaim per charity
(on £5k/mo donations)
3%
SwiftCause commission on
Gift Aid reclaimed
(vs 5% industry standard)
£37.50
Monthly platform revenue per charity
from GA commission alone
10x
GASDS multiplier — every £1
of Gift Aid unlocks £10 of GASDS

If we don't solve Gift Aid capture properly, charities can't claim, GASDS stays locked, and the commercial model collapses. The flow design (Option A/B/C) directly determines the capture rate, which directly determines revenue — for the charity and for SwiftCause.

Donation & Gift Aid Capture Flows

FLOW A Full Gift Aid at Point of Donation (Slow Flow)

Donor has time — church service, office collection, community hall. Gift Aid captured before or alongside payment.

Donor selects amount
Gift Aid Boost Panel
"Add 25% at no cost"
UK Taxpayer?
Name + HOME Address
+ Postcode + Consent
Card Tap / Pay
Declaration linked
to donation

Identity solved: Donor provides everything upfront. No gap. Postcode validated. Declaration created BEFORE payment (status: pending), upgraded to "active" by Stripe webhook.

FLOW B+ Post-Tap QR / Magic Link (Fast Flow) ACTIVE BLOCKER

High-traffic: Friday prayers, events, festivals. Speed matters — tap in under 15 seconds, Gift Aid captured later.

Donor taps card
/ Apple Pay / Google Pay
Stripe processes
payment
Thank You screen
with QR code
Donor scans QR
on own phone
Magic link page:
Email + Details
Declaration linked
to token → donation
This is where today's meeting problems live. The red steps above are where donor identity is captured — and where the email verification, returning donor autofill, and data security risks all converge.

Token is valid for 30 days. If the donor never scans the QR, the donation still exists but with isGiftAidCaptured: false — it goes into the GASDS-eligible pool if £30 or under.

HYBRID Boost Panel + QR Fallback

Collection point offers the full Gift Aid panel (Flow A). If the donor skips it, they get the QR follow-up path (Flow B+). Best of both worlds — catches willing donors immediately, recovers the rest via magic link.

RETURNING DONORS Recognition Flow (Not Yet Safe)

Donor opens
magic link
Enters email
System finds
existing profile
Prefills name,
address, postcode
Donor confirms
& Gift Aid applied
Today's meeting risk: Anyone can enter any email on the magic link page and see/edit another person's stored data. Without email verification, the returning donor flow is a data exposure vulnerability. The team agreed this must be gated by OTP or email verification before going live.

Apple Pay / Google Pay Data Question

Raised in today's meeting: can we harvest payer identity (name, email, billing address) from Apple Pay or Google Pay via Stripe's payment data?

Stripe reality: When a donor pays via Apple Pay or Google Pay, Stripe receives a billing_details object that may contain name, email, and billing address — but only if the wallet is configured with these details and the Stripe PaymentIntent requests them. This is a genuine shortcut: if the donor's wallet provides a verified billing address, we could pre-fill the Gift Aid form and just ask for confirmation + consent. This needs a feasibility spike — it could eliminate the identity gap for wallet-paying donors entirely.

Current Blockers (from 13 Apr meeting + project context)

CRITICAL Email Verification Not Implemented

What: The magic link page currently lets anyone type any email address. If that email matches an existing donor profile, their full name and home address are displayed and editable. This is both a data protection risk and a GDPR violation.

Meeting outcome: Team agreed OTP or email-link verification is required before showing or editing any stored data. Approach not yet finalised (OTP vs email link vs defer email collection).

Impact: Cannot safely launch returning donor recognition. Cannot build trust with charities handling sensitive donor data.

CRITICAL Over-£30 Donations Without Email = Lost Gift Aid

What: Donations over £30 are NOT eligible for GASDS — they need full Gift Aid declarations with name, address, postcode. If the donor taps £50 via Apple Pay, doesn't scan the QR, and never provides email — that £12.50 Gift Aid is gone forever.

Meeting outcome: Action on Qamar to determine how to capture details when amount is over £30 and email is missing. OTP route being assessed.

Impact: Every missed £50+ donation costs the charity £12.50+. At scale this is thousands per year.

HIGH Consent Ledger Tasks #609–#612 Still Unassigned

What: The Consent Ledger architecture was approved on 30 March. Magic link shipped (PR #622). But the sprint is on Day 16 and the core consent event tasks — token generation, Cloud Function trigger, IP capture, donor reconciliation — remain unassigned.

Impact: Without the consent ledger, Gift Aid declarations lack the audit provenance HMRC requires. The declaration exists but can't prove when, where, and how consent was given.

HIGH No Admin Anomaly Queue for Duplicates

What: Meeting discussed scenarios where wrong emails get attached to donations, or the same email appears on multiple conflicting records. No admin UI exists to flag, review, or resolve these.

Meeting outcome: Agreement to build a "duplicate email anomaly area" for treasurer/admin review with manual resolution and audit trail. Super-admin correction workflow needed for wrongly attributed records.

HIGH Tax Year Bug (GA-01)

GiftAidDetailsPanel.tsx uses JavaScript's getFullYear() instead of the UK tax year boundary (6 April). Any donation between 1 January and 5 April gets assigned to the wrong tax year, which means the HMRC CSV export will have incorrect data.

INVESTIGATION Apple Pay / Google Pay Data Harvesting

What: Can we pull billing name, email, and address from wallet payment data via Stripe to pre-fill Gift Aid forms? This could dramatically reduce friction for the majority of tap-to-pay donors.

Status: Feasibility investigation assigned to team. Legal permissions and technical scope to be confirmed. If viable, this changes the entire identity strategy.

Recommended Solutions

These recommendations synthesise today's meeting discussion, HMRC compliance requirements, the SwiftCause architecture, and practical delivery constraints.

1  Implement "Verify-Then-Show" Email Flow

The problem it solves: Anyone can enter any email on the magic link page and access stored donor data.

Recommended approach: Lightweight OTP (6-digit code via email)
  1. Donor opens magic link → sees amount confirmed → enters email
  2. System sends 6-digit OTP to that email (valid 10 minutes)
  3. Donor enters OTP on the same page
  4. Only AFTER verification: if returning donor, prefill name/address; if new, show blank form
  5. Donor completes Gift Aid form → opt-in consent checkbox → submit

Why OTP over email-link: The donor is already on their phone from scanning the QR. Sending another magic link creates confusion ("which link do I click?"). A 6-digit code they can see in their email notification banner and type in keeps them on the same page — no context switch. Firebase Auth supports this natively.

Fallback for donors who skip OTP: Allow Gift Aid form submission without email verification, but treat the record as "unverified" — it maps to the token/donation only, does NOT create or update a donor profile, and does NOT prefill on future visits. Gift Aid is still claimable (HMRC doesn't require email verification, just the declaration data).

2  Spike: Stripe Wallet Data for Gift Aid Pre-fill

The problem it solves: The identity gap — donors are anonymous at tap time.

What to investigate (1-2 day spike):
  1. When a donor pays via Apple Pay or Google Pay, check what Stripe returns in payment_intent.charges.data[0].billing_details
  2. Fields to look for: name, email, address.line1, address.postal_code
  3. Test with real Apple Pay and Google Pay sandboxes — the data varies by wallet configuration
  4. If billing address is available: present it on the magic link page as "We received these details from your payment — are they correct?" with a confirm + consent button

If this works: The magic link page becomes a simple confirmation ("Is this your home address? Yes/No") rather than a full form. Gift Aid completion rates could jump from ~50% to 80%+. The email verification problem is also reduced because the wallet email is inherently verified by Apple/Google.

If this doesn't work: We proceed with OTP-gated manual entry (Solution 1). No time wasted — the spike proves/disproves the assumption quickly.

Legal note: Even if Stripe provides the data, we still need explicit opt-in consent to use it for Gift Aid purposes. The wallet consent covers payment, not tax reclaim. Add a clear "I confirm this is my home address and I want to Gift Aid this donation" checkbox.

3  Under-£30 / Over-£30 Bifurcated Flow

The problem it solves: Today's meeting identified confusion about what data is required at different donation amounts.

ScenarioAmountData RequiredGift Aid PathFallback
Small anonymous tap £30 or under None — payment only GASDS pool (no declaration needed) Charity claims at year-end, subject to 10x rule
Small tap + QR scanned £30 or under Email + name + address (if donor engages) Standard Gift Aid (better than GASDS — builds the 10x base) Falls back to GASDS pool if donor doesn't complete
Larger donation, no QR Over £30 MUST have name + home address + postcode Gift Aid only — NOT GASDS eligible Gift Aid LOST. No reclaim possible.
Larger donation + QR scanned Over £30 Email (verified) + name + address + postcode Standard Gift Aid via magic link 30-day token window to recover
Key insight from today's meeting: For over-£30 donations, the system should nudge harder. Consider making the QR/thank-you screen more persistent for larger amounts — e.g., "You donated £50. The charity could receive £62.50 if you take 30 seconds to complete Gift Aid" with a larger, more prominent QR code and the amount of the potential Gift Aid boost displayed.

4  Token → Verified Email → Donor Profile Lifecycle

The problem it solves: Today's meeting asked "what is stored against the token vs. verified email, and when does the record become an identified donor?"

Proposed three-stage lifecycle:
StageStateWhat's StoredPermissions
1. Anonymous Token created at payment Stripe payment ID, amount, timestamp, device fingerprint, location No donor data shown. QR code generated.
2. Claimed Email entered + OTP verified Above + verified email, opt-in consent event, IP, user agent If returning: prefill shown (read-only until confirmed). If new: blank form.
3. Declared Gift Aid form submitted Above + full name, home address, postcode, declaration text, taxpayer confirmation Donor profile created/updated. Declaration linked to donation. HMRC-ready.

The critical rule: data never moves backwards. Once a declaration is timestamped and archived (as a PDF per today's meeting decision), it becomes immutable. Any correction requires a super-admin audit-trailed amendment — not an edit to the original record.

5  Admin Anomaly Queue & Super-Admin Corrections

The problem it solves: Wrong emails, duplicate records, conflicting donor data.

Design:
  • Anomaly triggers: Same email submitting from different devices within a short window; address mismatch on returning donor; multiple unverified submissions against same email
  • Treasurer view: Dashboard queue showing flagged records with side-by-side comparison of conflicting data. Treasurer can mark as "resolved" or "escalate"
  • Super-admin corrections: Can re-link a donation to a different donor profile, merge duplicate profiles, or void a declaration. Every action creates an audit event with timestamp, admin ID, reason, and before/after snapshot
  • Auto-resolution: If the verified email donor confirms "yes, I made this donation," auto-resolve. If no response within 7 days, keep flagged for manual review

6  Account Creation as a Gift Aid Side-Effect

From today's meeting: Once a donor has completed Gift Aid with a verified email and opted in, create a lightweight account. Future donations from this donor (via email match or wallet data match) auto-apply their existing Gift Aid declaration.

The OTP sent for email verification doubles as the account creation trigger. No separate signup flow needed. The donor's "account" is simply their verified email + their most recent declaration with futureConsent: true.

This directly supports the commercial model: once a donor has an account, they're on the path to recurring Gift Aided subscriptions — which builds the 10x GASDS base.

Phase 1 Must-Haves (P0) — Locked-In Compliance Architecture

Confirmed 14 April 2026: Phase 1 launch (9 May 2026 GTM) goes live with these compliance features locked in. Item-level tracking and inventory features are explicitly OUT of scope for launch — campaign-level architecture handles all HMRC compliance cleanly.

P0 1. Campaign-Level Compliance Lock

Every campaign in SwiftCause is set to exactly one of two modes at the campaign level. This auto-enforces the Two-Pile Logic without item-level drill-down or inventory.

Donation Mode

e.g., "General Maintenance", "Roof Fund", "Sadaqah", "Tithe"

  • System auto-triggers standard Gift Aid flow
  • Captures donor name + home address + UK taxpayer tick
  • Eligible for Gift Aid AND GASDS pool
Activity Mode

e.g., "Madrasah Fees", "Weekly Subs", "Class Fees", "Event Tickets"

  • System HARD-LOCKS Gift Aid to OFF
  • Skips GA prompt entirely
  • Excluded from GASDS pool
Setup pattern: Charities create one campaign/button for pure donations and a separate campaign/button for activities. Auto-tagging happens instantly at the campaign level. Books stay clean and HMRC compliance is automatic from Day 1.
LOCKED UX PRINCIPLE — Two-Button Front Door (confirmed 16 Apr 2026):
The entire donor experience distills to exactly two buttons at the point of tap: [Payment] and [Donation]. Compliance routing happens invisibly behind the scenes. The volunteer sees only: pick one of two → enter amount → tap card. Three taps for Donation (postcode is the extra), two for Payment.

Non-negotiable for Phase 2: When donor IDs, classes, member categories, restricted fund codes land in phase 2, they are added to BACK-OFFICE routing logic, never to the front door. No third button. No picker lists in the donor's face. The magic is that the volunteer needs zero training and the Chair needs zero audit worry — that magic dies if we add choice fatigue at the tap moment.

Stripe rates at each button: [Donation] = 1.2% + 20p charity rate | [Payment] = 1.5% + 20p standard rate.

HMRC 2. Activity Mode = "Primary Purpose Trading"

Under HMRC rules, Activity Mode payments are classified as Primary Purpose Trading, NOT charitable donations. The donor receives a direct benefit (a class for their child, an event ticket, a book) — so these payments are strictly ineligible for Gift Aid.

Activity TypeHMRC ViewSwiftCause Treatment
Weekly subs / membership (Scouts, afterschool clubs)Trading incomeHard-lock GA OFF
Class fees (gymnastics, Arabic) — fixed fee, place tied to paymentTrading incomeHard-lock GA OFF
Madrasah — DEPENDS ON STRUCTURE (see below)VariesVaries — see carousel logic
Event ticketsTrading incomeHard-lock GA OFF
Book sales / physical goodsTrading incomeHard-lock GA OFF
Why it matters: Accidentally claiming Gift Aid on trading income triggers HMRC clawbacks and penalties. The Compliance Lock prevents this at the campaign level — no human error possible.
Madrasah Structure Nuance (updated 18 Apr 2026): "Madrasah = Activity Mode" is NOT a blanket rule. HMRC tests the benefit link, not the label. Three common structures:

Structure A — Fee-for-service (Activity Mode): "£30/month per child, place tied to payment." Clear benefit = NOT Gift Aid eligible. Stripe 1.5% + 20p.
Structure B — Voluntary donation (Donation Mode): "Suggested £30/month to support the madrasah. Child attends regardless." No link between payment and benefit = Gift Aid eligible, Stripe 1.2% + 20p. Common in well-run mosque madrasahs precisely to stay GA-eligible.
Structure C — Split / carousel (Phase 2): Small fixed admin fee (Activity) + voluntary top-up donation (Donation). Two Stripe price IDs, two compliance piles, one payment session. HMRC explicitly allows this if voluntary portion is genuinely voluntary.

Sales impact: Discovery question: "Is your madrasah structured as fixed fees, voluntary contributions, or a split model?" Answer can double deal size at mosque prospects — £60-100k/yr flows as GA-eligible instead of trading income.

P0 (Launch) 3. Campaign-Level Record Segregation

Member Reference field is NOT required at launch. What IS required: the campaign-level lock must SEGREGATE and MARK records by mode so Activity Mode payments are clearly tagged as non-GA / trading income in the data.

Launch (P0)
  • Campaign mode stamped on every donation/payment record
  • Activity Mode income clearly tagged as non-GA
  • Books reconcile cleanly without manual intervention
Post-Launch Addition
  • Member Reference field for Activity Mode (Child's Name, Student Name, Family Name)
  • Solves "mystery money" reconciliation for Treasurers
  • Added on top — no re-architecture needed
Architectural rationale: Stamping mode on records at launch gives the structural hook to layer Member Reference on top later as a small change rather than a re-architecture.

CRITICAL 4. R68 Form Requirements

R68 is the official HMRC document required to submit Gift Aid claims. Failure on any of these requirements can invalidate the entire claim and expose the charity to HMRC penalties.

RequirementDetailRisk if Wrong
HMRC April 6 Tax Year Boundary UK tax year strictly runs 6 April → 5 April, NOT calendar year. A donation in January 2027 belongs to the tax year that began 6 April 2026 — it does NOT start a new tax year. Entire claim invalidated + penalties
Mandatory Donor Details Full name, home address (with house number + postcode), UK taxpayer tick Claim rejected
Digital Audit Trail (6 years) Paperless declarations require IP address, timestamp, unique Transaction ID linked to digital signature — kept for 6 years Audit failure
Monthly Auto-Batching SwiftCause v2 auto-generates R68 forms, batches declarations, submits monthly to HMRC (not annually) Cash flow + manual work
April 6 boundary in plain language: If a system calculates the tax year on calendar boundaries, donations are grouped into the wrong year. Submit an R68 with calendar-year grouping → claim is invalid → charity faces HMRC penalties. This is the GA-01 bug fix referenced in the architecture doc.
Why monthly batching wins: Most charities manually compile R68 claims annually using spreadsheets. SwiftCause's monthly auto-batching means the charity gets its 25% top-up every month instead of once a year — material cash flow improvement, especially for smaller causes.

Why This Architecture Wins for Phase 1

  • No item-level tracking required — campaign-level lock handles all HMRC compliance cleanly
  • No inventory feature required — no need to map every donation to a SKU pre-launch
  • Books are clean from Day 1 — Donation pile and Activity pile auto-segregated
  • HMRC compliance is automatic — human error designed out at the campaign level
  • Launch ready, future-proof — Member Reference layers on top as a follow-up release without re-architecture
  • Religious sector ready — sadaqah/tithe (Donation Mode) cleanly separates from Madrasah fees / event tickets (Activity Mode)

GASDS, Location Management & the Gift Aid Progression

The Gift Aid Progression Model

This is the strategic sequence that makes SwiftCause's commercial pitch work. Each stage unlocks the next:

Stage 1: Anonymous Taps

Charity starts taking contactless donations. Every tap under £30 goes into the GASDS-eligible pool. But without standard Gift Aid claims, the GASDS pool is capped at £0 (10x matching: 10 × £0 = £0).

Stage 2: First Gift Aid Declarations

Move regular supporters to recurring Gift Aided subscriptions. Even 10 donors at £10/month = £1,200/year in standard Gift Aid donations. This unlocks £12,000/year of GASDS space (10x).

Stage 2b: 2-Year Gift Aid History (HMRC Prerequisite)

CRITICAL RULE: A charity must have made successful Gift Aid claims in at least 2 of the previous 4 tax years before they can claim GASDS at all. Newly registered charities that have been claiming GA since registration are exempt. This means charities new to Gift Aid cannot claim GASDS for at least 2 years. Factor this into revenue projections — Year 1 GASDS revenue is £0 for charities starting fresh.

Stage 3: GASDS Claiming

Once the 2-year GA history is established, the charity's BBQ taps, event collections, and walk-in donations under £30 can ALL be claimed. SwiftCause auto-calculates: "You have £12,000 of GASDS space and £8,000 in eligible taps. Claim 100%."

Stage 4: Community Building Bonus

Each qualifying community building (church, mosque, temple, village hall) unlocks a SEPARATE £8,000 GASDS allowance on top of the base cap. To qualify under HMRC: charity must host at least 6 events per year at that specific building with 10+ donors per event. SwiftCause auto-tracks via Fleet Management and Green-Lights buildings the moment they qualify — a genuine differentiator no competitor offers.

TECH Community Building Tracking — How the Tagging Actually Works

SwiftCause tracks and tags transactions to specific community buildings via the Fleet Management system to create the precise digital audit trail HMRC requires for the doubled GASDS allowance.

Step 1: kiosk_id on every donation BUILT

Every individual donation is automatically marked with a unique kiosk_id that identifies the specific tablet or volunteer phone that processed the payment. This is the only piece that exists today.

Step 2: kiosk_idBuilding_ID mapping NOT BUILT

Admin screen where the charity maps each kiosk to a named building (e.g., "Main Hut", "Church Basement", "Madrasah Hall"). There is no Building_ID field in Firestore and no admin UI for this mapping. Growth/Scale tier feature — not a pilot blocker.

Step 3: The 6-Event Counter NOT BUILT

System counts unique event-days per building per tax year and unique donors per event-day per building. None of this exists. Growth/Scale tier feature.

Step 4: Automated "Green Light" NOT BUILT

Once the system detects that a kiosk has processed donations across 6 events with 10+ donors at the same building, the dashboard automatically "Green Lights" that location. Growth/Scale tier feature.

Honest status (updated 18 Apr 2026): Only Step 1 (kiosk_id on donations) is built. Steps 2-4 are designed but entirely unbuilt. For the pilot, the base £8k GASDS allowance doesn't require community building tracking — every charity gets £8k regardless. The community building test only matters when a charity wants the extra £8k per additional building. Position as "coming in Growth tier" not "we do this today."
Tagging chain summary: donationkiosk_idBuilding_ID6-Event CounterGreen Light+£8k GASDS allowance.

DESIGN Dashboard Surfaces Required for Community Building Tracking

The kiosk-to-building tagging mechanic creates five first-class surfaces the Admin Dashboard needs to expose:

SurfaceWhat it showsAudience
Per-Building Progress Counter Events-to-date out of 6, donors-per-event out of 10. Visual progress bar toward Green Light threshold. Treasurer / Admin
Green Light Status Indicator Per-building badge: Not Qualified / Approaching / GREEN LIGHT. Date qualified shown. Treasurer / Admin
Treasurer Alerts / Notifications Notification fires the moment a building qualifies: "£8,000 GASDS allowance unlocked at [Building Name]." Treasurer
GASDS Pool Reporting (per-building breakout) Total GASDS pool = base £8k + (each qualified Community Building × £8k). Per-building usage and remaining cap. Treasurer / Finance
Audit Trail Export Export linking each donation → kiosk_idBuilding_ID → event date for HMRC scrutiny. 6-year retention. HMRC / Auditor
Commercial wedge: A multi-site mosque or church can legitimately stack 2x, 3x or 4x the GASDS cap if they hit the threshold per location. Manual tracking is brutal — auto-Green-Light is the differentiator. Treat this as a first-class dashboard surface, not a hidden compliance afterthought.

Location Management for Gift Aid & GASDS

This is the post-go-live feature that makes multi-site charities love SwiftCause:

Location FeatureGift Aid ImpactGASDS ImpactStatus
Tag location as "community building" No direct impact Doubles GASDS cap to £16,000 for that location Post-launch
Per-location flow configuration Set default flow (A, B+, Hybrid) per venue High-traffic locations default to B+ (more GASDS-eligible taps) Post-launch
Location-level Gift Aid conversion dashboard Shows % of donations with Gift Aid captured per venue, tracked by postcode/campaign Shows per-location GASDS pool size vs. 10x cap — each venue tracked independently Post-launch
GASDS pool tracker with "Gap Alert" (per-location) Prompts charity to get more declarations at specific locations where GASDS pool exceeds that venue's 10x allowance Prevents money being left on the table — pinpoints which venue needs more Gift Aid declarations Post-launch
Donation mode vs Activity mode per campaign Gift Aid hard-locked OFF for activity mode Activity mode payments excluded from GASDS pool In scope

The Religious Sector Pitch (Two-Pile + GASDS)

This is where it all comes together for mosques, churches, and temples — SwiftCause's primary launch vertical:

The treasurer conversation:
"Your regular community donates every Friday/Sunday. Move 20 of them to £10/month Gift Aided subscriptions — that's £2,400/year in standard Gift Aid, which unlocks £24,000/year of GASDS space. Your Ramadan collection last year was £15,000 in small donations — with SwiftCause, you'd claim £3,750 back from HMRC that you're currently losing. Plus your mosque is a community building, so your GASDS cap is £16,000 not £8,000."

The two-pile logic (donation mode vs activity mode) means madrasah fees, event tickets, and book sales are cleanly separated and never accidentally claimed for Gift Aid — which protects the charity from HMRC clawbacks.

Pre-sales check: Before pitching GASDS revenue to a mosque/church, verify they've been claiming Gift Aid for at least 2 of the last 4 tax years. If they're new to Gift Aid, GASDS revenue is Year 3+ only. Adjust projections accordingly. Also ask about madrasah structure (fee vs voluntary vs split) — a voluntary structure can double the Gift Aid-eligible income. See the Pre-Sales Qualification Tool for the full discovery flow.

Open Decisions Requiring Resolution

DECIDE NOW Email Verification Method

OptionProsConsRecommendation
A. OTP (6-digit code) Same-page experience, no context switch, Firebase Auth native support Requires email delivery (1-2 min delay), donor might abandon Option A for launch.

Simple, proven, keeps donor on same page. Fallback: allow unverified Gift Aid (declaration-only, no profile update).
B. Email verification link Standard pattern, very secure Donor already followed one link (magic link) — asking them to click another creates confusion and drop-off
C. Defer email entirely Zero friction No returning donor recognition, no recovery path, no account creation. Defeats the purpose.

SPIKE FIRST Apple Pay / Google Pay Data Feasibility

Owner: Team (needs assigning)
Timeframe: 1-2 days
Deliverable: Test with Stripe sandbox — what fields come back from Apple Pay / Google Pay payments? Can we reliably get name + billing address + email?
Decision gate: If yes → redesign magic link page as "confirm these details" rather than "enter your details". If no → proceed with OTP + manual form.

DEFINE Consent Ledger Task Ownership

Tasks #609–#612 have been unassigned for 16 days. These are the backbone of HMRC audit compliance. Without them, Gift Aid declarations are technically valid but lack provenance proof. Needs immediate assignment — ideally to the developer who built PR #622 (magic link infrastructure) since they have the most context.

POST-LAUNCH Postcode Lookup (PAF Integration)

Today's meeting decided on postcode check as the main verification for Gift Aid. Currently it's manual entry only. Royal Mail PAF lookup would reduce errors and speed up form completion. Not a blocker for launch — postcode validation (format check) is sufficient — but a strong fast-follow for data quality.

DEFINE Data Retention & Auto-Delete Policy

Meeting mentioned "six years after last payment" as the retention period. This aligns with HMRC's 6-year record retention requirement for Gift Aid. Needs to be formalised: auto-delete trigger, what counts as "last payment" (last donation? last recurring payment? last HMRC claim?), and how this interacts with GDPR data subject requests.

Competitor Approaches to Gift Aid & Donor Identity

How the UK contactless donation market solves (or doesn't solve) the same problems we're wrestling with. Updated April 2026.

Market Landscape — Three Identity Models

Every competitor faces the same core problem: a contactless tap is anonymous, but Gift Aid needs a name and address. The market has settled on three distinct approaches to bridging that gap:

ModelHow It WorksWho Uses ItEmail OTP?
Card Token Recognition Donor registers once on the device. Card is tokenised. Same card tapping again = same donor = Gift Aid auto-applied. Physical card is the proof of identity. Dona, Hibabox, CollecTin, GoodBox (via Swiftaid) No
Donor Network Donor registers once with a third-party network. Any donation to any member charity is auto-matched via card token. Single authorisation covers all charities for the tax year. Swiftaid (integrated by GoodBox, JustGiving, Give A Little) No
QR → Web Form Donor scans QR, opens a web page, fills in details. Form submitted = Gift Aid captured. No card token link — relies on the donor completing the form. DonationPay, PayaCharity QR, GiveTap QR/NFC No
Key finding: No competitor in the UK contactless donation space uses email OTP or any form of email verification for Gift Aid capture. The market treats the person providing the details as the legitimate donor. SwiftCause's returning-donor-prefill-via-email is a unique feature — and the vulnerability it creates is unique too.

Dona — The Primary Competitor

WHAT THEY DO

  • Hardware: Dedicated terminals (digital collection plates) — must buy/lease device
  • Gift Aid flow: On-device form (name, house number, postcode, email). One-time registration. Card tokenised.
  • Returning donors: Same card tap = auto Gift Aid. Email confirmation sent after each donation with a link to update preferences.
  • Email verification: None. Email collected but not verified.
  • HMRC export: Management portal, download in HMRC-ready format
  • 40%+ Gift Aid rate on their donations

PRICING & MODEL

  • Hardware purchase or lease required
  • Transaction fees on donations (exact % not public)
  • Gift Aid commission: 5% of reclaimed amount (via Swiftaid partnership)
  • No fixed term contracts — cancel with 1 month notice
  • 2,000+ charities, £60M+ raised

SWIFTCAUSE ADVANTAGE

  • Zero hardware cost (any device)
  • 3% GA commission vs Dona's 5%
  • Magic link recovery for missed donors
  • Dona's card-token returning donor is simpler than our email-based approach

Swiftaid — The Infrastructure Layer

WHAT THEY DO

  • Not a collection device — a back-end Gift Aid automation network
  • Donor registers once with Swiftaid (name, address, taxpayer status). Single authorisation covers all charities, all year.
  • Card token matching: Any contactless donation via any Swiftaid-integrated platform is auto-matched. Donor never fills in a form again.
  • HMRC partnership: Worked directly with HMRC on the automated declaration model
  • Partners: GoodBox, JustGiving, Give A Little, and growing
  • Email verification: None at point of donation. Registration is one-time.

PRICING

  • Free for charities up to £6,000/year Gift Aid processed (from Jan 2026)
  • Over £6k or early claims: 5% + VAT of Gift Aid amount
  • Retrospective matches (Gift Aid Finder): 10% + VAT
  • Donors pay nothing

SWIFTCAUSE POSITION

  • Swiftaid is a potential integration partner, not just a competitor
  • SwiftCause controls the full stack (collection + Gift Aid + GASDS). Swiftaid only does Gift Aid.
  • SwiftCause's 3% < Swiftaid's 5%
  • Could integrate Swiftaid as a card-token matching layer while keeping our own declaration capture

GoodBox — The Legacy Player

WHAT THEY DO

  • Hardware-first: GBx Mini (handheld), GBx Core (countertop with HD touchscreen), GBx Podium (free-standing for museums)
  • GoodPlate: Traditional collection plate with contactless reader embedded — designed for churches
  • Gift Aid: Via Swiftaid integration — 5% of Gift Aid claimed per donation
  • Email verification: None

PRICING & STATUS

  • Cheapest device: ~£135 purchase
  • Rental from £40/week
  • Takes a % of all money raised
  • Gift Aid: 5% via Swiftaid
Went into administration — exited via court-backed restructuring (Part 26A plan) in early 2025. Debt of £10M+ slashed by 90%. New board appointed. Operational but weakened — opportunity for SwiftCause to capture their displaced customers.

DonationPay — Closest to SwiftCause Model

WHAT THEY DO

  • QR-based, no hardware: Charity prints QR codes, donor scans, pays via Apple/Google Pay in browser
  • Gift Aid: "Single tap" declaration — name, home address, postcode captured on the web form
  • Setup: Under 15 minutes to go live
  • Payments: Stripe Connect, 7-day rolling payouts
  • Email verification: None mentioned
  • No returning donor recognition (no card-token matching)

PRICING

  • No monthly fees
  • Transaction fees via Stripe (exact % not public)
  • Gift Aid: appears included (no separate commission stated)

SWIFTCAUSE ADVANTAGE

  • SwiftCause has card-tap AND QR (DonationPay is QR-only)
  • Magic link recovery + 30-day token
  • Returning donor recognition
  • GASDS tracking + community building cap
  • Two-pile logic for religious sector

Hibabox

  • Niche: Mosques and Islamic charities
  • Identity: Card token recognition — returning donors auto-identified without re-entering details
  • Email verification: None
  • Hardware: Dedicated device required
  • Pricing: Not public

SwiftCause advantage: Software-only, any device, two-pile logic (sadaqah vs madrasah fees), GASDS community building tracking.

CollecTin

  • Model: Hardware donation boxes (from £320)
  • Identity: Premium mode requests donor info post-donation; enduring declaration recognises same card
  • Email verification: None
  • Fees: 1.49% on UK transactions. Zero monthly fees.
  • Gift Aid: HMRC-format download. Give A Little integration.
  • Stats: Avg donation £10+, avg unit £3,184/year

SwiftCause advantage: Zero hardware cost, magic link recovery, multi-device deployment.

GiveTap

  • Model: Mobile app + card readers + QR/NFC + Tap to Pay on smartphone
  • Gift Aid: Captured in-app, bulk HMRC submission
  • Email verification: None
  • Pricing: Not public — "commitment-free"
  • Strength: Tap to Pay turns a phone into a terminal (similar to SwiftCause)

Watch this one: GiveTap's Tap to Pay on smartphone is the closest to SwiftCause's "any device" positioning.

PayaCharity

  • Model: Donation boxes + QR codes + SMS links
  • Identity: Donors register card with "MyGivingHub" for Gift Aid
  • Email verification: None
  • Fees: From 83p/day hire. 2.95% + VAT per transaction.
  • Gift Aid: Free — no additional charge on amount recovered

SwiftCause advantage: No hardware cost, lower transaction fees, GASDS tracking, two-pile logic.

Head-to-Head Feature Comparison

Feature Dona Swiftaid GoodBox DonationPay Hibabox CollecTin GiveTap SwiftCause
Hardware requiredYesN/AYesNoYesYesOptionalNo
Card tap collectionYesN/AYesNoYesYesYesYes
QR code collectionNoN/ANoYesNoNoYesYes
Gift Aid on-deviceYesN/AVia SwiftaidWeb formYesYesIn-appYes + magic link
Post-tap Gift Aid recoveryNoN/ANoNoNoNoNoYes (30-day)
Returning donor recognitionCard tokenCard tokenVia SwiftaidNoCard tokenCard tokenUnknownEmail (needs OTP)
Email OTP verificationNoNoNoNoNoNoNoPlanned
GASDS pool trackingNoNoNoNoNoNoNoYes (planned)
Community building capNoNoNoNoNoNoNoYes (planned)
Two-pile (donation/activity)NoNoNoNoNoNoNoYes
HMRC CSV exportYesAuto-submitVia SwiftaidYesUnknownYesYesYes
Gift Aid commission5%5% (free <£6k)5%Incl.UnknownVia partnerUnknown3%
Multi-collector deploymentPer deviceN/APer deviceQR onlyPer devicePer devicePer phoneUnlimited devices

Strategic Takeaways for SwiftCause

1. Card token matching is the industry standard for returning donors.
Every competitor that recognises returning donors does it via the physical card, not email. SwiftCause's magic link flow breaks this pattern because the payment device and the donor's phone are separate. Consider adding Stripe card fingerprint matching as a complementary identity layer — if the same card has completed Gift Aid before, auto-apply it without needing the magic link at all.
2. Nobody else does post-tap Gift Aid recovery.
The 30-day magic link token is genuinely unique. Dona, GoodBox, Hibabox — if the donor skips Gift Aid at the device, that's it. SwiftCause is the only platform that gives the donor a second chance on their own phone, on their own time. This is a real differentiator worth protecting and perfecting.
3. Nobody tracks GASDS properly.
No competitor offers multi-location GASDS pool tracking by postcode, per-campaign 10x cap alerting, or community building doubled cap management. For charities with multiple venues (mosques with prayer halls + community centres, church networks, multi-site food banks), SwiftCause tracks each location's GASDS pool separately against its own cap. The treasurer pitch ("we show you exactly how much you can claim from HMRC, per venue, per tax year") has no answer from any competitor.
4. GiveTap is the one to watch.
Their "Tap to Pay on smartphone" positioning mirrors SwiftCause's "any device" story. They don't yet have QR codes, magic links, GASDS tracking, or two-pile logic — but the core "turn your phone into a donation terminal" message is the same. Monitor them closely.
5. The revised flow (Gift Aid form first, email optional) aligns with market norms.
Every competitor collects Gift Aid details (name, address, postcode) without gating behind email. Our recommended approach — present the Gift Aid form immediately on the magic link, make email an optional second step for account creation — matches market behaviour while adding our unique security layer (OTP) only when stored data is at risk.
6. GoodBox's weakness is our opportunity.
GoodBox went through administration in 2023-25, emerged with 90% debt reduction and a new board. Their installed base of charities may be looking for alternatives. SwiftCause's zero-hardware, lower-commission pitch is perfectly positioned for GoodBox refugees.

Sales Positioning — Does the GASDS Pitch Actually Work?

An honest pressure-test of SwiftCause's "we show you exactly how much you can claim" differentiator — and the conditions that must be true for it to land.

The Pitch vs The Reality Chain

THE PITCH TO TREASURERS

"We show you exactly how much you can claim from HMRC — per venue, per tax year. Your GASDS pool at each location, tracked by postcode against its own cap. Your 10x allowance calculated per campaign. Your community building bonus tracked separately. One-click HMRC export. No other platform does this."

This is genuinely differentiated. No competitor — Dona, GoodBox, Hibabox, DonationPay — offers multi-location GASDS pool tracking by postcode, per-campaign 10x cap alerting, or community building doubled cap management. Charities with multiple venues get real visibility for the first time.

THE DEPENDENCY CHAIN

The GASDS dashboard is only impressive when there's a healthy Gift Aid base underneath it. The pitch has a hidden dependency chain — each link must hold or the whole thing collapses:

1. Donor taps & pays → This works. Stripe handles it.
2. Donor scans QR & completes Gift Aid form → Conversion rate is everything here
3. Enough Gift Aid captured to build 10x base → If capture rate is low, GASDS stays locked
4. GASDS dashboard shows meaningful claimable amount → Only works if step 3 delivered
5. Treasurer sees the value, stays on platform, tells others → The commercial outcome
The weak link is Step 2. If the magic link Gift Aid form has too much friction — too many fields, email gate before the form, OTP putting donors off — capture rates stay low, the 10x base stays small, and the GASDS pool tracker just shows the treasurer how much they can't claim. That's the opposite of the sales pitch.

Running the Numbers — When Does the GASDS Pitch Become Real?

Let's take a typical mosque or church using SwiftCause:

Note: The Gift Aid capture rates (15%, 40%, 60%) are illustrative scenarios, not measured data. Dona reports >40% on-device. Actual rates for the magic link flow will be validated during the pilot — see Pilot Metrics section below.

ScenarioMonthly DonationsGift Aid Capture RateStd Gift Aid Base (Annual)GASDS Space Unlocked (10x)Actual GASDS Pool (anonymous taps ≤£30)Claimable?
Low friction fail £3,000 15% £5,400 £54,000 £18,000 Yes but barely — 15% capture means few recurring donors, weak pitch
Moderate capture £3,000 40% £14,400 £144,000 £18,000 Yes, fully — £4,500 reclaim. Dashboard looks great.
High capture (target) £3,000 60% £21,600 £216,000 £18,000 Yes, fully + massive headroom. 10x base far exceeds pool.
The surprise: Even at a low 15% Gift Aid capture rate, the 10x maths often works out because the GASDS pool (anonymous taps ≤£30) tends to be smaller than 10x the Gift Aid base. The real risk isn't the 10x cap — it's a charity with very few standard Gift Aid declarations. A mosque where only 5 people complete Gift Aid at £10/month has a Gift Aid base of £600/year and a GASDS cap of just £6,000. If their Ramadan collection brings in £10,000 in small taps, £4,000 is unclaimed. The dashboard would show that gap clearly — and that's actually useful, because it tells the treasurer "get 5 more people to do Gift Aid and you unlock the remaining £4,000."

What's Actually Defensible (vs. What's Easily Copied)

FeatureDefensibilityWhy
GASDS pool dashboard (multi-location) MEDIUM Not a simple filter+sum. Each charity location is tracked by postcode and mapped to a campaign. The dashboard must show per-location GASDS pools, aggregate across locations, and let treasurers see which venues are generating eligible donations vs. which are under-performing. Requires a location/campaign model that no competitor has.
10x cap alerting (per-location) MEDIUM The 10x rule must be calculated per location (postcode/campaign), not just globally. A charity with 5 venues needs 5 separate Gift Aid vs. GASDS pool comparisons, each checked against its own cap. Requires the same location infrastructure as the dashboard — compounds in complexity.
Community building doubled cap MEDIUM-HIGH Requires location tagging by postcode + per-location GASDS pool tracking + knowing which locations qualify as community buildings (£16k cap) vs. standard (£8k cap). The charity must register each building with HMRC — SwiftCause tracks this status per campaign. Competitors would need to build the entire location model from scratch.
30-day magic link Gift Aid recovery HIGH Unique in the market. Requires the token infrastructure, webhook integration, post-tap flow, and consent ledger. No competitor has any of this. Hard to retro-fit onto hardware-based systems.
Two-pile logic (donation vs activity) HIGH Campaign-level compliance lock, hard-coded Gift Aid off for activity mode, mandatory member reference. Requires deep domain knowledge of religious sector operations. None of the competitors have even attempted this.
Card fingerprint + magic link + GASDS tracking as a system VERY HIGH The combination of all three layers is the moat. Any one feature is copiable. All three together, with the religious sector domain expertise, is genuinely hard to replicate.

Does the Solution Break Our Narrative?

The sales story to treasurers is: "GASDS, Location Management & the Gift Aid Progression."

"Start taking contactless donations at your venues. We track each location by postcode, mapped to campaigns. As donors complete Gift Aid declarations, your 10x GASDS allowance grows per venue. Eventually you're claiming 25% back on everything — declared and anonymous."

That story only works if Gift Aid declarations actually get captured at volume. The 10x rule means every declaration is worth 10× its value in GASDS unlocking. So the flow design choice directly controls whether the narrative holds up or collapses.

Option Impact on Gift Aid Base Impact on Location Tracking Does It Break the Narrative?
A: Email + OTP gate Lowest declaration volume. High friction kills completion rates → smallest 10x base per location. Location tracking unaffected — postcode/campaign tagging happens at payment, not on the form. YES — breaks the narrative. GASDS dashboards show treasurers how much they can't claim. The pitch becomes "look at all this money you're missing" instead of "look at all this money you're earning." That's the opposite of what we're selling.
B: Form first, email separate Good declaration volume. Gift Aid data captured before email ask → healthy 10x base per venue. Location tracking unaffected. Narrative holds. But without email, returning donor recognition is weaker → each visit is a fresh form. Repeat donors at the same venue (the exact pattern that builds location-level Gift Aid base fastest) face unnecessary friction on every return.
C: Accept all, verify later Highest declaration volume. Lowest friction → biggest 10x base per location. Returning verified donors get prefill → base compounds over time. Location tracking unaffected. Postcode captured on form also validates the Gift Aid declaration — dual purpose. Strengthens the narrative. More declarations per venue → bigger 10x allowance per venue → more GASDS claimable per venue → dashboard shows green, not red → treasurer pitch lands. The passive email verification builds the returning-donor loop that accelerates the base over time.
The one thing to protect: data quality.
If Option C means accepting bad addresses that HMRC later rejects, we've inflated the Gift Aid base with claims that get clawed back. That's why postcode validation at point of capture matters — it's the integrity check that keeps the narrative honest without adding friction. The postcode does double duty: it validates the Gift Aid declaration for HMRC and it maps the donation to the correct location/campaign for GASDS tracking.
Bottom line for the team: Whichever option we pick must not undermine the sales pitch. If the treasurer dashboard is mostly red warnings about insufficient 10x base, we've built a tool that proves our product doesn't work. Option C is the only option where the narrative, the technical flow, and the sales pitch all point in the same direction.

First: The Queue Is Not the Problem

An important clarification that changes how we think about friction on the magic link page:

The magic link opens on the donor's own phone, after they've already paid and walked away. There is no queue behind them. The collection point device has already moved on to the next donor. The magic link page could take 5 minutes and it wouldn't affect a single other transaction.

The friction concern is purely about donor abandonment — the donor thinking "I can't be bothered" and closing the tab. Every extra step (email gate, OTP code, waiting for an email) is a chance to lose them. But it has zero impact on the throughput at the collection point.

This reframes the entire email/OTP debate. We don't need to gate anything before the Gift Aid form. We can accept everything first and verify afterwards.

The Critical Design Decision — Three Options

Today's meeting debated where email sits in the magic link flow. This directly determines Gift Aid capture rates and whether the GASDS pitch works.

Option A: Email + OTP First (Current Direction from Meeting)

Open magic link
Enter email
Wait for OTP → enter code
Gift Aid form (name, address, postcode)
Submit

Risk: Two friction points before the donor even sees the Gift Aid form. Donor is standing in a car park after church — waiting for an OTP email, checking spam, typing a code. Many will abandon.

Estimated completion rate: ~30-40%

When this makes sense: If we absolutely must protect stored data before showing anything. But we don't — we can show a blank form.

Option B: Gift Aid First, Email Separate Step After

Open magic link → "Your £20 could be £25"
Gift Aid form (name, address, postcode, consent) — no email required
Submit → Gift Aid captured. HMRC-ready.
Optional next screen: "Skip the form next time? Add your email"
Optional: OTP → account created

Advantage: Zero friction before Gift Aid form. Email positioned as a benefit, not a gate.

Downside: Email is a separate step that many donors will skip. Lower account creation rate. OTP is still a friction point for those who do engage.

Estimated Gift Aid completion rate: ~50-65%

Estimated email capture rate: ~20-30% (separate optional step)

★ Option C: Accept Everything, Verify Later (New Recommendation)

Collect all details including email on one form. No OTP at point of capture. Verify passively afterwards via a "thank you" email.

Open magic link → "Your £20 could be £25"
Single form: name, address, postcode, email, taxpayer tick, consent tick
Submit → Gift Aid captured. HMRC-ready. Email recorded.
System sends "Thank you" email with verification link inside
Donor clicks link (in their own time) → email verified → account created
Why this is better:
Gift Aid captureSame as Option B — zero friction before the form. But email is collected on the same form (not a separate step), so we get higher email capture too.
Email captureEmail is just another field on the form, not a separate screen. Donors are already filling in name and address — adding email feels natural, not like an extra ask.
No OTP at point of captureZero waiting. Zero context switch. Zero checking spam. The donor fills in the form and hits submit. Done in 30 seconds.
Verification happens passivelyThe "thank you" email arrives in the donor's inbox. They click the link when they're home, sitting down, on wifi. No time pressure. No standing in a car park.
Data exposure solvedStored data (prefill) is ONLY shown to donors whose email was previously verified via the confirmation link. Unverified emails always see a blank form.
Market-alignedThis is exactly how Dona works — collect everything on one form, no verification at point of capture. The industry norm.
Returning donor flow under Option C:
ScenarioWhat HappensData Shown
New donor (no matching email) Blank form. Fill in everything. Submit. Nothing prefilled. Zero risk.
Returning donor, email NOT verified Blank form. Fill in everything again. Submit. Nothing prefilled — treated as new. System flags potential duplicate for admin review.
Returning donor, email previously verified Email recognised → "We have your details. Check your email for a code to continue."
OTP sent. Verified → prefill shown.
Prefill only AFTER OTP. Data protected.

OTP only ever fires in the third scenario — a returning donor with a previously verified email. This is the minority of cases. Most donors most of the time see zero friction.

Estimated Gift Aid completion rate: ~55-65%

Estimated email capture rate: ~50-60% (same form, not separate step)

Estimated email verification rate: ~30-40% of those who gave email (passive, in own time)

The Maths — All Three Options Compared

Important: These are estimates, not measured data.
The completion rates below are informed assumptions based on general web form conversion patterns and the one real data point we have (Dona reports 40%+ Gift Aid rate on their on-device capture). They are NOT sourced from SwiftCause live data (no live donors yet), published competitor benchmarks for magic link flows, or any specific study on charity donation form conversion. The relative differences between options (more friction = more drop-off) are directionally sound, but the absolute numbers will only be validated by the pilot. See "Pilot Metrics to Validate" below.

A charity processing 200 donations/month where 40% scan the QR (80 magic link opens):

MetricOption A
Email + OTP first
Option B
Form first, email separate
Option C
Accept all, verify later
Gift Aid declarations / month 80 × ~35% = 28 80 × ~57% = 46 80 × ~60% = 48
Emails captured / month 28 (all have email — it was the gate) 46 × ~25% = 12 (separate step) 48 × ~55% = 26 (same form)
Verified accounts / month 28 (OTP was already done) 12 × ~80% = 10 (OTP after) 26 × ~35% = 9 (passive link click)
Gift Aid value / year (at £25 avg) ~£2,100 ~£3,450 ~£3,600
SwiftCause commission / year (3%) ~£63 ~£104 ~£108

All percentages are estimates. "~" denotes approximate figures. The one external benchmark: Dona reports >40% Gift Aid rate on their on-device (not magic link) capture.

Key insight (directionally sound even if exact numbers shift): Option C captures significantly more Gift Aid declarations than Option A while still gathering emails because they're on the same form. The Gift Aid declarations are the revenue engine — they feed the 10x GASDS base and the HMRC reclaim. Verified accounts are a nice-to-have for returning donor UX, but they don't affect HMRC claims.

The structural argument holds regardless of exact percentages: fewer friction steps before the Gift Aid form = more completed declarations. Email on the same form vs a separate screen = higher email capture. These are well-established UX patterns, not SwiftCause-specific claims.

Pilot Metrics to Validate

The estimates above must be validated with real data from the first pilot charities. Instrument these five metrics from Day 1:

#MetricWhat It Tells UsTarget (from KPIs)How to Measure
M1 QR scan rate What % of donors who see the thank-you screen actually scan the QR No target set yet — baseline needed Magic link opens ÷ total donations at that collection point
M2 Gift Aid form start rate What % of magic link opens result in the donor starting to fill in the form ≥80% (low bar — if they opened the link they're interested) First field interaction event ÷ magic link page loads
M3 Gift Aid form completion rate What % of donors who start the form actually submit it ≥50% (existing pilot KPI: Gift Aid completion 50%) Successful form submissions ÷ first field interactions
M4 Form drop-off rate Where in the form do donors abandon? Which field is the killer? ≤20% (existing pilot KPI: form drop-off ≤20%) Track last field interacted with before page close, per field
M5 Email capture rate What % of completed Gift Aid forms include an email address No target set — baseline needed Submissions with non-empty email ÷ total submissions
M6 Email verification rate What % of captured emails are verified via the thank-you email link No target set — baseline needed Verification link clicks ÷ thank-you emails sent
M7 Over-£30 Gift Aid recovery What % of donations >£30 end up with a Gift Aid declaration (via any path) Higher is better — each missed £50 donation = £12.50 lost Gift Aid declarations on >£30 donations ÷ total >£30 donations
How this feeds back into design:

If M3 is below 50%: The form itself is the problem — too many fields, unclear wording, or the Gift Aid value proposition isn't landing. Simplify the form, test different boost messaging.

If M4 shows address is the drop-off field: Prioritise PAF postcode lookup so donors type a postcode and select from a dropdown instead of typing a full address manually.

If M5 is above 60%: Email on the same form works — donors are happy to provide it alongside their other details. Option C is validated.

If M5 is below 30%: Donors are deliberately skipping email. Consider whether email should be required or whether card fingerprint matching (Phase 2) is the better path to returning donor recognition.

If M6 is below 20%: Passive verification isn't working. Consider a more prominent CTA in the thank-you email, or test sending a reminder 24 hours later. If it stays low, OTP at a later touchpoint (e.g., when the donor visits the donor portal) may be the better verification trigger.

If M7 is below 30% for >£30 donations: The QR nudge on the thank-you screen isn't strong enough for larger amounts. Test more aggressive messaging ("You donated £50 — the charity is missing out on £12.50") and a larger QR code.

Discussion: Should We Add Card Fingerprint Matching?

Every competitor that recognises returning donors does it via the physical card token, not email. SwiftCause's magic link breaks this pattern because the payment device and the donor's phone are separate. But Stripe does return a card fingerprint on every payment.

The progression model that the market has proven works:
VisitWhat HappensIdentity MethodGift Aid
Tap 1 Anonymous donation. Stripe records card fingerprint. None — donor is anonymous QR shown. If scanned: Gift Aid form (Option B). If not: GASDS pool.
Tap 1 + Magic Link Donor completes Gift Aid form on phone. Card fingerprint from Stripe is linked to declaration. Form data + card fingerprint linked Full Gift Aid captured. Declaration stored with futureConsent: true.
Tap 2 (same card) Same card fingerprint recognised. Existing declaration with future consent found. Card fingerprint match Gift Aid auto-applied. No QR needed. No form. No email.
Tap N (different card) New card fingerprint, no match. Falls back to QR/magic link flow. Magic link → form (or email + OTP if returning verified donor) Gift Aid via form. New card fingerprint linked to existing declaration.

WHY ADD CARD MATCHING

  • Returning donors at the same collection point get Gift Aid in zero taps — better than any competitor
  • Eliminates the email-verification debate for the most common returning donor case
  • Proven pattern — Dona, Hibabox, Swiftaid, CollecTin all use it successfully
  • Stripe card fingerprint is already available in every payment — no new integration needed
  • Massively boosts Gift Aid capture rates for regulars (which grows the 10x GASDS base)

RISKS & CONSIDERATIONS

  • Card fingerprint changes if donor gets a new card (annual re-registration needed)
  • Shared cards (family members using same card) could misattribute Gift Aid
  • Adds complexity to the donation webhook logic
  • HMRC compliance question: is card fingerprint sufficient proof of identity for audit? (Dona and Swiftaid say yes, but we should confirm)
  • Scope creep risk — could delay go-live if added to critical path
Recommendation: Don't add card matching to go-live scope. Ship with the Gift Aid-first magic link flow (Option B). Add card fingerprint matching as a Phase 2 fast-follow — it's high value but not on the critical path, and the magic link flow needs to work properly first. Once card matching is live, returning donors get the best experience in the market: same-card = auto Gift Aid, new-card = magic link fallback, verified email = account access for history and receipts.

The Defensible Pitch — The Full Chain

The GASDS dashboard alone is copiable. The full chain is not. Here's how to pitch it:

"Three things no other platform does together:"
  1. We recover Gift Aid that other platforms lose.
    When a donor taps and walks away, every other platform loses that Gift Aid forever. SwiftCause gives the donor 30 days to come back via a magic link on their phone, fill in their details, and add Gift Aid to that donation. No one else does this. That alone is worth thousands per year.
  2. Every Gift Aid declaration unlocks 10x its value in GASDS.
    Your regular donors' Gift Aid declarations don't just reclaim 25% on their own donations — they unlock up to 10 times that amount in claims on your anonymous contactless collections. 20 parents on £10/month Gift Aided subscriptions = £24,000 of GASDS space per year. We track this for you in real time and tell you exactly where you stand.
  3. Your building doubles the cap, and we're the only ones who track it.
    Because your [church/mosque/village hall] is a community building, your GASDS cap is £16,000 not £8,000. That's up to £4,000 back from HMRC instead of £2,000. We tag your locations, track the separate pools, and generate the HMRC export with everything separated correctly. No other platform even knows this rule exists.

The pitch works because each point depends on the one before it. The magic link feeds the Gift Aid base, the Gift Aid base feeds the GASDS multiplier, and the community building tracking maximises the cap. A competitor would need to build all three layers to match the claim — and none of them are even working on the first one.

Decisions Needed from This Discussion

#DecisionOptionsRecommendationOwner
1 Magic link flow order Email+OTP first (A) / Form first, email separate (B) / Accept all, verify later (C) Option C: Single form with email, passive verification via thank-you email. Highest Gift Aid capture + good email capture. Qamar
2 When does OTP trigger? Always / Only when verified email matches / Never Only on verified match: New donors & unverified donors see blank form (zero friction). OTP only fires when email matches a previously-verified account. Qamar
3 Card fingerprint matching Go-live scope / Phase 2 fast-follow / Not planned Phase 2 fast-follow: High value, not on critical path Qamar + Dev
4 Apple/Google Pay data spike This week / Next sprint / Defer This week: 1-2 day spike. Result changes the entire flow design. Dev team
5 GASDS dashboard — when to build Pre-launch / Post-launch Phase 2 / Post-launch Phase 3 Post-launch Phase 2: Needs Gift Aid data flowing first to be meaningful. Ship after first charities are live and generating data. Qamar
6 Community building location tagging Pre-launch / Post-launch Post-launch Phase 2: Ship with GASDS dashboard as a bundle. Tag-and-track as a feature. Qamar + Dev

As-Is → To-Be: Gift Aid Donor Journey

AS-IS — Current State (13 April 2026)

What the system does today, with all the gaps and risks surfaced in this week's standup.

Flow 1: Donor Taps & Walks Away (No QR Scan)

Donor taps card /
Apple Pay / Google Pay
Stripe processes
payment
Thank-you screen
shows QR code
Donor walks away
QR never scanned
Result: Donation recorded. Zero donor identity. If ≤£30 → sits in GASDS pool (only claimable if charity has standard Gift Aid base). If >£30 → Gift Aid lost entirely. No follow-up path exists because no email was captured.

Flow 2: Donor Taps & Scans QR (Magic Link)

Donor taps to pay
QR on thank-you
screen
Donor scans →
magic link opens
Email field shown
No verification
If email matches
existing profile →
data shown & editable
Gift Aid form
No opt-in checkbox
Submit
Risks:
  • Data exposure: Anyone can type any email and see/edit that person's stored name and home address
  • No consent capture: No explicit opt-in checkbox at email entry; data retained without clear legal basis
  • No email verification: Email is unverified — donor profile built on unproven identity
  • No duplicate handling: Same email from different people silently overwrites data
  • Returning donor autofill unsafe: Prefills data for whoever enters the email, not proven owner

Flow 3: On-Screen Gift Aid (Slow Flow)

Donor selects amount
Gift Aid Boost
Panel
Name + Address
Manual entry only
No postcode lookup
Payment
Declaration linked
Works but limited: Identity captured upfront — no gap. But manual address entry only (no PAF postcode lookup), no homeAddressConfirmed checkbox, no declarationType selector, tax year bug (GA-01) assigns wrong year for Jan–5 Apr donations.

Admin & Compliance — Current Gaps

AreaCurrent StateRisk
Consent LedgerArchitecture approved, magic link shipped (PR #622), but core tasks #609–#612 unassignedNo audit provenance for HMRC
HMRC CSV ExportShipped & hardened (PR #626, formula injection fix)Low — functional
Admin Anomaly QueueDoes not existNo way to flag/resolve duplicate emails or wrong attributions
Super-Admin CorrectionsDoes not existNo audit-trailed path to fix misattributed records
Tax Year CalculationgetFullYear() used instead of UK tax year boundaryWrong tax year on Jan–5 Apr donations
Apple/Google Pay DataNot investigatedPotential shortcut to identity sitting uninvestigated
GASDS Pool TrackingDonations flagged but no dashboard or 10x cap alertingCharities can't see what they can claim
Location TaggingNot builtCommunity building doubled cap (£16k) can't be tracked

TO-BE — Target State (Go-Live + Fast-Follows)

The secure, compliant, friction-optimised flows we're building towards.

Flow 1: Donor Taps & Walks Away — Smarter Recovery

Donor taps card /
Apple Pay / Google Pay
Stripe webhook
captures wallet
billing_details
If wallet provided
email → send
follow-up link
Donor opens email
on own time
(30-day window)
Pre-filled form
from wallet data
Confirm + consent
Improvement: Even without QR scan, if Apple/Google Pay provided an email, we can proactively send the Gift Aid recovery link. Wallet billing address pre-fills the form. Donor just confirms and ticks consent. If no wallet data → falls to GASDS pool (same as today, but now the pool is properly tracked).

Flow 2: Donor Taps & Scans QR — Verified & Secure

Donor taps to pay
QR on thank-you
screen
>£30: shows boost
amount prominently
Donor scans →
magic link opens
Email entry +
OTP verification
6-digit code via email
Verified?
Returning → prefill
New → blank form
+ wallet data if available
Gift Aid form
+ opt-in consent
+ home address tick
+ postcode validation
Submit →
Account created
Declaration archived
What's different:
  • OTP gate: No data shown until email ownership is proven — eliminates the data exposure risk
  • Wallet data merge: If Apple/Google Pay provided billing details, pre-fill form fields for confirmation (less typing)
  • Explicit consent: Opt-in checkbox with clear retention policy (6 years after last payment) + home address confirmation
  • Account creation: Verified email + completed Gift Aid = lightweight account. Future donations auto-apply declaration.
  • Smarter >£30 nudge: Thank-you screen shows "Your £50 donation could be worth £62.50 — scan to add Gift Aid" with prominent QR

Flow 3: On-Screen Gift Aid — Polished

Donor selects amount
Gift Aid Boost
Panel
Name + Address
PAF postcode lookup
Home address confirmed
Declaration type
selector
Single / Year / Future
Payment
Correct UK tax year
Declaration linked
+ consent event
+ timestamped PDF
What's different: PAF postcode lookup (fast-follow), explicit home address checkbox, declaration type selector, tax year bug fixed, consent event created in ledger with IP/device/timestamp, immutable PDF archived.

Flow 4: Returning Donor — Safe & Frictionless

Donor opens
magic link
Enters email
+ OTP verified
System finds
existing account
with futureConsent
"Welcome back!"
Details shown
(read-only)
Confirm address
still correct?
Yes → auto-apply
No → update form
Gift Aid applied
~10 seconds total
What's different: OTP proves identity before any data is shown. Prefilled data is read-only until confirmed. Address change triggers a new declaration (not an edit to the old one). The whole returning donor experience is under 30 seconds — type email, enter OTP from notification, confirm, done.

Admin & Compliance — Target State

AreaAs-IsTo-BePriority
Email Verification None — anyone can enter any email OTP (6-digit) before data shown/editable P0 — Go-Live
Consent Capture No opt-in checkbox Explicit opt-in + retention policy + consent event in ledger P0 — Go-Live
Consent Ledger Architecture approved, tasks unassigned ConsentEvents subcollection with Cloud Function trigger, IP capture, provenance ref P0 — Go-Live
Tax Year getFullYear() — wrong for Jan–5 Apr UK tax year boundary (6 Apr) in all date logic P0 — Go-Live
Apple/Google Pay Data Not investigated Spike complete; billing_details captured and used for pre-fill + proactive email follow-up P1 — Spike this week
Admin Anomaly Queue Does not exist Dashboard queue: flagged duplicates, side-by-side comparison, resolve/escalate workflow P1 — Pre-launch
Super-Admin Corrections Does not exist Re-link, merge, void with full audit trail (timestamp, admin ID, reason, before/after) P1 — Pre-launch
Postcode Lookup (PAF) Manual entry only Royal Mail PAF: type postcode → select address from dropdown P2 — Fast-follow
GASDS Pool Dashboard Donations flagged, no visibility Per-location GASDS pool tracked by postcode/campaign, with per-venue 10x cap alerting, community building status (£8k/£16k), and one-click HMRC export P2 — Post-launch
Location Tagging Not built Community building flag per location; doubled cap auto-tracked; per-location flow config P2 — Post-launch
Declaration PDF Archive Not implemented Timestamped immutable PDF per declaration; amendments via super-admin only P1 — Pre-launch

Net Change Summary

ELIMINATING

  • Unverified email accessing stored donor data
  • Silent data overwrites from duplicate emails
  • Missing consent capture at point of data entry
  • Wrong tax year assignment for Q1 donations
  • Over-£30 donations lost with no recovery path
  • No admin visibility into data conflicts

INTRODUCING

  • OTP-gated donor identity — verify before you see
  • Wallet data pre-fill from Apple/Google Pay
  • Proactive email follow-up for wallet-paying donors who skip QR
  • Three-stage token lifecycle (anonymous → claimed → declared)
  • Immutable declaration PDFs with audit provenance
  • Admin anomaly queue + super-admin correction workflow
  • Automatic account creation from verified Gift Aid completion
  • Smarter >£30 nudge on thank-you screen