Battery Arbitrage Economic Case (Sezibwa)
[!info] Conservative basis: UEDCL Code 10.2, effective Q3 2026: Peak 666.5 / Shoulder 562.1 / Off-Peak 429.7 UGX/kWh, using measured site load. The complete tariff schedule and effective dates are configurable model inputs so later ERA/UEDCL revisions can be substituted without changing model logic. No solar or new capex is included, so weather and PV price do not affect this case.
Headline
The battery NFE already owns can create incremental value from sunk hardware with no solar, by charging during the cheap off-peak window and reducing grid purchases during the expensive evening peak. On the real load and the current tariff this saves about 22,000 to 40,000 UGX per month (about 6 to 11 percent of the bill) depending on how much reserve is held for backup. Modest, and smaller than it used to be, because the tariff spread has compressed. Solar is the real story (see Solar Plus Battery Economic Case).
[!warning] The arbitrage margin has roughly halved on the current tariff The old Sept-2025 tariff had a peak-to-off-peak spread of 410 UGX/kWh (753 vs 343). The current Q3 2026 spread is only 237 UGX/kWh (666.5 vs 429.7). After the battery's 90 percent round-trip efficiency, gross arbitrage value falls from roughly 372 to about 189 UGX/kWh — so these numbers are about half the earlier draft's. Do not quote an older 43k-79k figure.
Method
Transparent scoping model on the real load. Battery 8.9 kWh usable, 90 percent round-trip, 12 kW inverter cap (never binding at these levels). Charge off-peak toward full, discharge to cover the evening peak down to a reserve floor. Tariff is a configurable input (Q3 2026 used here).
Results
| Reserve held for backup | Gross bill saving per month | Percent of energy bill |
|---|---|---|
| 0 percent (max saving) | about 39,600 | about 11 percent |
| 30 percent | about 29,900 | about 8 percent |
| 50 percent reserve scenario | about 21,700 | about 6 percent |

How the numbers are built (auditable working)
Consumption and phase reconciliation
The tariff-band series used by the arbitrage calculation averages 22.3 kWh/day:
| Band | kWh/day | Average kW |
|---|---|---|
| Off-peak (00:00–06:00) | 3.6 | 0.60 |
| Shoulder (06:00–18:00) | 10.5 | 0.88 |
| Peak (18:00–24:00) | 8.2 | 1.36 |
A separate per-phase summary of meter_100 totals 21.3 kWh/day: L1 10.3, L2 5.2, and L3 5.8 kWh/day (approximately 48 / 24 / 27 percent of that series). The listed customer meters total approximately 20.8 kWh/day: L1 10.4, L2 5.1, and L3 5.3 kWh/day.
[!warning] Reconciliation required
The three summaries do not currently reconcile. The banded series is 1.0 kWh/day above the per-phase aggregate, while the listed customer meters are about 0.5 kWh/day below the per-phase aggregate. The most likely categories are differing timestamps or coverage windows, unmetered common load, technical losses, and rounding, but the source extracts must be aligned before attributing the gaps. The published arbitrage result uses the 22.3 kWh/day tariff-band series; retain this as a scoped estimate until the interval coverage is reconciled.
Indicative customer-to-phase mapping
| Phase | meter_100 (kWh/day) | Listed customer meters (kWh/day) |
|---|---|---|
| L1 | 10.3 | 002 (5.7), 003 (4.5), 008 (0.1), 011 (0.1): total ~10.4 |
| L2 | 5.2 | 009 (2.3), 007 (1.6), 010 (1.2): total ~5.1 |
| L3 | 5.8 | 006 (2.7), 005 (2.1), 004 (0.5): total ~5.3 |
Voltage matching suggests the mapping above, but it should remain labelled indicative until validated against wiring records or a controlled load test. The concentration of customers 002 and 003 on L1 indicates a possible phase-balancing and power-quality issue.
[!warning] Three-phase operating assumption
The economic model currently treats the battery as able to offset aggregate three-phase imports. Before operational deployment, confirm both (a) whether the SRNE inverter supports sufficiently asymmetric per-phase discharge and (b) how the utility meter nets simultaneous imports and exports across phases. If output must remain balanced while load is unbalanced, or if billing does not net phases as assumed, realizable savings may be lower. Phase-level power limits should then be added to the dispatch model.
Step by step
- Tag every 15-minute interval as off-peak / shoulder / peak.
- Baseline (no battery): each kWh costs its band price.
- Off-peak (00-06): charge the battery from the grid at 429.7 UGX/kWh, respecting the reserve floor, the 8.9 kWh usable cap, and 90 percent round-trip.
- Peak (18-24): discharge to cover load instead of buying at 666.5 UGX/kWh, down to the reserve floor.
- Shoulder: idle.
- Saving = baseline cost minus arbitrage cost, annualised.
The margin, and why round-trip efficiency matters
A battery is not a perfect bucket: energy makes a round trip (grid to battery to load) and loses about 10 percent to heat. 90 percent round-trip means to get 1 kWh back out you must put about 1.11 kWh in (1 divided by 0.9).
So, per 1 kWh delivered during peak:
- Charging cost: 1.11 kWh x 429.7 = about 477 UGX (this is the off-peak price grossed up for the loss, i.e. 429.7 / 0.9).
- Avoided peak purchase: 1 kWh x 666.5 = 666.5 UGX.
- Gross margin = 666.5 - 429.7/0.9 = about 189 UGX/kWh.
The raw price spread is 666.5 - 429.7 = 237 UGX/kWh; the round-trip loss consumes about 48 UGX/kWh, leaving approximately 189 UGX per delivered kWh. This is a gross margin before marginal battery wear. The daily theoretical energy cap is the smaller of peak demand and 8.9 x (1 - reserve) kWh; actual interval-by-interval dispatch is lower whenever state of charge, timing, load availability, or control constraints prevent use of that full cap.
Reconciliation of the monthly results
At a gross margin of about 189 UGX/kWh and 30.4 days per average month, the reported savings imply the following average delivered shift:
| Reserve scenario | Theoretical daily cap | Reported gross saving/month | Implied delivered shift |
|---|---|---|---|
| 0 percent | min(8.2 peak load, 8.9 battery) = 8.2 kWh/day | 39,600 UGX | ~6.9 kWh/day |
| 30 percent | min(8.2, 6.23) = 6.23 kWh/day | 29,900 UGX | ~5.2 kWh/day |
| 50 percent | min(8.2, 4.45) = 4.45 kWh/day | 21,700 UGX | ~3.8 kWh/day |
The difference between the theoretical caps and implied shifts reflects interval mismatch and dispatch availability rather than a second tariff adjustment: the battery cannot always discharge its entire allowance exactly when peak load is present. These figures should be regenerated after the load-series reconciliation and three-phase constraints are resolved.
Gross value of the existing asset
No new capital is invested because the battery is already owned, so an incremental IRR or payback is not meaningful. The modeled 20-year discounted gross bill-saving value before monetized battery wear is about 1.9M UGX at 15 percent (2.6M at 10 percent and 1.3M at 25 percent). Capacity fade reduces available arbitrage over time, but the stated values do not deduct an explicit UGX-per-kWh marginal degradation cost. They must not be presented as net economic value until that cost is estimated.
Incremental value from sunk hardware
Although there is no incremental capex, cycling consumes a slice of the battery's finite life, creating a real marginal degradation and opportunity cost per kWh delivered. On the compressed current spread that cost is no longer negligible relative to the ~189 UGX/kWh gross margin. The economically correct rule is therefore not "arbitrage whenever there is a price spread" but:
Arbitrage only when the tariff spread is large enough to beat the marginal degradation cost and still leave the required backup reserve.
That makes optimal arbitrage a Microgrid OS control problem (net of losses and degradation, subject to reserve), not a fixed inverter setting.
What it means
- Arbitrage alone produces about 22,000 to 40,000 UGX/month in gross bill savings before monetized wear (6 to 11 percent of the bill). Net economic value will be lower.
- A 50 percent reserve scenario roughly halves gross savings versus zero reserve. No service-life guarantee follows from cycle frequency alone: calendar aging, temperature, depth of discharge, charge rate, warranty terms, and operating conditions also determine life.
- Strategic read: arbitrage is a minor ancillary benefit, not the money story. Solar is (see the Solar Plus Battery Economic Case, where 4 kWp offsets ~55 percent of the bill at ~48 percent IRR).
Battery aging over 20 years
Because this case is entirely battery-dependent, it is the most exposed to aging: with capacity fading to 50 percent by year 20, the 30-percent-reserve saving roughly halves over the horizon. Pairing the battery with solar makes the income far less sensitive to aging.

See also Optimal Solar and Battery Allocation and Battery Price Break-Even.
Assumptions and exclusions
| Item | Treatment in this scoping case |
|---|---|
| Tariff | Q3 2026 Code 10.2 time-of-use energy rates; configurable with effective dates |
| Fixed monthly service charge | Excluded because battery dispatch cannot avoid it |
| Taxes and tariff riders | Not separately modeled; confirm whether quoted rates are the complete avoidable energy charge |
| Round-trip losses | Included through a 90 percent round-trip-efficiency assumption |
| Other inverter and auxiliary consumption | Not separately itemized beyond the round-trip assumption |
| Capacity fade | Included in the long-horizon stream by fading usable capacity to 50 percent by year 20 |
| Marginal degradation cost | Acknowledged but not monetized or deducted from reported gross savings |
| Forecast and control error | Not modeled; the current policy is greedy rather than forecast-optimized |
| Backup value | Not monetized; represented only through reserve scenarios |
| Three-phase constraints | Aggregate netting assumed; inverter asymmetry and meter netting require validation |
Caveats
This is a scoping result, not a dispatch guarantee. A forecast-driven, degradation-aware controller may cycle less often but should target higher net value. The fixed monthly service charge is not avoidable. The battery's primary role is backup, so reserve should be selected from critical-load and outage-duration requirements rather than described as inherently “safe.” Re-run the case after reconciling the source series, validating three-phase behavior, and assigning a defensible marginal wear cost.