Rider Management carries twenty-two system requirements grouped into four sets: Rider Registration & Profile (6), Saved Addresses & Preferences (4), Rider Ratings & Bans (8), and Rider Management — Non-Functional (4). Every requirement is an EARS sentence scoped to the RiderManagement bounded context. The shape is a deliberately frictionless signup — phone verification with brute-force lockout, payment-method association via the Payment context, and no government-ID collection at signup — paired with a hardened rating-and-ban policy where automation can warn and propose, but only a human operator can ban, and every ban opens a 30-day appeal window with an SLA-bound resolution.


requirements "Rider Registration & Profile" scoped-to RiderManagement {
  prd-source "ride-now.prd"

  REQ-RDR-001 "Rider signup" : event-driven
    source "Feature: Frictionless rider signup — Story: Sign up with phone number and payment method — AC: Phone verification completes with a single one-time code"
    :: "Frictionless signup — minimum barrier to first ride"
    "When a person signs up with a phone number, the Rider Management
     system shall create a rider profile and send a one-time verification
     code to the phone number."
    priority must

  REQ-RDR-002 "Phone verification" : event-driven
    source "Feature: Frictionless rider signup — Story: Sign up with phone number and payment method — AC: Phone verification completes with a single one-time code"
    :: "Verified phone is the minimum identity for accountability"
    "When the rider submits the correct verification code, the Rider
     Management system shall mark the rider's phone verified and
     publish a RiderPhoneVerified event."
    priority must

  REQ-RDR-003 "Verification code brute-force lockout" : unwanted
    source "Feature: Frictionless rider signup — Story: Sign up with phone number and payment method — AC: After three failed code attempts, the phone is locked for 15 minutes"
    :: "Prevent brute-force verification bypass"
    "If the rider submits an incorrect verification code three times
     in a row, then the Rider Management system shall lock verification
     attempts on that phone number for 15 minutes."
    priority must

  REQ-RDR-004 "No government ID at signup" : ubiquitous
    source "Feature: Frictionless rider signup — non-goal: Require a government ID at signup"
    :: "Non-goal — identity verification is triggered only by risk signals"
    "The Rider Management system shall not require a government-issued
     identity document at rider signup."
    priority must

  REQ-RDR-005 "Ready-to-ride gate" : ubiquitous
    source "Feature: Frictionless rider signup — Story: Sign up with phone number and payment method — AC: Account is ready to request a ride once phone is verified and at least one payment method is added"
    :: "Minimum viable profile — phone verified + active payment method"
    "The Rider Management system shall prevent a rider from requesting
     a ride unless the rider has a verified phone and at least one
     active payment method."
    priority must

  REQ-RDR-006 "Payment method association" : event-driven
    source "Feature: Payment method validation — Story: Stored card validated in advance — AC: Added payment method is validated with a zero-value authorization on save"
    :: "A rider needs at least one validated payment method before requesting a ride"
    "When a rider adds a payment method, the Rider Management system
     shall request validation from the Payment system and associate
     the method with the rider profile only if the validation succeeds."
    priority must
}


requirements "Saved Addresses & Preferences" scoped-to RiderManagement {
  prd-source "ride-now.prd"

  REQ-RDR-010 "Save address" : event-driven
    source "Feature: Saved addresses and preferences — Story: Save Home and Work addresses — AC: Rider can save, edit, and delete named addresses"
    :: "Convenience — riders reuse frequent destinations"
    "When a rider saves an address, the Rider Management system shall
     store the address with a label on the rider profile."
    priority should

  REQ-RDR-011 "Edit or delete saved address" : event-driven
    source "Feature: Saved addresses and preferences — Story: Save Home and Work addresses — AC: Rider can save, edit, and delete named addresses"
    :: "Full control over saved profile data"
    "When a rider edits or deletes a saved address, the Rider Management
     system shall apply the change to the rider profile immediately."
    priority should

  REQ-RDR-012 "One-tap saved-address selection" : ubiquitous
    source "Feature: Saved addresses and preferences — Story: Save Home and Work addresses — AC: Rider can select a saved address as destination in one tap from the home screen"
    :: "Shortens the happy path to ride request"
    "The Rider Management system shall expose saved addresses to the
     rider app such that selecting a saved address as destination
     requires a single tap from the home screen."
    priority should

  REQ-RDR-013 "Accessibility preferences" : event-driven
    source "Feature: Saved addresses and preferences — summary mentions accessibility needs"
    :: "Accessibility needs must be honoured across every ride"
    "When a rider sets an accessibility preference on their profile,
     the Rider Management system shall propagate the preference to
     subsequent ride requests."
    priority should
}


requirements "Rider Ratings & Bans" scoped-to RiderManagement {
  prd-source "ride-now.prd"

  REQ-RDR-020 "Rider rating submission" : event-driven
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Every rating below threshold lists with driver comment and ride reference"
    :: "Drivers rate riders — abusive riders degrade driver retention"
    "When a driver submits a rating and optional comment for a completed
     ride, the Rider Management system shall record the rating and
     comment and recompute the rider's average rating."
    priority must

  REQ-RDR-021 "Rating range" : ubiquitous
    source "Feature: Rider rating and ban policy — summary: balances driver-only rating asymmetry"
    :: "Rating must be 1 to 5 — no gaming"
    "The Rider Management system shall accept ratings only in the
     integer range one through five inclusive."
    priority must

  REQ-RDR-022 "Low-rating warning" : complex
    source "Feature: Rider rating and ban policy — summary: riders with sustained low ratings or repeated violations are subject to warning or ban"
    :: "Give riders a chance to improve before banning"
    "While the rider has completed more than 10 rides, if the rider's
     average rating drops below 4.0, then the Rider Management system
     shall send the rider a warning notification with the rating
     threshold and the ban policy."
    priority should

  REQ-RDR-023 "Ban proposal on sustained low rating" : complex
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Ban proposals list every rating below threshold with driver comment and ride reference"
    :: "Protect drivers from chronically abusive riders — human review required"
    "While the rider has completed more than 10 rides, if the rider's
     average rating drops below 3.5, then the Rider Management system
     shall create a ban proposal in the operator review queue listing
     every rating below threshold with driver comment and ride reference."
    priority must

  REQ-RDR-024 "Operator ban decision" : event-driven
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Operator decision is logged in an audit trail"
    :: "Ban decisions are made by operators, not algorithms alone"
    "When a trust and safety operator resolves a ban proposal, the
     Rider Management system shall apply the decision, record it with
     the operator identity, reason, and timestamp, and notify the rider."
    priority must

  REQ-RDR-025 "Rider ban appeal window" : event-driven
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Rider can appeal a ban within 30 days"
    :: "Due process — riders can contest bans"
    "When a banned rider submits an appeal within 30 days of the ban,
     the Rider Management system shall record the appeal and place
     it in the operator review queue."
    priority should

  REQ-RDR-026 "Rider appeal response SLA" : event-driven
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Operator response within 5 business days"
    :: "Contested bans must be resolved within an SLA — drift erodes trust"
    "When a rider ban appeal is submitted, the Rider Management system
     shall deliver an operator decision to the rider within 5 business
     days."
    priority should

  REQ-RDR-027 "Late appeal rejection" : unwanted
    source "Feature: Rider rating and ban policy — Story: Review banned-rider proposals with full context — AC: Appeal window is 30 days"
    :: "Fixed appeal window — late appeals are closed to keep backlog bounded"
    "If a banned rider submits an appeal more than 30 days after the
     ban, then the Rider Management system shall reject the appeal
     as out of window and notify the rider."
    priority should
}


requirements "Rider Management — Non-Functional" scoped-to RiderManagement {
  prd-source "ride-now.prd"

  REQ-RDR-NFR-001 "PII encryption at rest" : ubiquitous
    source "Constraint: GDPR and equivalent privacy regimes"
    depends-on REQ-NFR-020
    :: "Phone numbers, saved addresses, and ratings are PII"
    "The Rider Management system shall store rider personal data
     encrypted at rest using at least AES-256."
    priority must

  REQ-RDR-NFR-002 "Right to erasure" : event-driven
    source "Constraint: GDPR and equivalent privacy regimes"
    depends-on REQ-NFR-022
    :: "GDPR right to erasure — coordinated with other contexts"
    "When a rider exercises a valid right-to-erasure request, the
     Rider Management system shall delete or anonymize the rider's
     personal data within 30 days, retaining only records with a
     documented regulatory retention obligation."
    priority must

  REQ-RDR-NFR-003 "Signup success rate" : ubiquitous
    source "Feature: Frictionless rider signup — value proposition: shortest path from install to first ride"
    :: "Signup reliability is the first impression; outages cost installs"
    "The Rider Management system shall maintain at least 99.5% signup
     success rate measured monthly, excluding failures attributable
     to the telephony provider."
    priority should

  REQ-RDR-NFR-004 "Audit trail for rider ban decisions" : ubiquitous
    source "Feature: Rider rating and ban policy — AC: Operator response within 5 business days"
    :: "Driver-safety regulators may audit ban policy enforcement"
    "The Rider Management system shall store every rider ban and
     appeal decision in an append-only audit log retained for at
     least seven years."
    priority must
}

Summary

Pattern Count
ubiquitous 7
event-driven 11
unwanted 2
complex 2
Total 22 (12 must, 10 should)
Set Total Must Should
Rider Registration & Profile 6 6 0
Saved Addresses & Preferences 4 0 4
Rider Ratings & Bans 8 4 4
Rider Management — Non-Functional 4 3 1

Cross-Context Dependencies

Requirement Depends on Nature
REQ-RDR-006 (Payment method association) Payment (PAY) RDR → PAY: validation request on AddPaymentMethod; the method is associated with the rider profile only on success
REQ-RDR-006 (Payment method association) Payment (PAY) RDR ↔ PAY: consumes the external PaymentMethodValidated event from Payment to confirm the validation handshake
REQ-RDR-005 (Ready-to-ride gate) Payment (PAY) RDR → PAY: gate depends on at least one active (validated) payment method on the rider profile
REQ-RDR-020 (Rider rating submission) Ride Management (RIDE) RDR ↔ RIDE: consumes the external RideCompleted event from Ride Management; the bridge reaction translates the carried driver-rating into a RecordRiderRating command
REQ-RDR-023 (Ban proposal on sustained low rating) Driver Management (DRV) RDR ↔ DRV: ban-relevant flows reuse the same operator review queue and audit-trail conventions used for driver suspensions; ban proposals reference rideId whose driver record lives in DRV
REQ-RDR-024 (Operator ban decision) Driver Management (DRV) RDR ↔ DRV: trust-and-safety operator identity, reason, and audit conventions are shared with driver suspension flows
REQ-RDR-NFR-002 (Right to erasure) All contexts RDR → *: a coordinated erasure across Payment, Ride, Driver, Geolocation; REQ-RDR-NFR-002 depends on the platform-level REQ-NFR-022
REQ-RDR-NFR-001 (PII encryption at rest) Platform NFR RDR depends on platform-level REQ-NFR-020 for the AES-256-at-rest baseline

Note: Rider Management is a downstream consumer of Ride Management for rating ingestion (RideCompleted) and a downstream consumer of Payment for method validation (PaymentMethodValidated). It is upstream of Trust & Safety operator workflows that span both rider and driver suspensions. Cross-context obligations materialize in the Domain Model page as Anti-Corruption Layer infrastructure services (PaymentValidationGateway), Conformist consumption of external events (RideCompleted, PaymentMethodValidated), and a Published Language reaction (recordRatingOnRideCompleted) bridging RIDE into RDR.