
Subscription lifecycle visible to support, including zero-price subscriptions: GoDash now shows the live Subscription State (Renewing, Switching, Expired, etc.) and surfaces switching information directly in the user side panel, so CS and Fleet Management see what's actually happening with a customer's subscription instead of inferring it from Auto-Renew and Cancelled flags. Operators can also configure free renewing subscriptions, unblocking Cycle-to-Work schemes, internal employee plans, and friends-and-family discounts.

Requires the latest app version. Contact your Customer Success Manager for details.
Vehicle filter reset clears the indicator: The map now correctly removes the "filters applied" indicator when riders tap Reset filters, so they aren't misled into thinking a filter is still active after clearing it.
Subscription State and switching info in the user side panel: Support and Fleet Management see the live Subscription State (Renewing, Switching, Expired, Switched, Cancelled) and, for in-progress switches, the name of the target subscription and the effective date. Replaces the old Auto-Renew + Cancelled flag combination that operators had to ‘reverse-engineer’ during support cases.
Dashboard-started rentals show up correctly on the calendar: Rentals started or ended from the Dashboard now use the actual start time on the calendar view, matching the existing behavior for end time. Previously these rentals were drawn at the booked start time, misaligning the timeline against reality.
Voucherable monetary flag now saves on edit: Resolved a bug where toggling the monetary setting on an existing voucherable in the Dashboard did not persist on save, leaving the voucher in an inconsistent state. The flag now persists correctly.
Allow bookings against vehicles scheduled to arrive: Booking creation no longer fails when a station has no vehicle currently assigned, as long as a vehicle is scheduled to arrive before the requested start time. Builds on the predictive station capacity work from CW20 and removes a remaining "no vehicle available" false negative from the booking planner.
False positive conflicts after overdue bookings resolved: Conflicts no longer linger on already-overdue bookings until the cooldown period passes. The planner now clears the conflict flag at the right moment, so operators don't see phantom conflicts on the calendar.
Service booking customer change error fixed: Changing the customer on a service booking via the Dashboard works again. The previous behavior returned a 500 from the API endpoint, blocking operators from re-assigning service bookings.
RidePass purchases now persist with the correct voucher type: Resolved a regression where RidePass purchases via the multi-benefit path were stored as PACKAGE instead of RIDE_PASS. Analytics, accounting, and customer-facing surfaces that depend on the voucher type now show RidePass purchases correctly.
Duplicate rental end processing prevented: A rental could previously be ended multiple times when PARKING_RESERVATION_REMOVED and RENTAL_END overlapped, producing duplicate invoices, charges, events, and webhooks. The end-state is now recorded reliably so additional end calls are rejected, eliminating the downstream duplicates.
Free renewing subscriptions supported: The platform now accepts subscriptions priced at zero, with proper renewal handling. Unblocks Cycle-to-Work plans, internal employee subscriptions, B2B-funded plans, and similar use cases that needed a renewing offer at no cost to the rider.
Geofence promotion GeoArea exposed in Snowflake: The PostGIS geo_fence column on geofence-promotion voucherables (dtype 2) is now available in Snowflake as WKT-convertible geometry, so operators can analyze geofence-based promotion performance against rentals and revenue without reaching back into the source database.
Utilization metric corrected for over-100% readings: Fixed an arithmetic issue in the Utilization % calculation that produced unrealistic values (well above 100%) for one transit operator's fleet on the Fleet Health dashboard. The metric now stays within expected bounds and reads consistently against Availability %.
Revenue by Price Component sign correction: Rebates on the Revenue by Price Component tile in the Monetization Intelligence dashboard now render with the correct negative sign, so the per-component breakdown reconciles against total revenue.