Battery basics
What this case shows
- A charging battery is a sink and takes the same raw mix as any other.
- A discharging battery is a source priced at its flat levelized cost of storage.
- Its marginal price is zero — the mix it charged on happened earlier, where a snapshot cannot see it.
- An adapter reading exactly 0 W belongs to neither flow group.
Each snapshot below is one set of readings on this wiring, drawn as a flow chart — how to read it.
Charging
bat1 charges from the mix, taking the same proportions as the metered load beside it.
| Reading | W | Of gross | Share | Made of |
|---|---|---|---|---|
| Gross power | 1400 W | 1 | grid 800 W · pv1 600 W | |
| Grid import | 800 W | 4/7 | grid 800 W | |
| Grid export | 0 W | 0 | nothing exported | |
| PV production | 600 W | 3/7 | pv1 600 W | |
| Charging power | 600 W | 3/7 | bat1 600 W | |
| Discharging power | 0 W | 0 | no battery discharging | |
| Standby power | 0 W | 0 | no standby draw | |
| Self-consumption | 800 W | 4/7 | grid 457.1 W · pv1 342.9 W | |
| Metering imbalanceok | 0 W | 0 | readings reconcile exactly | |
| Home base load | 300 W | 3/14 | unmetered remainder of consumption |
Discharging
The sun is down and bat1 has become a source, supplying two thirds of the house.
| Reading | W | Of gross | Share | Made of |
|---|---|---|---|---|
| Gross power | 600 W | 1 | grid 200 W · bat1 400 W | |
| Grid import | 200 W | 1/3 | grid 200 W | |
| Grid export | 0 W | 0 | nothing exported | |
| PV production | 0 W | 0 | pv1 0 W | |
| Charging power | 0 W | 0 | no battery charging | |
| Discharging power | 400 W | 2/3 | bat1 400 W | |
| Standby power | 0 W | 0 | no standby draw | |
| Self-consumption | 600 W | 1 | grid 200 W · bat1 400 W | |
| Metering imbalanceok | 0 W | 0 | readings reconcile exactly | |
| Home base load | 100 W | 1/6 | unmetered remainder of consumption |
Idle
bat1 sits at exactly 0 W: neither a source nor a sink, and absent from both groups.
| Reading | W | Of gross | Share | Made of |
|---|---|---|---|---|
| Gross power | 1500 W | 1 | grid 900 W · pv1 600 W | |
| Grid import | 900 W | 3/5 | grid 900 W | |
| Grid export | 0 W | 0 | nothing exported | |
| PV production | 600 W | 2/5 | pv1 600 W | |
| Charging power | 0 W | 0 | no battery charging | |
| Discharging power | 0 W | 0 | no battery discharging | |
| Standby power | 0 W | 0 | no standby draw | |
| Self-consumption | 1500 W | 1 | grid 900 W · pv1 600 W | |
| Metering imbalanceok | 0 W | 0 | readings reconcile exactly | |
| Home base load | 1000 W | 2/3 | unmetered remainder of consumption |
Why this case exists
A battery is the only device that changes which side of the diagram it is on. Everything else has a fixed role — a PV system produces, a load consumes — and the engine can lean on that. A battery is a sink on one snapshot and a source on the next, and both have to work without special-casing it.
Charging is the easy half: it is a sink, and an unrestricted one, so it takes
the same raw mix as the metered load beside it. Discharging is where the
snapshot model runs into its own limits. The energy coming out of bat1 was
paid for at some earlier time, at some earlier mix, and an engine that only
knows about now cannot see any of that. So it does the only defensible thing:
prices the discharge at the battery's flat levelized cost of storage, and
reports its marginal price as zero, because at this instant nothing is being
bought to produce it.
The idle snapshot is a smaller point but a real one. bat1 reads exactly 0 W,
which makes it neither a source nor a sink. It appears in neither flow group
rather than being counted as a zero-watt member of both.