Proof, not promises · residential edition
Every number on this page is computed from 17,64,76,836 real meter readings — a full year of a real London home (the public UK-DALE dataset, Kelly & Knottenbelt, Scientific Data 2015 (CC-BY 4.0)). The house has 52 plug-level meters, but our algorithms only get to see the one main meter — the plug meters are used purely to check our answers. Nothing is mocked.
Meter readings
17,64,76,836
one every 6 seconds
Meters
53
1 mains + 52 ground-truth plugs
Days recorded
366
2013-03-01 → 2014-03-01
Energy metered
3,077 kWh
peak 6.14 kW
Data: a UK household (House 1: end-of-terrace Victorian home, London (built ~1905)). Costs on this page use an illustrative Indian residential tariff — adjust the slider above. The aggregate CT records apparent power (VA); plug meters record real power (W). For a home dominated by resistive loads the two track closely.
01 · The raw material
Whole house, one week starting 2013-09-23, 15-minute averages
Amber band = weekend. Each thin spike is an appliance switching on — that texture is exactly what the disaggregation below feeds on.
The home's fingerprint: typical weekday vs weekend
Median ± interquartile band over 52 weeks. The double hump — breakfast and dinner — is the universal residential signature.
366 days at a glance — every hour, colored by average kW
Mar 2013 → Feb 2014 · amber ticks = weekends · scale 01.5+ kW
Columns = days, rows = hour of day. Dinner time glows all year; the dark band is the sleeping house; gaps are recorder outages — flagged, not hidden.
data quality — Aggregate
99.55%
50,35,718 readings, minutes covered
data quality — Kitchen lights
99.55%
49,78,162 readings, minutes covered
data quality — Lighting circuit
96.74%
48,97,849 readings, minutes covered
02 · Why data quality decides everything
What a billing meter sees
Whole house, 30-min blocks
What our meter sees
Whole house, 1-min (from 6-second readings)
Zoom to one appliance: the kettle, raw 6-second data (from its check-meter)
A kettle boil is a ~2.4 kW rectangle lasting a couple of minutes. In 30-minute billing data (grey) it dissolves into a barely-visible bump — undetectable, unbillable, uncoachable.
03 · The centerpiece — disaggregation
Replay: Tuesday 31 Dec 2013 — a held-out day, from the top down
Top: the only signal our models are given. Below: for each appliance, what we said (bright) vs what its plug meter recorded (dim). Overlap = proof.
The fridge cycles all day; the kettle fires in short bursts; the washing machine runs its programs. All read from the one grey trace at the top — the colored rows are our output, the grey rows beneath them are the check-meters we never looked at.
best appliance — washing machine
F1 0.967
precision 0.983 · recall 0.951
events pinpointed (test window)
3,259
individual switch-ons matched to plug-meter truth
energy attributed
253 kWh
truth: 248 kWh over 91 days
The honest scorecard — 91 unseen days, graded every 6 seconds
| Appliance | F1 | Precision | Recall | Events found | kWh ours / truth | Energy error |
|---|---|---|---|---|---|---|
| Kettle | 0.89 | 0.90 | 0.87 | 390/412 | 26.5 / 29.9 | -11.3% |
| Microwave | 0.58 | 0.61 | 0.55 | 307/414 | 9.6 / 13 | -26.3% |
| Toaster | 0.77 | 0.73 | 0.82 | 192/210 | 19.6 / 17.7 | +10.7% |
| Fridge | 0.78 | 0.71 | 0.85 | 2277/2352 | 98.5 / 83 | +18.6% |
| Washing machine | 0.97 | 0.98 | 0.95 | 71/77 | 67.1 / 68.9 | -2.5% |
| Dishwasher | 0.56 | 0.50 | 0.64 | 22/27 | 31.3 / 35.1 | -10.7% |
Published UK-DALE benchmarks land in the same bands — strong on kettle, washing machine and fridge; harder on microwave and dishwasher, whose signatures overlap other loads. We publish the misses too: a model that is never wrong is a model nobody checked. Baseline for scale: guessing the appliance's average power at all times gives 26 W MAE on the kettle vs our 4.2 W.
The itemized bill, two ways: our single-meter estimate vs 52 plug meters
Ours — computed from the main meter only
Truth — measured by the plug meters
This is the product: an itemized electricity bill without installing a single plug meter. Here it is graded against a house that happens to have 52 of them.
Pinpointed events — spot checks against the plug meters (±60 s matching)
| When | Appliance | We said | Plug meter says | Timing off by |
|---|---|---|---|---|
| Sat, Nov 30, 11:29 AM | Fridge | 264 W · 22 min | 182 W · 113 min | 0 s |
| Sun, Dec 1, 03:00 PM | Kettle | 2,380 W · 4 min | 2,417 W · 4 min | 0 s |
| Mon, Dec 2, 09:30 AM | Dishwasher | 2,427 W · 51 min | 2,780 W · 104 min | 102 s |
| Thu, Dec 5, 07:46 AM | Toaster | 1,607 W · 4 min | 2,663 W · 4 min | 0 s |
| Fri, Dec 6, 04:10 PM | Washing machine | 2,139 W · 100 min | 3,888 W · 101 min | 0 s |
| Sat, Dec 7, 01:32 PM | Microwave | 1,594 W · 2 min | 1,565 W · 2 min | 0 s |
| Sun, Dec 8, 10:16 PM | Washing machine | 1,462 W · 85 min | 2,082 W · 96 min | 0 s |
| Wed, Dec 11, 10:42 PM | Dishwasher | 2,648 W · 102 min | 2,749 W · 108 min | 360 s |
| Tue, Dec 31, 12:18 PM | Microwave | 950 W · 0 min | 1,632 W · 4 min | 0 s |
| Tue, Dec 31, 01:50 PM | Washing machine | 1,973 W · 96 min | 3,845 W · 100 min | 0 s |
| Thu, Jan 2, 11:13 PM | Dishwasher | 2,435 W · 98 min | 3,795 W · 102 min | 270 s |
| Sun, Jan 5, 09:39 PM | Dishwasher | 2,414 W · 105 min | 2,377 W · 102 min | 144 s |
Per-appliance gradient-boosted trees (scikit-learn HistGradientBoosting): a classifier for on/off state + a regressor for watts-when-on, using only sliding-window features of the aggregate meter. Input: Channel 1 (whole-house aggregate, 6-second apparent power). Plug-level meters used only as training labels and held-out ground truth. Offline attribution: features may look up to 60 s ahead of each instant. Aggregate is apparent power (VA), plug meters real power (W) — magnitudes match closely only for resistive loads; the model learns the mapping. Train 2013-03-01 → 2013-11-29, test 2013-11-29 → 2014-02-28. Every row above is a single physical switch-on we located from the whole-house wire.
04 · Wow #1 — the 3 a.m. line
3 a.m. floor
184 W
median 02:00–04:00
share of all energy
52.3%
floor power × every hour
vampire energy / yr
1,615 kWh
floor × 8,760 h
that is, per year
₹11,305
at ₹7/kWh (your tariff — slider above)
Caught red-handed at 3 a.m. — what the plug meters confirm is awake
| Data logger pc | 13 W | ₹797/yr |
| Boiler | 12 W | ₹736/yr |
| Gige usbhub | 8 W | ₹491/yr |
| Adsl router | 6 W | ₹368/yr |
| Unmetered remainder of the floor | 145 W | ₹8,891/yr |
Feedback-driven household savings of 4–12% are the documented norm (ACEEE meta-review of 57 studies) — and the always-on floor is where they usually hide.
05 · Wow #2 — the itemized bill
Appliance league table (12 months)
| Meter | kWh | cost @ ₹7 |
|---|---|---|
| Fridge | 343 | ₹2,398 |
| Washing machine | 218 | ₹1,526 |
| Lighting circuit | 177 | ₹1,238 |
| Kitchen lights | 154 | ₹1,079 |
| Htpc | 140 | ₹981 |
| Dishwasher | 138 | ₹965 |
| Boiler | 125 | ₹872 |
| Kettle | 122 | ₹854 |
| Data logger pc | 112 | ₹781 |
| Tv | 92 | ₹642 |
| Other 42 sub-meters | 675 | ₹4,724 |
| Rest of house (unmetered: oven circuit, sockets without plug meters) | 783 | ₹5,478 |
Monthly stack, top sub-metered appliances
Rest of house excluded from the stack for scale (783 kWh of 3,077 ≈ ₹5,478). Winter lighting and the electric shower circuit live in that block.
06 · Wow #3 — the appliance nobody switched off
Dishwasher power, the day before → the day after (15-min averages)
that night
1.3 kWh
typical night: 0.006 kWh
if it became a habit
₹3,296
per year, one appliance
our alert would fire
01:30
WhatsApp/SMS: “Dishwasher still running”
Detection: each night's 00:00-06:00 kWh per plug meter vs the appliance's own trailing median (14+ nights); largest excess reported. The same baseline logic catches a fridge whose seal is failing weeks before it dies (anomaly detection on REFIT homes). On a tariff with night rates this run was cheap — on a flat Indian tariff it is not.
07 · Does the algorithm actually work?
First held-out week: actual vs forecast (30-min resolution)
| Model | MAE kW | RMSE kW | MAPE |
|---|---|---|---|
| Seasonal naive (same slot last week) | 0.237 | 0.405 | 70.2% |
| Our model (gradient boosting) | 0.148 | 0.27 | 39.5% |
error cut vs naive
−37.6%
mean absolute error
80% band coverage
74%
single-home demand has fat tails; fleet-level forecasts calibrate much tighter
Features: lag48, lag96, lag336, rollMean1d, hour, dow, isWeekend, isHoliday. Baseline: seasonal naive: same 30-min slot, previous week. Where this earns money is one level up: DISCOMs and aggregators forecasting thousands of homes, where individual noise averages out and this per-home skill compounds.
08 · Don't trust us
| Appliance-level feedback enables 4–12% household savings | Ehrhardt-Martinez et al. 2010, ACEEE meta-review of 57 studies ↗ |
| Disaggregation + feedback is the value; the meter alone saves nothing | Armel et al. 2013, Energy Policy 52 ↗ |
| Counter-evidence: pie charts alone average ~4.5% with positive bias | Kelly & Knottenbelt 2016, systematic review ↗ |
| The activation rules our scorecard uses (thresholds, min-on/off) | Kelly & Knottenbelt 2015, Neural NILM, ACM BuildSys ↗ |
| Sampling frequency determines which appliances are detectable | Armel et al. 2013, Energy Policy 52 ↗ |
| Anomaly detection on real homes (REFIT) catches failing appliances | arXiv 2023, anomaly detection on REFIT ↗ |
| The dataset behind this page | UK-DALE — Kelly & Knottenbelt 2015, Scientific Data (CC-BY 4.0) ↗ |