SOHpro
Your electric's passport — the historical battery-health record powered by scans from any partner shop.
Get your real Score at a partner shop
This page explains our data. Your battery deserves the real measurement — not an estimate.
DATA & METHODOLOGY
What's behind every SOHpro Score
Transparency is part of the product. Every threshold, every reference band, and every coefficient we use to compute a SOHpro Score is published below — with the source you can verify yourself.
This is the transparency. Your real Score is built by measuring your battery at a partner shop — this page exists so you know exactly what we do with the data once it arrives.
Counts are live from our catalog · Sources extracted from the codebase · Updated automatically
Live catalog
We publish current numbers from public.ev_catalog. No marketing inflation — these are the same rows the scoring engine reads.
Chemistry distribution
Why it matters: chemistry decides how we read ΔV imbalance, how fast a battery should age, and which OCV-SOC curve we compare against. A score computed without chemistry uses fleet-default NMC math, which we surface as lower confidence.
Reference bands published
Every threshold the score uses is a published band with a primary source. The colored zones in your report come from this table — no hidden math. Bands version 4.0.0 (May 2026) recalibrated the LFP knee-region historical cell-spread band to 350 / 550 / 700 mV. Version 3.0.0 introduced the 7-tier letter rating over the composite Score (A+ / A / B+ / B / C+ / C / D) detailed in the section below, plus the customer-facing expectation chip that compares your battery to its physical-age baseline. Version 1.1.0 (April 2026) added five first-visit indicators: round-trip energy efficiency, coulombic efficiency, cell voltage σ, HV insulation margin, and OCV deviation.
Letter rating (A+ → D)
The headline rating in your report is a 7-tier letter scale over the SOHpro Score (a 0–100 composite combining BMS-reported SOH 43%, cell voltage balance 22%, degradation pace 20%, energy efficiency 5%, OCV-SOC consistency 5%, and thermal uniformity 5%). The letter is not raw SOH%; it is the integrated health index.
| Metric | Zones | Unit |
|---|---|---|
| A+ | ≥ 97 | Excellent |
| A | 93 – 96 | Very good |
| B+ | 88 – 92 | Good |
| B | 82 – 87 | Acceptable |
| C+ | 76 – 81 | Mild attention |
| C | 70 – 75 | Attention |
| D | < 70 | Service review |
Lower cuts (70 / 76) reflect the convergence of OEM warranty floors — most manufacturers guarantee ≥70% at 8 yr / 100k mi (Tesla, Ford, VW, Hyundai/Kia, BMW, Mercedes, Polestar, Volvo); the 76 cut separates 'warranty-margin' cars from 'near-floor'. Upper cuts (88 / 93 / 97) reflect the empirical density of the global EV fleet per Geotab 2026 (22,700 vehicles, fleet-avg 2.3%/yr) — most healthy EVs in their first 100k km live above 88, and we want to differentiate 'near-new' (97+) from 'well-cared-used' (88–93) for resale and insurance pricing signal. The 7-tier scheme is product + empirical; no scientific paper claims these exact buckets. The bands_version stamp on every report row preserves the original letter at scan time so future scale revisions cannot re-letter historical scans.
When the letter is rendered
The letter follows the composite Score's confidence — not legacy SOH-only confidence. When it appears, when it hides, and where the SOH number comes from:
- It appears when
The composite Score is non-zero, the scan exposes at least one measurable signal (cell balance, thermal, capacity, BMS SOH, or trajectory), AND at least half of the score's weight actually scored.
- It hides when
The unscoreable tier (zero signals evaluable, Score 0 by construction), or coverage below half (no measured capacity and no degradation rate). Both the number and the letter give way to a neutral “estimated” state.
- Estimated-SOH reports still letter
Reports routed through estimated-SOH paths (cycle-count, km-age, physical-model) still show a letter when coverage is enough, because cell balance + thermal account for 27% of the composite weight, measured directly.
- Quality gate — at rest, measured-first
Cell balance (ΔV) and voltage-consistency are scored only when the pack is at rest, and that rest check sizes itself off the battery's measured capacity (the BMS's amp-hours, or the scanner's kWh) — biasing conservative, discarding borderline readings, when only an unverified catalog estimate exists, so an unverified spec can never relax the bar (score engine 1.4.0).
Where the SOH number comes from — measured first
| Source | Kind | Priority |
|---|---|---|
| BMS SOH% — reported directly by the car | Measured | 1 — highest |
| BMS capacity ratio — current ÷ factory amp-hours (textbook State of Health) | Measured | 2 |
| Two-visit coulometry — energy observed across scans | Measured | 3 |
| Cycle-count / km-age / physical-model | Estimated | 4 — fallback |
The report always labels which path produced the number, with a “?” explainer next to it (Report Technical Guide §3.1). The legacy 4-tier grade (Excellent / Good / Fair / Attention) is preserved in the database for projection copy but is no longer the headline. Since July 2026 (engine 1.6.0), only the Measured rows of this table may become points in a vehicle's longitudinal SOH history and in our calibration ledger — estimated values are shown on their own report but never feed the trend, the degradation rate, or the model's self-evaluation (Report Technical Guide §3.10, the anticircularity rule). Measured non-BMS points carry an “estimated” disclosure badge next to the trend chart.
Expectation band — Δ vs physical-age baseline
Next to the letter we show how your battery compares to the physical-aging baseline for its age + kilometres + chemistry + climate. This is the existing `sohGradeContextual` Δ ladder (−1 / −3 / −6 percentage-point thresholds, calibrated against the Arrhenius-plus-cycle-life model documented in §3 of the technical guide), surfaced as a 4-state chip. The asymmetric ladder is preserved verbatim from prior bands_version releases; only the top tier splits at +1 pp to introduce a positive-direction signal.
- Above expectedΔ ≥ +1 pp
Battery is healthier than the model predicts for this age + km. Rare and good.
- In line with age−1 ≤ Δ < +1 pp
Within the model's ±1 pp band — typical aging for this chemistry, climate, and usage.
- Below expected−6 ≤ Δ < −1 pp
Trailing the model. Often early imbalance or above-average thermal stress.
- Far below expectedΔ < −6 pp
Material divergence from the model. Worth a technician deep-dive at the next visit.
Models in production today
These are the models running every time you generate a Score. Each is chemistry-aware where the science demands it.
- Composite SOHpro Score — weighted combination of BMS SOH (43%), ΔV (22%), degradation pace (20%), thermal (5%), OCV consistency (5%), round-trip efficiency (5%). Components with missing inputs renormalize, never default to mid-band placeholders.
- Chemistry × SOC ΔV thresholds —
DELTA_V_STATE_THRESHOLDS_MVkeyed by NMC/NCA/LFP/LTO and three SOC zones. LFP plateau (mid-SOC) gets the strictest thresholds because the plateau hides imbalance. - Contextual SOH grade —
sohGradeContextualmeasures observed SOH againstexpectedSohAtKmAndAge, which combines cycle fade (km × per-1000-km rate) with calendar fade (K · √year, K per chemistry). - Cycle-count fallback SOH —
sohFromCycleCountuses Sandia/NREL per-FEC loss rates when the BMS doesn't report SOH directly. Refuses to estimate without chemistry; floors at 50% to avoid runaway. - OCV-SOC consistency with rest gating — refuses to score when the pack is under load (|I|>2 A) or recently cycled (<30 min rest), so polarization isn't charged as imbalance.
- LFP plateau detection — OCV check is automatically suppressed for LFP at 20–80% SOC where the voltage curve is too flat to be informative.
- Projection scenarios —
computeProjectionsreturns linear-from-pace;empiricalOptimistProjectreturns a chemistry-aware dampened scenario (τ NMC=50k / LFP=80k / LTO=120k km).
Country & climate context
Climate adjusts calendar fade through a coarse zone classifier (temperate / warm / tropical). It is best-effort: when zone is unknown the score falls back to the chemistry-only baseline, never blocks. Defaults below; users can override per VIN. Since engine 1.7.0 the same calendar term also carries a thermal-management offset: passively-cooled packs (no active cooling — e.g. Nissan Leaf, Renault Zoe, VW e-Golf) run the physics at +10 °C effective, forced-air at +5 °C, liquid-cooled at baseline. Source for the magnitude: Geotab's 10,000-vehicle fleet study (2015 Leaf, passive: 4.2 %/yr vs 2015 Model S, liquid: 2.3 %/yr) — fleet telemetry, not peer-reviewed; we model the conservative edge of the observed range: https://www.geotab.com/blog/ev-battery-study/ — when the cooling type is unknown, no adjustment is applied.
| Country | Default zone | Note |
|---|---|---|
| 🇺🇾 Uruguay | Temperate | Country-wide |
| 🇨🇷 Costa Rica | Temperate | Coast & lowlands (Guanacaste region, Liberia, Limón, Puntarenas, beach towns) override to Tropical |
| 🇲🇽 México | Warm | CDMX overrides Temperate; Monterrey/Mérida Tropical |
| 🇨🇴 Colombia | Warm | Bogotá overrides Temperate; Cartagena/Barranquilla Tropical |
| 🇧🇷 Brasil | Warm | Curitiba/POA Temperate; Manaus/Recife Tropical |
Range estimation inputs
Translating SOH into kilometres uses four numerical inputs alongside the catalog's WLTP range and usable kWh. Each input has a primary source and is published below — same audit standard as the score reference bands. The technical guide §15 documents the full math; this table is the at-a-glance audit.
| Input | Value | Primary source |
|---|---|---|
| Climate consumption multiplier — temperate (15–25 °C avg) | × 1.00 | Baseline (no AC penalty assumed) |
| Climate consumption multiplier — warm (25–32 °C avg) | × 1.07 | Midpoint between temperate baseline and AAA Foundation 2019 hot+AC bound |
| Climate consumption multiplier — tropical (>32 °C avg) | × 1.15 | AAA Foundation 2019 — hot+AC at 35 °C measured 17 % range reduction (≈ × 1.20 consumption); 1.15 is a conservative tropical mid-band |
| Real-world consumption factor (vs WLTP cycle) | × 1.18 | ADAC EcoTest aggregate, 100+ EVs since 2017 — WLTP-vs-real ratio 0.78–0.85; reciprocal ≈ 1.18× consumption |
| P10 factor (adverse conditions vs P50) | × 0.80 | Liu et al. 2021, *Renewable and Sustainable Energy Reviews* 156, 111934 — energy-budget estimators cluster at 10–15 % MAPE; band widened on adverse side |
| P90 factor (favorable conditions vs P50) | × 1.15 | Liu et al. 2021 — band asymmetry favors adverse spread |
| Fallback consumption (when WLTP + usable kWh unavailable) | 160 Wh/km | Liu et al. 2021 — conservative real-world average for compact NMC EVs; REAL_WORLD_FACTOR is NOT applied on top (160 already approximates real-world) |
Note: cold-climate rows are intentionally not modeled — LATAM-first scope. The table needs cold rows (heater load below 0 °C adds 25–40 % consumption per AAA + Idaho National Laboratory fleet studies) before any cold-market launch. We do not claim the range estimate is accurate to ± any specific number — that would require an internal validation run we have not yet published.
Sources we cite
Deduplicated list of every primary and corroborating source published in our reference bands. Click through — every URL is real.
- Accure — LFP hysteresis effect on OCV curves
- ACS Omega — Heat Generation and Degradation during High-Temperature Aging
- Argonne National Laboratory — Vehicle Technologies Office (battery testing)
- Attia, P. M., Bills, A., Brosa Planella, F., et al. (2022) — Review — 'Knees' in Lithium-Ion Battery Aging Trajectories, J. Electrochem. Soc. 169:060517 (NREL/82801)
- Battery Design — Cell-to-Cell Temperature Gradient
- Battery University BU-1003 — Comparing Battery Round-Trip Efficiency (cumulative DC counters vs plug-side)
- Baumhöfer et al. (2014) — Production-caused variation in capacity aging trend, JPS 247:332
- Beck et al. (2021) — Inhomogeneities and Cell-to-Cell Variations, MDPI Energies 14(11):3276
- Dubarry, M., Devie, A., Liaw, B. Y. (2017) — Identifying battery aging mechanisms in large format Li-ion cells, J. Power Sources 360
- FMVSS No. 305 — Electric-powered vehicles: electrolyte spillage and electrical shock protection
- Geotab 2026 EV Battery Degradation Analysis (22,700 vehicles)
- Geotab 2026 Update — 2.3% Annual Degradation
- ISO 6469-3:2021 — Electrically propelled road vehicles, safety specifications, electrical safety
- Midtronics — Early Signs of Cell Imbalance (field-service heuristic)
- Nature Scientific Reports — Aging of Li-ion above Room Temperature
- Neural Concept — EV Battery Thermal Management (vendor overview; secondary/illustrative, not the threshold source)
- NREL — Battery Energy Storage Testing Procedures (DC-side counter analysis)
- Plett, G. (2015) — Battery Management Systems Vol. II: Equivalent-Circuit Methods
- Preger et al. 2020 (Sandia) — Degradation of Commercial Lithium-Ion Cells as a Function of Chemistry and Cycling Conditions, J. Electrochem. Soc. 167:120532
- Recharged — EV Battery Warranty Comparison (industry warranty aggregation; secondary basis for the 70% 8yr/100k-mi floor)
- Schmid, B., Cabrera, J., et al. (2022) — Knee-point detection in lithium-iron-phosphate batteries via incremental capacity analysis, Energy Storage Materials 50
- Schmid, J., et al. (2025) — Aging study of twenty 18650 graphite/LFP cells, Nature Scientific Data 12
- Schuster et al. (2015) — Lithium-ion cell-to-cell variation during BEV operation, JPS 297:242–251
- ScienceDirect — BTMS Review
- SOHpro composite-Score product calibration
- Tesla Model 3 LFP owner aggregates — InsideEVs (consumer illustration; secondary, not a controlled study)
- The Operation Window of LFP/Graphite Cells Affects their Lifetime (2024), J. Electrochem. Soc. 171
- USABC Electric Vehicle Battery Test Procedures Manual, Rev. 2 (DOE/INL, 1996) — 80% rated-capacity end-of-life definition
- VW Service Action 93P7 — HV Battery Cell Modules (NHTSA)
Our data commitments
- No hallucinated specs. A row enters the catalog with
verified=falseuntil two independent sources agree on chemistry, capacity, and pack details. Verified rows show their source list. - Confidence travels with the data. When chemistry is unknown, the score uses NMC defaults and surfaces the assumption — it does not silently grade as if data were complete.
- Reference bands are locked to published research. We do not move thresholds to flatter results. Every band cites a primary URL you can audit.
- Climate is best-effort. The coarse zone classifier improves the projection when present and is skipped when unknown — it never blocks a report.
- Old reports do not silently re-grade. When we update models, new scans get the new math; existing reports are preserved unless an explicit migration is approved and announced.
Ready for your real Score?
Everything above runs the moment a partner shop scans your battery. The demo report shows what you receive — verified, co-signed, locked to the VIN.