PROOF is infrastructure.
Your storefront is the destination.
Athletes connect Strava once. Every verified activity credits their lifetime profile and your brand's program. When they cross a threshold, they're rewarded on your storefront, in your voice — not ours. Here's the full story, from install to first redemption.
Earn globally. Redeem per-brand.
An athlete's lifetime effort and identity travel with them across every brand program on PROOF. Their reward balance at your brand starts at zero the day they connect — and every subsequent mile at any sport you allow credits your program. Each brand funds their own rewards out of their own margin.
Universal. GPS-verified. Effort-normalized. One athlete, one lifetime PROOF-miles count across every sport and every brand they've ever connected to.
Your sport allowlist, your milestone ladder, your welcome bonus rules, your rewards, your email voice. PROOF provides the verified data; you decide what it unlocks.
One Strava connection powers every brand they care about. Their PROOF tier and three-signal profile travel. Their brand-specific rewards don't — each relationship earns fresh.
No PROOF-branded page. Ever.
Your athletes live inside your storefront. PROOF writes their tier, brand PM, rewards, and progress directly into Shopify customer metafields. A small Liquid section renders that data in your theme's voice — same typography, same colors, same design language as the rest of your site.
Brand's developer downloads a bundle from the PROOF portal: proof-loyalty-account.liquid, proof-loyalty.css, proof-loyalty.js. Drop into theme's sections/ folder. Add one reference to the customer account template. Publish.
Two to four hours for an experienced Shopify developer. We provide step-by-step install docs per theme. Not an App Block, not a JavaScript widget — native Liquid rendering metafield data.
CSS scoped to the loyalty section with variable overrides — your theme's colors, fonts, spacing all inherited. We ship sensible defaults; override anything you want.
Post month 9–12: one-click install via Shopify App Store. Hand-install until then.
From connection to redemption.
Four moments define the experience. Each one happens on your storefront, in your voice. PROOF is invisible — the athlete sees your brand, your tier names (if you've customized), your emails, your discount at checkout.
Signup — from your site
Daily — while they ride
Milestone — when they cross a threshold
Redemption — when they're ready to shop
Three ways to reward effort.
Milestones build long-term engagement. Challenges drive campaign-scale activity. Anniversary bonuses celebrate retention. Three primitives — all running through the same credit pipeline, all surfacing on the athlete's account page in your theme's voice.
Permanent thresholds. Lifetime value.
Set a ladder of brand PM thresholds — 500, 1,000, 2,500, 5,000, and beyond. Each crossing issues a reward the athlete keeps. The backbone of your program.
Reward types: store credit (Shopify discount), free shipping, early drop access, or custom Shopify tag for your own theme / Klaviyo logic.
Immutable: once issued, a reward stays — even if you later change the ladder. Config changes are forward-only by default, with a per-change "apply retroactively?" toggle.
Expiry per milestone: you set how long an earned reward stays active. Expired rewards don't auto-rollover.
Time-bound, window-scoped goals.
Launch a December Miles campaign, a "beat your March" challenge, or a first-30-days-after-join improvement goal. Conditions built on total PM, total miles (optionally filtered by sport), ride count, unique days, or improvement vs. prior period.
Window types: calendar month, fixed date range, or rolling N days from enrollment.
Eligibility: optional gates on minimum pace, tier, or lifetime PM. Athletes below the gate never see the challenge — no tempting unreachable rewards.
Rewards: same three types as milestones — credit, bonus PM, or perk tag. No new reward plumbing.
One month a year, unconditional.
During each athlete's connection-anniversary month with your brand, every brand PM they earn is multiplied by the value you set. No pace gate. No tier gate. A celebration of the year they've been with you.
Configurable: 1.5× / 2× / 2.5× / 3×, default 2×.
Per-brand, per-athlete: athletes connected to multiple brands get a separate anniversary month for each, naturally spread across the calendar.
Win-back moment: a lapsed athlete who returns during their anniversary month is precisely the outcome the bonus is designed to encourage — the multiplier makes their return feel rewarded.
All three primitives live in the same brand dashboard. All reuse the same credit pipeline. All surface on the athlete's account page in your theme's voice — no PROOF-branded interruption between the earn and the reward.
Five events. One canonical interface.
PROOF fires HMAC-signed webhooks to the ESP endpoint you configure in the portal. ESP-agnostic — Klaviyo, Mailchimp, Sendgrid, Customer.io, or a generic webhook into Zapier/Make. You build the flows in your ESP, author the copy in your voice. PROOF is the signal layer; delivery is yours.
Every event carries an HMAC signature verifiable with your secret. Your webhook delivery dashboard shows every event, success/failure, retry status, and lets you inspect payloads.
Every activity, 9 gates.
Every Strava activity PROOF ingests passes through 9 independent fraud checks before crediting an athlete. GPS-only at launch — session sports without GPS (strength, yoga) aren't verifiable and aren't accepted. The PROOF Effort Index (PEI) normalizes effort across sports so every brand program uses a single comparable unit.
Ownership · GPS presence · Not manual · Sport allowlist · Minimum distance · Maximum speed ceiling · Daily activity cap · Velocity anomaly · Idempotency. Silent drops — athlete sees nothing; brand isn't charged.
1 road cycling mile = 1 PM. Running, swimming, rowing, hiking, trail running, MTB, gravel — all convert via sport-specific multipliers. Your brand picks which sports credit your program.
Strava at launch. Garmin Connect around month 5–6 post-launch. Apple Health, Peloton, Whoop, Zwift on the roadmap. Athletes can layer multiple rails to the same identity.
Scoped by default.
Your portal session can only read and write data scoped to your brand. Database row-level security enforces it at the query layer — not a UI convention. Your athletes' data stays yours. Other brands' data stays theirs.
Every code is single-use and locked to the athlete's email at Shopify via prerequisite_customer_ids. If someone forwards a code, it won't apply — only the earning athlete can redeem it.
Every outgoing webhook carries an HMAC signature. Reject anything unsigned. Your ESP endpoint verifies with a secret you set at integration time.
Every admin action in the brand portal is logged with actor, timestamp, and reason. Config changes, manual refunds, suspensions — full history available for compliance.
Two to three weeks, concierge.
We're onboarding a small number of founding brands. Every wave-2 brand gets hands-on setup from the PROOF team — not self-serve onboarding. Here's the shape.
Discovery
Setup
Test mode
Launch day
Get early access program.
Tell us about your brand and we'll be in touch within two business days.
Get early access →