DiscountOneCard · Docs

Documentation & help

Everything you need to understand and operate DiscountOneCard — for members, families, business partners, affiliate leaders, and admins.

What is DiscountOneCard?

DiscountOneCard is a digital local-discount membership that replaces the old-school paper fundraising card. A network of local businesses offer real discounts; members buy a yearly card; a portion of every sale flows to a school, booster club, church, or nonprofit of the buyer's choice. Members show an animated, screenshot-resistant verification screen at checkout.

Key facts
  • Memberships last 365 days from the day they're activated — no stale "2026 card" stock.
  • Offers can be unlimited (use every time), one-time (one use ever), or recurring (e.g. once a month).
  • The verification card is live-animated and includes the member's name, so screenshots don't work.
  • Family plans cover up to 4 people — priced at 3× the individual rate.
  • One card, every participating business — your card works across the whole DiscountOneCard network.

Roles & accounts

Your account's role determines what you can do.

RoleWhoCan do
MemberCardholdersBrowse the directory, redeem, show card, manage family, gift memberships, self-serve account.
Family leaderMembers on a family planEverything a member does, plus invite up to 3 others and manage seats.
Business ownerPartner businessesEdit their own listing, create/update/hide offers, see redemption counts and "cards activated from your QR" stats.
Affiliate leaderCause reps (e.g. football coach)See stats and revenue attributed to their affiliate code, manage their seller roster, record cash sales, view their leaderboard.
Org adminAdmin for one organizationManage users, businesses, offers, memberships, affiliate codes, sales, district rollup, audit log — for their org only.
iSellers aren't users

A "seller" is a label managed by the affiliate leader so a kid can be credited on the leaderboard without needing an account. They never log in. We store first name + last initial by default for COPPA-friendliness — see Sellers & kid privacy.

The $25 model

Card price is $25 for one year. The split is the same for every sale:

BucketDefaultNotes
Platform fee$5 per cardCovers hosting, email, payment processing, and support.
Org payable$20 per cardThe school/org receives this. Further split below.
Cause / team share(% of $20)Each affiliate code has a share % 0–100. e.g. softball at 50% → $10 to softball, $10 to school general.
Org general(remainder of $20)What's left of the $20 after the cause share.

Adjusting a code's share % updates the displayed attribution retroactively.

Where the money goes

For online sales (Stripe, when wired): DOC collects, holds, and pays out the org's portion on a schedule. For cash sales: the org collects directly from the buyer, keeps everything except the $5 platform fee per card, which they remit to DOC periodically. The Sales tab in admin shows a running "cash owed to DOC" total for unremitted cash sales — see Sales tab.

Signing up as a member

  1. Open /signup (or scan a QR flyer at any partner business).
  2. Enter name, email, password (10+ chars).
  3. Pick the organization you want to support (Palmetto High School, Sarasota Booster Club, etc.) from the dropdown.
  4. Pick a cause/team from the second dropdown (loads codes for that org). e.g. "Girls Softball Team".
  5. Optional: credit a student seller from the next dropdown — they get leaderboard credit.
  6. Verify your email and you're done.
iIf you scanned a flyer

The signup page recognizes ?biz=<id> from a flyer QR code and shows "📍 This card is being activated from {Business}'s flyer." That attribution is recorded so the business owner sees their flyer's impact.

A membership runs 365 days from activation (or 30 if you picked monthly billing). Cancel anytime — annual cancellations end immediately and aren't pro-rated.

Browsing the directory

The home page (Offers) groups every deal by the business offering it. Your card works at every participating business in the network — not just businesses tied to the org you signed up under.

You can also browse the directory before signing up at /directory — no login required. Offer details are visible; redemption requires an active card.

Each offer shows a badge:

Map & location

Switch between List and Map view at the top of the offers page. The map shows every business with a pin, using OpenStreetMap data (CARTO tiles). Tap Use my location to grant temporary GPS access — you'll see a blue dot for yourself, pins for nearby businesses, and the list re-sorts by distance. Location is only used in your browser; never sent to our server.

Redeeming an offer

  1. Open the offer you want to use.
  2. Tap Redeem now, then Confirm & show my card.
  3. Show the animated verification screen to the business. You have 10 minutes.
  4. The business sees your name, org, live clock, and a QR code. They verify and apply the discount.
!One-time and recurring offers

For one-time offers, tapping Confirm uses it permanently. For recurring offers (e.g. monthly), it locks until the next period. If you redeemed by mistake, ask an admin to reset it.

Your verification card

Tap My Card for a 2-minute live card useful when a business just wants to confirm membership. After redeeming an offer it runs for 10 minutes. The card includes:

Family plans

A family plan covers up to 4 people under one leader, priced at 3× the individual rate ("buy 3, get 1 free"). Everyone gets their own login and animated card. To start one, sign in and go to Family → Continue to upgrade; your individual membership converts to family. Invite by email; invitations expire in 7 days. Seats use a 90-day cooldown on swaps so seats can't be churned.

Gift memberships

On the Account page, members can send a gift to anyone with just an email. The flow:

  1. Member fills the gift form (recipient email + optional message).
  2. The org admin is notified that a gift is awaiting payment.
  3. Once payment is received, the admin clicks Activate and the recipient gets a claim email with a code.
  4. Recipient signs in (creating an account if needed), enters the code at /gift, and receives an active membership.

Managing your account

On the Account page: update name/phone, change password (logs out other devices), resend verification, see remaining days, gift a membership, and cancel (immediate). Passkeys can be registered for password-free sign-in on supported browsers.

Your business listing

When an org admin invites you (or links your account to a business), you'll see My Business after signing in. Fill in:

Changes go live immediately and are audit-logged.

Creating offers

  1. In My Business, click Add offer.
  2. Pick a type: Unlimited, One-time, or Recurring (with period + anchor — calendar boundary or signup date).
  3. Write clear terms: "Dine-in only", "One per visit", "Exclusions apply".
  4. Save. Members see it instantly.
  5. Use the Edit / Hide / Delete buttons next to any offer to change it later.

Printable QR flyers

On My Business, hit Open flyer ↗ to view a print-ready letter-size flyer with your business name and a 300×300 QR code. Tape it to your counter or window. Customers who scan it land on the signup page with your business pre-tagged as the origin — when they pick whichever org they want to support, your business gets credit on their cards activated from your QR stat.

Activations & redemptions

Two stats on your dashboard:

Your /affiliate dashboard

Sign in and go to My Cause. For each affiliate code you lead, you'll see:

Managing your seller roster

Sellers are how you give credit to specific kids on the leaderboard without requiring them to have a DiscountOneCard account. The flow:

  1. Add a seller: first name (required), last name display (initial only by default — privacy-safer; switch to full last name only when there's a name collision in your roster).
  2. Tick the per-seller affirmation: "I affirm this seller is 13 or older and the org has authority to list them by name." Required to save (this is your COPPA backstop — see kid privacy).
  3. Save. The seller now appears in the Crediting a student? dropdown on the public signup page (for online sales) and in your cash-sale form.
  4. Deactivate when a kid leaves the team. Deactivation is soft — historical sales credit stays.

Recording cash sales

When a kid hands you cash for a card:

  1. On My Cause, click New sale in the "Record a cash sale" panel.
  2. Enter the buyer's email and (optionally) name. If they don't have a DiscountOneCard account yet, we create a placeholder; they'll set their password when they verify their email.
  3. Pick the seller (kid) from the dropdown — that's who gets leaderboard credit.
  4. Confirm the amount (defaults to $25). Submit.

What happens next:

Seller leaderboard

The leaderboard at the top of your My Cause page ranks every active seller in your roster by sales count, then by dollars contributed to your cause. Toggle between 30-day, 1-year, and all-time periods. Visibility is restricted to the org admin and you (the leader of that code). General members of the org can't see it — kid privacy.

Inviting business owners

On Admin → Organization → Businesses, edit a business and use the Invite as owner button next to the owner-email field. Three branches:

Inviting affiliate leaders

Same flow on Admin → Affiliates: every code row has an Invite leader button. When you create a new code with a leader email that doesn't exist as a user yet, the system auto-creates the affiliate_leader account and emails them. The org admin sees the temp password in a confirmation alert as a fallback (also emailed to the new leader).

Affiliate codes & money split

Affiliate codes direct a portion of a member's fee to a specific cause. On Admin → Org → Affiliates, add a code with:

Members enter the code at signup and attribution flows automatically. Changing the share % is retroactive on displayed totals.

Sales tab (cash & remit)

On Admin → Org → Sales:

Managing members

On Admin → Organization → Users:

Managing businesses & offers

On the Businesses tab, add a business with name, owner email (or invite later), description, address (with Locate from address for lat/lon), categories. Click Edit on any business row to update fields, or click Offers to add/edit/hide/delete offers inline. Each row has a Flyer ↗ link to open the printable QR flyer. Featured placement controls (date + priority) live on the business edit panel.

District org rollup

If your org is a district, you'll see a Rollup tab that aggregates totals across all child orgs — gross revenue, platform fees, cause shares, org-general shares, and business counts. Click into any child org to drill in.

Audit log

Admin → Audit log shows every admin action — user edits, password resets, business changes, membership comps, redemption resets, deletions, affiliate-code changes, gift activations, card-sale creates, seller roster changes, and remits. Use it to investigate discrepancies and spot anomalies.

Cookies & analytics

We use a small first-party session cookie for signed-in users — that's strictly necessary and exempt from consent. We also use Google Analytics 4 with Consent Mode v2 to understand site usage. No analytics cookies are set until a visitor clicks Accept on the cookie banner. Reject permanently disables analytics on that browser. Clearing site data re-shows the banner. Full details are on the Privacy page.

Sellers & kid privacy

The seller-roster feature lets affiliate leaders credit kids on a leaderboard without creating user accounts for them. To minimize COPPA exposure:

Accessibility

We aim for WCAG 2.1 AA. Notable practices:

Security