beginner
ai-ops
setup
onboarding

Getting Started with AI Ops

Enable AI Ops for a subaccount, run the first backfill, and verify the forecast surface is live.

Levy Fleets TeamMay 18, 20265 min read

Getting Started with AI Ops

This guide gets a subaccount from "AI Ops is off" to "the demand map shows live predictions" in about 15 minutes. You'll need the Levy admin role and a subaccount with at least 14 days of ride history.

1. Confirm the subaccount qualifies

AI Ops needs ride history to learn from. Brand-new subaccounts with fewer than 14 days of rides fall back to a global "city-density-tier" baseline and the recommender is hidden until 30 days are available.

Check the rides count by going to Dashboard > Rides and filtering to the subaccount. If you have less than two weeks of data, hold off — the forecasts will be low-confidence and the recommendations won't generate.

2. Enable the feature flag

AI Ops is gated by ai_ops_enabled and ai_ops_tier on the subaccount. To enable Phase 1 (demand surface only):

  • ai_ops_enabled → true
  • ai_ops_tier → starter

For the recommender, set ai_ops_tier to pro. For technician routes, set it to enterprise.

You can also tune two related settings:

  • tech_cost_per_mile_usd — used by the recommender when subtracting tech cost from projected lift. Default is 0.50.
  • rebalance_battery_floor — minimum state-of-charge a vehicle needs to be a rebalance candidate. Default is 30 (percent).

See Feature flags and tiers for the full reference.

3. Run the one-shot backfill

Forecasts run hourly on a cron, but you don't want the dashboard to be empty on day one. The internal backfill endpoint builds two weeks of features and the first set of forecasts in a single call:

curl -X POST "https://fleets.levyelectric.com/api/internal/forecast/backfill" \
  -H "Authorization: Bearer $AI_OPS_INTERNAL_TOKEN" \
  -d '{"subaccountId":"<uuid>"}'

This typically completes in 30-90 seconds depending on ride volume. When it returns, the heat-map page will have something to show.

4. Verify the demand map

Open Dashboard > Analytics > Heat Maps for the subaccount. You should see:

  • A map centered on your service area, with H3 hex polygons overlaid.
  • Three layer toggles: Predicted demand, Actual history, Unmet demand.
  • A horizon picker: 1h, 4h, 24h.
  • A time slider running from -7 days to +24 hours.
  • Summary tiles showing total predicted rides and the highest-demand hex.

If the map is empty, see Troubleshooting.

5. Wait one cycle, then check recommendations

If you set ai_ops_tier to pro or higher, the recommender runs at minute 25 of each hour. Wait for one full cycle, then open Dashboard > Operations > Rebalance. You should see a ranked card grid of recommended moves.

6. Enable technician routes (Enterprise only)

With ai_ops_tier set to enterprise, the route solver runs every 30 minutes during operating hours (06:00-22:00 local). Routes are assigned to technicians who have the Service Tech role. The technician sees their route inside the operator-app under the Route tab.

Push the operator-app OTA update if your technicians don't already have the Route screen:

cd operator-app
eas update --branch production --message "feat: enable AI Ops Route screen"

What's running behind the scenes

CronSchedulePurpose
/api/cron/ai-ops-fetch-weatherhourlyPulls Tomorrow.io forecasts into weather_observations
/api/cron/ai-ops-build-featureshourlyJoins rides + weather + events into demand_features
/api/cron/ai-ops-run-inferencehourlyWrites new rows to demand_forecasts
/api/cron/ai-ops-recommendationshourlyGenerates rebalance_recommendations (Pro+)
/api/cron/ai-ops-solve-routesevery 30 min, 06-22Builds rebalance_routes (Enterprise)

Crons run automatically. You don't need to trigger them manually after the backfill.

Next steps

Running a fleet on this hardware?

Levy Fleets runs scooters, e-bikes, mopeds and golf carts on the IoT hardware you already have, with integration pages for 29 vendors including Segway, Okai, Omni, Queclink, Invers and Comodule. Keyless unlock, geofencing, rider payments and rider support are included, and the Managed plan is a share of revenue with no per-vehicle software fee.