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.
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 routeConfidence 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.
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.
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:
| Condition | Multiplier |
|---|---|
| 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.
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.
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 otherAccessibility, 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.
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
StatusTypeon OCM stations (Operational / Partly Operational / Not Operational / Planned). Confidence 0.35. Never claims stall counts — only operational intent. - Electrify America stub: returns
unknownfor 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.