Product Update #2: Scaling the ChargeWise Loyalty Platform
Where we left off: In January, we declared the MVP done - multi-tenant loyalty, points, tiers, rewards, CSMS Users Bulk import, bulk invites, and admin analytics.
Over the last six months, however, we didn't just polish that MVP. We turned ChargeWise into a complete enterprise platform: gift cards became real, engagement got an entire nervous system (streaks, notifications, lifecycle emails), we put charging stations on a live map, and we expanded to Europe.
In short, we scaled the ChargeWise foundation, and we're now introducing the first dedicated EV Charging Loyalty Platform & Integrated Rewards Marketplace to Charge Point Operators. Here's the story. β‘
I. Milestone 1: We Went Multi-Region (Hello, Europe πͺπΊ)
1. π― Achievement: ChargeWise can now keep an operator's driver data in the EU - a hard requirement for European enterprise deals. We re-architected the platform around "centralized auth + regional business data" - the same pattern Slack, Notion, and Microsoft use:
- One login, everywhere. All drivers and operators authenticate against a single central identity service (Singapore). Your account, your password, your org list - one source of truth.
- Business data lives where it must. Charging sessions, points ledgers, programs, tiers, rewards, and analytics for an EU operator physically live in an EU (Frankfurt) database. Singapore operators stay in Singapore.
- Region is locked per operator and enforced on every request - an EU backend hard-refuses any data that isn't its own.
2. π Why This Matters: GDPR data-residency was the #1 blocker for selling to European charging networks. Now it's a checkbox, not a rebuild. Every feature we shipped afterward was designed for multi-region from day one.
II. Milestone #2: Event-Based Programs & a Smart Notification System
1. π― Achievement: Programs that reward moments, not just kilowatt-hours - and an app that tells drivers about it. Our original rules engine rewarded usage (points per kWh). We added a whole new class of program that rewards lifecycle events:
- πSignup bonus - points the moment a driver joins your network.
- β‘First-charge bonus - celebrate the first session.
- β¬οΈTier-promotion bonus - reward drivers for leveling up.
These stack intelligently with usage-based points, and a bonus that pushes a driver over a tier threshold cascades the promotion reward instantly.
We paired this with an in-app notification system so drivers actually notice:
- π°"Points earned" cards after every charge, bonus, or adjustment.
- π"Rewards available" cards + a nav badge when a driver has enough points to redeem.
- Smart de-duplication so drivers get one clean, current notification - not spam.
2. π Why This Matters: Loyalty only works if drivers feel it. This is the difference between points quietly accruing in a database and a driver getting a little dopamine hit every time they plug in.
III. Milestone #3: Gift Cards Got Real π³
1. π― Achievement: The WOGI gift-card integration went from "coming soon" to fully built and working end-to-end. In January, gift cards were a promise. This period, we built the entire engine and deployed it to run remotely with live webhooks:
- Brand catalogue sync - automatically pulls and refreshes a catalogue of gift-card brands (Amazon, Grab, Foodpanda, and hundreds more) per operator, every day.
- Real redemptions - a driver spends points, we place the order with WOGI, and the gift card comes back with a real voucher link.
- Bank-grade safety, for real this time:
- Points are deducted atomically with a non-negative-balance guard and idempotency keys (no double-spend, no double-order).
- Orders are asynchronousβ we resolve them in ~1 second via webhook, with a background poller as a safety net for missed webhooks.
- Automatic refunds on any failure, with guards that make it impossible to refund twice or refund points that were never deducted.
- A circuit breaker pauses redemptions if an operator's gift-card wallet runs dry, and auto-deactivates delisted products.
And the driver-side redemption experience got a full glow-up (through May):
- πConfetti that actually fires - we poll pending vouchers so the celebration lands even though the gift card arrives a second later.
- Cross-pagefailure toasts with a retry button that survive navigation.
- Failed redemptions are hidden from the rewards list (points already refunded) instead of confusing the driver.
2. π Why This Matters: Points are only as valuable as what you can redeem them for. Gift cards make ChargeWise points feel like real money.
IV. Milestone #4: Introducing the ChargeWise Engagement Machine π₯
We shipped an entire engagement layer in May 2026.
=> π₯ Streaks - the headline feature
π― Achievement: Drivers now build daily, weekly, and monthly charging streaks - and operators can reward them.
- We track three streaks per driver(daily/weekly/monthly) automatically on every charge, in the operator's timezone, always running. So streak data is "warm" the day an operator turns on a streak program.
- Operators create a brand-new loyalty program type - streak-based - with milestone ladders ("hit a 4-week streak, earn 500 points"), including recurring milestones that fire every 4th, 8th, and 12th week.
- Streak milestones can trigger tier promotions and tie into the gift-card rewards.
- Drivers see a live streak card with progress to their next milestone, plus a newtier-benefits modalshowing exactly what each tier unlocks.
=> βοΈ Lifecycle Emails β Weekly Summaries + Streak Reminders
π― Achievement: ChargeWise now proactively reaches out to drivers to bring them back.
- Weekly summary email - a personalized recap of points earned, active streaks, and redeemable rewards, with an activation nudge for drivers who've gone quiet. Fullper-driver opt-out preferences.
- Streak reminder emails - "Your weekly streak is about to break!" sent before the period ends, but only when the driver has an actual reward on the line. Weekly reminders go out twice a week; monthly once. Each email is mirrored by anin-app card that auto-dismisses the moment the driver charges.
All built on a proper email pipeline (candidate selection β queue β batched send) with unsubscribe tokens and reusable background workers.
=> π Login & Account Security Overhaul
π― Achievement: We fixed the #1 reason drivers bounced off the login screen.
- One-tap OTP login - "Email me a 6-digit code" is now the primary way to sign in. No password to forget. (Password login stays as a secondary option, with "Forgot password?" restored.)
- Remembered email + proper autofill, so returning drivers barely have to type.
- Secure email change - changing your email now requires re-authentication, sends a confirmation link to the new address, and fires an alert to the old address.
V. Milestone 5: We Put Charging on the Map πΊοΈ
1. π― Achievement: An entirely new product surface - a live map of charging stations with real-time availability and driver reviews. Built almost entirely in a single month.
2. π Why This Matters for drivers: the "Charge" tab in the ChargeWise User App:
- A full map of the operator's stations, with pins colored by live, EVSE-level availability (green = free, amber = in use, red = down).
- Tap a station forper-connector status, AC/DC + kW, distance, a navigate deep-link, star rating, and a "charge here again" shortcut to your most recent station.
- Favorites (account-level, synced across devices), search, and a Maps-style draggable station sheet.
- For drivers - station reviews β One rating + review per station, with a"Verified charge" badge that lights up automatically once you've actually charged there.
3. π Why This Matters for operators: the "Locations" tab in the ChargeWise admin app:
- The operator'sentire network on a map - including private/offline sites - with 4 LIVE KPIs (locations, issues, in-use now, average rating).
- An issue breakdown(offline/disabled/faulted) so operators can see what's broken at a glance.
- A review moderation system: operators can respond to reviews, superadmins can remove abusive comments (drivers see a tombstone), and edited reviews are marked "Edited."
4. How the map stays LIVE:
- Charging-location data is imported from the CSMS directly (locations β charge points β EVSEs), then kept fresh in real time by three new webhooks: hardware status changes, charge-point changes, and EVSE changes - with careful ordering guards so out-of-order events can't rewind reality.
- Only publicly usable stations show on the driver map; private/home chargers are automatically hidden on purpose for now.
VI. Milestone #6: Introducing the ChargeWise Developer Platform
1. π― Achievement: a Public Loyalty API that lets any operator embed ChargeWise into their custom-made native/web mobile application. This is our biggest strategic bet of the half. We've built a public, owner-authenticated REST API (/v1 ) that exposes the whole loyalty engine - provision members, report earn events, read balances/tiers/streaks, redeem rewards - plus:
- API keys(
cw_live_/cw_test_) with SHA-256 hashing and constant-time verification. - Outbound webhooks with HMAC-signed delivery, retries, and dead-lettering.
- A self-serve Developer Portal in the admin app (Scalar docs, key management, usage stats).
- ACI-guarded OpenAPI contract(our first GitHub Actions workflow) so the public API can never silently drift.
- A dedicatedtenant-isolation test suite proving one operator can never see another's data - even the same end-user ID under two operators resolves to two separate members.
2. π Why This Matters: Today, loyalty data can only enter ChargeWise through the designated CSMS system that the Operator uses. This API turns ChargeWise into Loyalty-as-a-Service for operators with their own apps and backends - a direct expansion of our addressable market.