intermediate
rider-score
rewards
tiers

Reward Tiers

Tier structure, perks, wallet credit caps, and how rewards reach the rider through the existing refund pipeline.

Levy Fleets TeamMay 18, 20268 min read

Reward Tiers

Rider Score sorts every active rider into one of six tiers. Each tier has its own perks and its own monthly wallet credit cap. Tier assignment is automatic and recomputes after every scored ride.

Navigation

Edit tiers at Dashboard > Rider Score > Settings > Tiers.

Default tiers

TierScoreDefault perks
Platinum90+10% off all rides, 1 free unlock per week, priority vehicle reservation
Gold80-895% off all rides, 1 free unlock per month
Silver70-79Quarterly bonus wallet credit
Bronze50-69Standard pricing
At Risk<50Price uplift plus intervention ladder steps
Beginner<3 ridesLocked tier, no penalties, helmet selfie unlocks Silver perks

All thresholds are per-subaccount editable. You can rename tiers and reshape the curve. You cannot delete the Beginner tier - it is required for the cold-start rule.

What a tier controls

Each rider_score_tiers row holds:

FieldWhat it does
min_score, max_scoreThe score range for this tier
unlock_discount_pct% off the unlock fee, applied at ride start
ride_discount_pct% off the ride total, applied at ride end
free_unlock_count_per_monthHow many free unlocks the rider gets per calendar month
per_ride_credit_centsWallet credit issued automatically after qualifying rides
monthly_credit_cap_cents_per_riderHard cap on total credits issued to one rider in a calendar month
price_uplift_pctPositive uplift (At Risk tier) - we never charge less than the standard price for other tiers
badge_colorTier badge color shown in the rider app
perksFree-form JSONB for marketing copy and badges
interventionsReference to which ladder steps fire at this tier

How rewards reach the rider

This is the most important section of this article. Every wallet credit issued by Rider Score flows through the existing ride-refund pipeline. There are no direct wallet writes anywhere in the system.

The pipeline:

  1. The reward engine inserts a rider_score_rewards row with status='pending' and a reward type (e.g. per_ride_credit, tier_promotion_bonus).
  2. A ride_refunds row is created against the qualifying ride.
  3. creditWalletForRefund({ referenceType: 'ride_refund', rideRefundId }) is called. This is the same function used by automatic and manual ride refunds.
  4. The reward row is updated with the linked ride_refunds.id and wallet_transactions.id, then marked status='issued'.

If the per-rider monthly cap is exceeded, the reward row is marked status='skipped_cap' and no credit is issued.

Why this matters

All wallet credits in Rider Score share the same accounting plumbing as a real refund - they show up in ride_refunds, net_deposited is updated, and the full audit trail is preserved. We never UPDATE wallet_balance directly. We never INSERT into wallet_transactions by hand.

When rewards fire

Three reward types are issued today:

Reward typeTrigger
per_ride_creditAwarded on each qualifying scored ride for tiers that have a non-zero per_ride_credit_cents.
free_unlock_grantAwarded monthly to Gold and Platinum riders. Tracked separately from cents-based credit.
tier_promotion_bonusOne-time when a rider crosses up into a higher tier. Optional, off by default.

Per-rider monthly cap

The cap is enforced at the reward engine level. A typical default is $10 per rider per month for Silver and below, $25 per rider per month for Gold, and $50 per rider per month for Platinum. Adjust to your unit economics.

The cap is calendar-month based and resets at the first of each month in the subaccount's timezone.

Per-subaccount monthly cap

Set a fleet-wide ceiling at Settings > Reward budget. When the fleet-wide cap is hit, all subsequent reward rows for the month are marked status='skipped_budget'. This is your circuit breaker against viral abuse or a scoring bug spraying credits at riders.

Rider visibility

Riders see:

  • Their current tier and badge on the Rider Score home tab.
  • The exact threshold to reach the next tier (rolling score delta).
  • A list of unlocked perks with plain-English descriptions you configure.
  • A history of wallet credits issued by Rider Score, with the linked ride.

What riders do not see

  • The internal weights snapshot.
  • Other riders' scores (no public leaderboard in v1).
  • The fleet-wide monthly cap.
  • Reward rows in status='skipped_*'.

Beginner cold-start perks

Brand-new riders in their first 3 rides get Silver-level perks if they complete the helmet selfie verification. This is intentional. New riders should feel rewarded for safe behavior immediately, not made to grind for a tier they can already prove they belong in.

Once the rider has 3 scored rides, the cold-start override drops and they are assigned a real tier from their rolling score.

Tier transitions and notifications

When a rider crosses a tier boundary:

  • Up: push notification, in-app celebration, optional tier_promotion_bonus reward.
  • Down: push notification with what changed. No reward. No automatic intervention - the ladder is evaluated separately.

Practical recommendations

  • Keep your Platinum tier rare. 3-5% of active riders is healthy. 20% means your thresholds are too generous.
  • Use the per-ride credit instead of large tier-promotion bonuses. The drip is stickier and harder to game.
  • Run with conservative caps for the first month, then loosen. It is far easier to expand a budget than retract one once riders have come to expect it.

Next

See Intervention Ladder for the At Risk tier's automatic responses. See Helmet Selfie Discount for the most common rider-side reward path.