EV Detection
Find EV charging in interval meter data — no submeter or connected device required
Most utilities know less about EV adoption on their system than they need to. Rebate lists, registration data, and program enrollments all undercount, and none of them tell you whether the vehicle actually charges at home. Detection works from the meter, so it covers everyone.
EV Detection identifies which meters on your system are likely charging an electric vehicle, using the interval data directly from the meter. Set a detection window, the platform scores every meter in scope, and you receive a ranked list of review candidates with load curves attached.
This page covers:
- What EV charging looks like at the meter
- How the two-stage detector works
- What the confidence score does and does not mean
- The flags attached to each candidate
- What you need to supply for a run
What EV charging looks like at the meter#
Everything downstream keys off one load shape. On top of a home's normal baseline, Level-2 charging appears as a clean, flat-topped block of added load. Ordinary household loads are rounded, variable, and drift with the weather. A charging session is sharp-edged and holds a steady draw until it stops.
The characteristic session profile:
| Property | Typical range |
|---|---|
| Power | 3.3–7 kW, held flat |
| Duration | 1.5–8 hours |
| Energy moved | 10–80 kWh in a single session |
| Timing | Most sessions start between 9 PM and 7 AM local |
| Recurrence | Repeats on many days at a consistent power |
| Power factor | Near unity — little reactive power |
| Weather response | None — an EV charges the same on a hot day and a mild one |
No single one of these separates an EV from everything else. A resistive water heater also draws at near-unity power factor. A pool pump also runs near-daily. It is the combination that is distinctive, which is why the detector weighs several clues rather than applying one rule.
How detection works#
Detection runs in two stages. Before either stage runs, the detector determines what a home's normal usage looks like at each hour of the day and subtracts it. What's left is the extra load: anything sitting on top of that home's own baseline.
Stage 1 asks whether a block of that extra load could be charging. Stage 2 asks whether it behaves like charging.
Stage 1: The physical gate#
After baseline subtraction, a candidate session is any block of added load that clears two low bars: at least roughly 2 kW, held for at least 1.5 hours. Brief dips are bridged so a single dropped read doesn't split one session into two.
Stage 2: The learned scorer#
This is where EV-versus-confounder is decided. The result behaves like a scorecard: each clue below adds or subtracts confidence, and the point values were tuned from real examples rather than guessed.
- Power in the Level-2 band — around 3.3–7 kW: bigger than a kettle, smaller than industrial equipment.
- Large energy per session — 10–80 kWh moved in one sitting. That is a car battery, not an appliance.
- Consistent recurrence — the same power showing up as a habit across many days, not a one-off block.
- Overnight clustering — most sessions begin between 9 PM and 7 AM local time, when people plug in.
- Weather independence — charging doesn't track temperature the way heating and cooling do.
- Clean shape at near-unity power factor — flat draw with little reactive power, unlike motor-driven loads.
The clues combine into a single number: a confidence from 0 to 100%, not a yes or no.
Telling an EV from its look-alikes#
The confounders each break the pattern somewhere, but never in the same place:
| Load | Power | Power factor | Timing | Weather-driven |
|---|---|---|---|---|
| EV (Level 2) | 3.3–7 kW, flat | ≈ unity | Overnight, recurring | No |
| Resistive water heater | ~4.5 kW | ≈ unity | Tracks hot-water use; short | — |
| Mild AC / heat pump | Variable | Low (inductive) | Daytime peaks | Strong |
| Pool pump | ~1–2 kW | Low (inductive) | Long, near-daily | Mild |
| Well / sump pump | Brief spikes | Low | Irregular | No |
| Rooftop solar | Negative (export) | — | Midday | Inverse |
Detection flags#
Alongside the score, each candidate can carry one or more flags. A flag is a reason to verify first, never an automatic rejection. Flags are computed from fixed rules after scoring, so they are auditable and reproducible — nothing in them is model-generated. They exist to encode the analyst heuristics the ranking model can't express, such as high power compensating for near-zero recurrence.
| Flag | Type | What it's testing |
|---|---|---|
threshold_hugging | Confounder | Charging power sits in the band where false positives cluster — low enough that a water heater, pool pump, or well pump looks much the same. |
continuous_load_like | Confounder | Sessions run long enough to read as equipment rather than a vehicle — a welder, kiln, or resistive heating profile. |
low_recurrence | Sparsity | Too few distinct days with charging to establish a habit. EVs recur; a burst of sessions can be a one-off load. |
possible_new_adoption | Sparsity | Charging appears only in the second half of the window — consistent with a vehicle bought partway through, so the earlier absence isn't evidence against. |
net_metered | Interference | Solar export on site. Generation masks consumption during daylight, so the midday signal can't be trusted the way overnight sessions can. |
known_der_site | Context | The site already has a connected DER on Texture. The detection may well be right — it's just not news, and not an outreach target. |
Configuring a run#
A detection run is scoped by a handful of parameters, each changing what the model sees.
| Parameter | What it controls |
|---|---|
| Detection window | The start and end dates of meter data scored. Roughly eight weeks is the working target — long enough to establish recurrence and to distinguish a habit from a burst. |
| Probability floor | The review cutoff below which candidates aren't written to the work list. Currently 80%. Raising it yields a shorter, higher-confidence list; lowering it trades precision for coverage. |
| Maximum peak demand | A ceiling on sustained peak load. Raise it where you expect multiple vehicles behind one meter; leave it lower to hold the run to single-vehicle residential profiles. |
| Time zone | Defaults to your user time zone. The model weighs overnight session timing, so a run set to the wrong zone shifts the entire overnight window and degrades results. Set it to the territory being scored, not the reviewer's location. |
| Weather | Local weather for the territory is factored in automatically, and is how the scorer discounts temperature-driven loads. |
Interpreting results#
Each meter in scope receives a single confidence score. Those at or above the cutoff are written to a reviewer work list, where each candidate carries:
- A probability — the calibrated 0–100% confidence.
- Top load curves — the sessions the model keyed on, so a reviewer can judge the shape directly and scroll surrounding days for baseline context.
- Flags — the verify-first notes described above.
- Site and device context — the candidate links through to the meter, its site, and its place on the map, wherever grid topology allows the meter to be placed.
Verification improves future runs#
Reviewer decisions are the most valuable input the detector can receive. Every confirmed and rejected candidate is a labeled example of what real residential charging does and doesn't look like on your system, and labeled examples are what sharpen the scorer. A fleet that reviews consistently gets measurably better results on subsequent runs.
:::note No customer PII is involved Only the meter's load signature and the reviewer's label are used to improve the model. No customer personally identifiable information is involved. :::
| Action | What it does |
|---|---|
| Verify | Confirms the load curves show real EV charging. Moves the candidate off the Detected list; it remains visible under All, and can be unverified if you change your mind. |
| Dismiss | Rejects the candidate — the curves are a water heater, a pool pump, equipment, or simply not convincing. Moves it off the Detected list. |
| Contacted | Records that you've reached out to the member about this candidate. This is workflow bookkeeping, so a team doesn't contact the same member twice. |
Data requirements and limits#
Detection needs interval consumption data and benefits from a little more:
- Interval energy (kWh) — 15-minute or 30-minute is the target over a 4–8 week span; less granular intervals such as 1-hour work but blur session edges.
- Reactive energy (kVARh) where available — this is what supplies the power-factor clue that separates motor-driven loads from resistive and charging loads.
- A continuous window — gaps and partial fleet coverage weaken recurrence signals.
- Residential scope — the scorer is tuned for residential charging.
- Seasonal coverage — a window covering one season carries that season's confounders. Runs across heating and cooling seasons behave differently, and a fleet's first run is not a permanent calibration.
Relationship to other concepts#
- Meters — EV Detection runs on the AMI interval telemetry ingested per meter.
- Grid Topology & GIS — site and device context links each candidate through to the meter's place on the modeled grid.