beginner
ai-ops
faq
operations

AI Ops FAQ

Common questions about Levy AI Ops — accuracy, privacy, pricing, customization, and what it does and doesn't do.

Levy Fleets TeamMay 18, 20265 min read

AI Ops FAQ

How accurate is the forecast?

The Phase 1 target is MAPE below 35% at the 4-hour horizon, per-hex per-hour. Most production subaccounts after a few weeks of warm-up land in the 25-30% range. Hexes with low ride volume are noisier; high-volume hexes are tighter.

You can audit per-subaccount accuracy in the model_runs table — every inference call writes a row with the model's MAPE and RMSE on the most recent holdout.

How often does the forecast update?

The inference cron runs hourly. New forecasts land in demand_forecasts at minute 15 of each hour. The dashboard shows the latest forecast available — if the most recent one is more than 90 minutes old, a stale-forecast banner appears.

Nightly retraining runs on Modal at around 02:00 UTC. After retrain, the next hourly inference uses the newly-trained model.

Will AI Ops auto-execute moves?

No. Every rebalance recommendation is suggested — the operator must Accept, Snooze, or Dismiss it. There is exactly one automated action in the system: when a technician accepts a route, the vehicles attached to its pickup stops flip to maintenance status to prevent rider grabs. See Technician routes for the auto-maintenance rule.

Does AI Ops support dynamic or surge pricing?

No. AI Ops is an operations tool, not a pricing tool. The forecast is rides per hex per hour, not a price-elasticity surface. Dynamic pricing is on the broader Fleets roadmap but is a separate product.

Can I bring my own forecast?

Not yet. The architecture supports a webhook receiver that accepts external demand_forecasts writes, but it isn't shipped. If you're an enterprise customer with your own ML stack and want to plug it in, contact support and we'll prioritize the webhook based on demand.

What data does AI Ops send to third parties?

Three external services receive data:

  • Tomorrow.io — receives the H3 hex centroid coordinates for weather forecast lookups. No rider or vehicle data.
  • PredictHQ — receives bounding-box coordinates for event lookups. No rider or vehicle data.
  • Modal — runs the trained models. Receives feature rows (hex + hour + weather + events + lag features) for inference. No rider PII (no names, no contact info, no payment data).
  • Routific (enterprise only) — receives stop coordinates and vehicle IDs for route optimization. No rider data.

search_lat / search_lng from unmet-demand events stay inside Levy infrastructure — they are never sent to any third party.

How is unmet demand measured if the ride didn't happen?

The rider mobile app calls POST /api/mobile/app-session-search on every map-open and vehicle-list query. When the response shows zero available vehicles within 500 meters, an unmet_demand_events row is written. The ride never happened, but the search did, and the search is what's measured. See Understanding unmet demand for the full mechanism.

Does AI Ops respect RLS?

Yes. All five new tables (demand_forecasts, rebalance_recommendations, rebalance_routes, rebalance_route_stops, unmet_demand_events) have subaccount_id-scoped row-level security matching the existing policy on rides and vehicles. weather_observations is the one exception — it's global and read-only because weather isn't subaccount-specific.

What happens to forecasts when I disable AI Ops?

When you set ai_ops_enabled = false, all crons skip the subaccount. Existing forecasts stay in the database (subject to the 90-day retention) but no new ones are written. The heat-map page falls back to the old "actual rides only" mode. Re-enabling resumes the cron pipeline on the next tick.

Does AI Ops affect partner payouts?

No, not directly. The recommender shows projected lift in USD on each card, but those dollars are estimates — they don't appear in any ledger and don't influence net_deposited or partner-payout calculations. The actual revenue effect shows up later as more completed rides, which are accounted for through the normal payment flow.

Can I A/B test AI Ops against a control group?

Yes. The recommended approach is to enable AI Ops on a subset of operator-subaccounts and leave a comparable control set off. Compare rides-per-vehicle-day, dead-vehicle hours, and unmet-demand events over a 30-day window. A first-class A/B framework is on the roadmap; today it's manual.

Will the recommender disappear if my Modal/PredictHQ/Tomorrow.io keys aren't set?

No. Every external integration has a fallback. The forecaster falls back to a pure-TypeScript boosted regressor, weather falls back to climatology, events fall back to a cyclical stub, and the route solver falls back to a local Clarke-Wright + 2-opt savings solver. Accuracy degrades but nothing breaks. See Data sources.

How is AI Ops priced?

  • Starter — included in Growth plan and above at no extra charge.
  • Pro — $99/operator/month + $1/vehicle/month, capped at $499/operator/month.
  • Enterprise — $299/operator/month + $2/vehicle/month + $0.15/completed route stop, capped at $1,499/operator/month.

Enterprise customers can swap the OR-Tools solver for Routific (Levy passes through the per-route cost).

Will my forecast appear in MDS feeds to cities?

No. AI Ops forecasts are explicitly excluded from MDS exports. We share trip data with cities as required, but predictions stay internal — cities can't yet write requirements against features they don't know exist.

What's on the AI Ops roadmap?

  • GNN+GRU model upgrade (gated on Phase 1 MAPE plateauing above 28%).
  • A first-class admin UI for the feature flags.
  • A city-facing forecast feed as a separate SKU.
  • Webhook receiver for BYO forecasts.
  • Multi-vehicle (multi-tech) joint optimization with proper cross-tech assignment.