Draiv

AI EV road trips

Methodology

How the numbers are computed.

Every score on the reliability index has a formula. No proprietary magic, no "our AI says it's good." If you disagree with a number, you can audit the math.

Confidence score

What a stop's 0–100% confidence number means.

Confidence is a per-stop trust signal shown on every charging-stop card. It blends four inputs:

confidence = 0.50 × operator_reliability   // curated network → 0..1 table
           + 0.25 × stall_score            // capped at 8 stalls = 1.0
           + 0.15 × rating_score           // 0..5 → 0..1; flat 4.0 for OCM-only stops
           + 0.10 × distance_score         // 0..1, penalty within 5 mi off route

Confidence is bounded to [0, 1] and rounded to two decimal places. The displayed badge multiplies by 100 and rounds to a percent.

Community reports nudge the displayed confidence by at most ±0.05 (positive) or −0.10 (negative) — see the community weighting section.

Reliability score

The 0–100 number on each operator + station in the public index.

Reliability is computed from community reports only — not from directory data or operator-supplied numbers. It deliberately weights what actually costs drivers:

hits   = recent_charger_worked_count            (last 30 days)
misses = recent_charger_broken_count + recent_long_wait_count

raw    = hits / max(1, hits + 2 × misses)
score  = round(raw × 100)

Broken chargers count double against worked-charger rewards because broken is what ends a trip. A station with 10 worked + 5 broken lands at 50/100, not 67/100.

Stations or operators with no trust reports return null — the UI renders "no data" instead of 0/100, so freshness isn't conflated with badness.

Weather impact

How weather adjusts your range estimate.

When an OpenWeather key is configured, Draiv samples weather at every leg's midpoint and applies the leg-specific multiplier to that leg's SOC drop:

ConditionMultiplier
Severe cold (≤ −5°C)×0.78 (≈ −22%)
Cold (< 0°C)×0.85 (≈ −15%)
Cool (0–10°C)×0.92 (≈ −8%)
Hot (> 30°C)×0.96 (≈ −4%)
Very hot (> 35°C)×0.93 (≈ −7%)
Rain×0.97
Snow×0.90
Brisk wind (≥ 30 km/h)×0.97
Strong wind (≥ 50 km/h)×0.95

Effects compound multiplicatively. There's a 0.75 floor — past that, the trip is unsafe and the user should plan differently, not accept a worse range estimate. The Trust Layer card surfaces the miles-weighted aggregate multiplier across all legs.

Backup coverage

Why every primary stop ships with a backup, and how they're picked.

Public DCFC reliability sits around 70–85% on any given trip. One broken charger on a long route is a real risk. Draiv mitigates it structurally:

  • Every primary stop ships with up to 2 alternate chargers within roughly 2 mi.
  • Backups prefer a different operator than the primary so a single network outage doesn't take both sites down. Same-operator alternates are only used when no cross-operator candidate exists nearby.
  • Backups are ranked by the same Confidence formula as primaries — you see their score in the Trust Layer.
  • Lack of a backup is itself a risk signal: stops with zero alternates contribute to a higher per-stop risk level.
Community weighting

How driver reports nudge Confidence Score.

Reports go into a 30-day rolling window and add up into a small, clamped adjustment on Confidence Score:

+0.02   per charger_worked  (capped at total +0.05)
−0.05   per charger_broken
−0.02   per long_wait
−0.04   per unsafe_area
 0      per bathroom_clean / bathroom_bad / good_food_nearby
 0      per wheelchair_accessible / poor_accessibility
 0      per good_lighting / poor_lighting
 0      per family_friendly / pet_friendly
 0      per other

Accessibility, lighting, family/pet, and food reports are informational by design. They appear as signals on stop cards and the reliability page, but they don't move Confidence Score — that's a charger-trust metric. Accessibility is its own dimension and shouldn't bias the trust signal up or down.

Total adjustment is clamped to [−0.10, +0.05]. Reports are signal, not authority.

Live availability

What's real, what's directory-only, what's not connected.

Draiv uses an availability provider abstraction. Phase 6 shipped two providers and many gaps:

  • OCM Directory Status: reads the static StatusType on OCM stations (Operational / Partly Operational / Not Operational / Planned). Confidence 0.35. Never claims stall counts — only operational intent.
  • Electrify America stub: returns unknown for all EA stations. Documented in source: EA does not publish a stable public availability endpoint, and we don't scrape private app APIs.
  • Other networks (EVgo, ChargePoint, Tesla, etc.): unknown until a real provider is added.
  • The Trust Layer card honestly says "Not connected" when availability is unknown. No spoofing.

Methodology updates land in this page's Git history. Material changes get called out in the README changelog.