TNB Bukan Domestik ToU, explained for C&I sites.
Most Malaysian factory bills hide one dominant line: the Maximum Demand charge at RM 97.06/kW: set by a single 30-minute spike, for the whole month. Here's how the tariff works, and a calculator to size the saving.
One 30-minute spike sets the whole month. Here's the shave.
The two-part bill
TNB's Medium Voltage Time-of-Use tariff for non-domestic customers bills industrial sites on two completely different bases. Most operators see only the kWh line and assume that's the bill. It isn't.
Pays for energy used (kWh). Lower per-kWh rate off-peak.
| Window | Rate |
|---|---|
| Peak 14:00 → 22:00 | RM 0.3132 /kWh |
| Off-peak 22:00 → 14:00 | RM 0.2723 /kWh |
Δ RM 0.0409 / kWh arbitrage opportunity when energy is time-shifted from peak to off-peak.
Pays for the highest 30-min average kW recorded in the peak window for the month.
| Charge | Rate |
|---|---|
| Capacity (Kapasiti) | RM 30.19 /kW |
| Network (Caj Rangkaian) | RM 66.87 /kW |
| Total MD | RM 97.06 /kW |
One 30-min spike sets the MD charge for the entire month.
Why MD dominates the bill
Take a real Peninsular extrusion plant we recently studied. The TNB invoice for one sample month came in at RM 151,501.61 (Caj Semasa). Decompose it and you find:
- Energy (kWh): a function of how many hours you run and at what load. Tied to production. You optimise it with energy efficiency.
- Maximum Demand (kW): a function of your worst 30-minute spike during 14:00–22:00. A single restart, a single furnace warm-up, a single 22:00 changeover can set this number. You optimise it with battery storage.
For sites with spiky load profiles, the MD line item routinely lands at 30–45% of the total monthly bill. A modest 100 kW spike shave saves RM 9,706/month or RM 116,472/year, with zero impact on production output.
The 30-minute rule
TNB averages your load over each 30-minute window and bills the highest one in the peak period as your MD. A brief spike gets averaged down; a spike that fills a full 30-minute window sets the charge. BESS dispatch is built around this.
What a BESS actually does
A battery energy storage system parked on your site does two distinct jobs under TNB Bukan Domestik ToU. Both jobs run from the same hardware, scheduled by the same EMS:
- MD shaving (the big one): when load approaches your monthly MD target, the BESS discharges to top up the gap, holding the meter reading at or below target. The shave only needs to last as long as the spike, typically 30–120 minutes.
- Energy arbitrage (the secondary one): the BESS charges from the grid during off-peak hours (22:00–14:00) at RM 0.2723/kWh and discharges during peak hours, displacing RM 0.3132/kWh consumption. Δ RM 0.0409/kWh times the round-trip-efficiency-adjusted volume.
For most C&I sites, MD shaving captures 80–90% of the total saving. Energy arbitrage is the rest. Both compound; you size the system to do MD shaving and arbitrage falls out essentially for free.
Estimate the saving
Quick first-cut sizing. Punch in your client's current MD and target MD; we calculate the monthly and annual MD saving at the RM 97.06/kW rate. A real sizing study uses 15-minute interval data over 45+ days, but this gets you to a credible first number.
Indicative only. Excludes O&M, station load, AFA fluctuations, degradation impact, and assumes the target MD is achievable given load profile and BESS sizing. A UniBess sizing study uses 15-min interval data to validate.
Where this goes wrong
Three failure modes we see often in proposals from less experienced vendors:
Undersized BESS, oversold savings. The BESS runs out of energy before the spike ends, MD reverts to its pre-BESS level, and the monthly bill barely moves. Always verify the BESS has enough energy (kWh) to cover the worst observed spike profile, not just enough power (kW).
Wrong target MD. Setting the cap too low forces the BESS to discharge constantly, depletes SoC before the real spike, and misses the MD event. The right target is set against the 15-min interval data, not against an aspirational kW number.
Ignored baseload. Some sites have load patterns that simply can't be shaved (e.g. continuous casting). MD reduction depends on having a spiky load profile. The first step in every honest sizing study is the load curve, before any hardware is quoted.
Want a real sizing study on a specific site?
Send us the TNB invoices (any 3 months) and we'll respond within one business day with a first-cut MD reduction estimate and an indicative BESS configuration. Free, no commitment.