Owner: CEO (Claude Desktop). Reviewed by: CTO (Claude Code). Version: v1 — June 24, 2026. Companion file:
business-plan-zh.md(Chinese). Reads alongsidetech-assessment.md,market-research.md,decisions.md,CLAUDE.md.
The CTO's tech-assessment.md is correct that standalone Guangdong energy arbitrage loses money (−25,299 CNY over 120 days with the ML forecast; payback never; daily spread ~0.19 CNY/kWh is too thin to cover round-trip losses + degradation).
This plan does not contradict that — it changes the business model. Project Brody is not an arbitrage fund. We sell a managed transition service into Guangdong's new 15-minute spot market, capture demand-charge savings, and aggregate customers into a Virtual Power Plant (VPP). Arbitrage is, at most, late-stage upside — never the foundation. Where the CTO recommends Visayas for arbitrage economics, this plan recommends Guangdong for the transition→VPP wedge, and treats Visayas / other China provinces as later optionality. This disagreement is flagged for the founder to adjudicate (see §13 and Pending Decisions).
Guangdong is forcing its commercial & industrial (C&I) electricity users out of stable flat / time-of-use tariffs and into a market priced on 15-minute spot intervals. Most of these customers have no in-house capability to understand, hedge, or optimize against this volatility — and the retailers (售电公司) meant to shield them mostly cannot do it either.
Project Brody's wedge is to be the capability layer for this forced transition: software + managed service that lets a C&I customer move into the spot market without getting hurt. We land customers during the migration, take over the optimization of their consumption and on-site assets, then aggregate their flexible load and storage into a VPP that participates directly in energy, ancillary-service and demand-response markets.
The endgame is the VPP; the entry point is the pain of transition.
Why this beats a trading-algorithm pitch: - Regulatory urgency sells. Customers must act on a deadline, not a "nice-to-have." - Revenue starts before the hardest tech is proven. Transition advisory + bill optimization earn money without a world-beating price model. - The moat is the customer book + aggregated controllable capacity + market standing — not a better algorithm. These compound and create switching costs.
China's reform is abolishing the regulated retail tariff for C&I users in spot-active provinces and pushing real-time price signals to the end user. Guangdong's spot market has run officially since end-2023 and clears on 15-minute locational prices.
The migration is large and mostly not yet done — which is the opportunity:
| Signal | Implication |
|---|---|
| ~88% of Guangdong's signed C&I volume is still on fixed-price / TOU contracts, not real-time spot | A huge base remains un-migrated; the land-grab window is open now |
| 10kV+ users and industrial users ≥ 5 GWh/yr are pushed into direct participation; smaller users default to grid agency purchasing (代理购电) | A clear "must-act" segment at the top, a long tail below |
| Even agency-purchase users are increasingly settled against spot allocation costs + peak/valley ratios | Volatility exposure reaches well beyond the largest users |
| ~313 售电公司 in Guangdong (end-2023), ~85% small independents, documented as weak on price forecasting and risk management | The intended "shield" layer is itself a customer/partner for capability |
Guangdong is also the densest C&I region on earth (Pearl River Delta), and the CTO already holds 2 years of real Guangdong spot data + 29 real C&I load profiles.
Moving from a predictable tariff to 15-minute spot pricing creates problems a factory has never had to manage: - Bill uncertainty — monthly cost now swings with wholesale volatility (spikes; negative midday prices). - Contract decisions — how much to lock in medium/long-term vs leave on spot, at what ratio, with deviation penalties (偏差考核) if they get it wrong. - Operational blind spots — which loads to shift, when, and what it saves; demand charges (32 CNY/kVA/month) remain a large separate cost. - No talent — the "power-trading + storage-operations" composite team does not exist in a typical C&I business, and is scarce even among retailers.
Brody removes this burden: the customer keeps running their business; we manage their market exposure and optimize their consumption and assets.
| Stage | What we deliver | Why the customer pays |
|---|---|---|
| 1. Transition & EMS | Bill simulation under 15-min spot; contract/hedge what-if; exposure dashboard; managed market participation; demand-charge & load-shift advice | Avoids bill shock and deviation penalties; turns an unmanaged risk into a managed cost. Earns revenue without a best-in-class forecaster |
| 2. Asset operation | Deploy / contract on-site BESS + controllable loads; optimize charge/discharge + load scheduling against spot + demand charge | Hard CNY savings + new revenue from the asset; we run what they can't |
| 3. VPP | Aggregate the installed base of flexible load + storage; bid into energy, ancillary services, demand response as one dispatchable portfolio | Scale unlocks market revenue + dispatch compensation unavailable to any single small site |
Stages 2–3 are where the existing codebase (BESS optimizer, backtester, market adapters, data pipeline, forecaster v1) becomes the engine. Stage 1 is a new, customer-facing product that does not yet exist in the repo (see §11) — and it is lighter to build than the full agentic trader.
| Requirement | Detail |
|---|---|
| Operator qualification | Register → completeness + hardware/software-system review → grid-connection commissioning + security test. Energy (spot) trading requires 售电公司 qualification; demand-response only does not |
| Capacity threshold | Spot energy: VPP > 1MW/1h; demand response: > 5MW/1h (not high — easily met) |
| Unit types (load-side) | Day-ahead-response (spot + DR), hour-response (DR only), direct-control (spot + DR, dispatch can control directly); generation-side aggregates resources with independent grid interconnection |
| Capability test | Load-side units must pass an adjustable-capability test (可调节能力测试), CNAS/CMA third-party report |
| Aggregation contracts | Sign a resource-agency contract (资源代理合同) with each user/asset; aggregated resources cannot trade independently; declare unit name, type, products, resource list |
| Node constraint (key) | All resources in one spot trading unit must sit at the same spot clearing node (220kV+ bus). Per node, one operator may register 1 day-ahead-response + 1 direct-control + 1 generation unit |
| Telemetry / security | (Esp. direct-control / generation) smart comms gateway, vertical encryption, dispatch phone + recording, dispatch data network; data-completeness ≥99%, device-online ≥99%; real-time monitoring via dispatch automation |
| Bidding | Generation-side spot uses "report-quantity-and-price" + a 96-point short/ultra-short power-forecast curve |
| Stage | Revenue mechanism | Character |
|---|---|---|
| 1 | SaaS subscription per site + onboarding/setup fee; optional savings-share on bill reduction; managed-service fee for market participation | Recurring, software-margin, low capital |
| 2 | Optimization/O&M fee + share of arbitrage and demand-charge savings; EMC / capacity-lease for deployed storage | Higher value per site; some capital / financing partner |
| 3 | Share of VPP market revenue + dispatch/demand-response compensation; platform take-rate across aggregated assets | Scale economics; the long-term profit engine |
Progression: high-margin software (1) → asset-linked value (2) → scaled market-facing platform (3), each deepening switching costs. Indicative pricing to be set in a financial model (see CTO Questions / Pending Decisions).
Prioritize by acuteness of pain × ease of landing × value of flexibility.
A. Large flexible-load C&I forced into direct participation (primary beachhead). 10kV+ / ≥5 GWh/yr sites with shiftable load: cold-chain / cold storage, ice plants, water treatment & pumping, electroplating / printing-dyeing (印染) parks, plastics injection, building materials, data centers (IDC), EV charging / battery-swap operators.
B. Industrial parks (园区) — the aggregation accelerant. One park = one sales motion → many tenants and a natural VPP node with co-located load + storage at the same clearing node. Compresses CAC and seeds Stage-3 capacity simultaneously. Highest-leverage entry point.
C. Existing C&I storage (工商储) owners. Large installed base; owners explicitly short on dispatch/trading capability and shifting from arbitrage to "asset operation." Map directly onto Stage 2 + the current codebase (subject to the §5.4 lock-in checks).
D. Small/medium 售电公司 — a B2B channel. ~265 small independents have customers + license but lack capability. White-label forecasting / risk / trading-as-a-service = fastest reach (one sale = a book). See §8 for the competitive nuance.
Recommended beachhead: PRD industrial parks + flexible-load large C&I (A+B) in Dongguan / Foshan / Shenzhen, with a parallel B2B pilot with one or two small retailers (D). The repo already holds real load profiles for Foshan, Guangzhou, Huizhou, Jiangmen, Shenzhen and Zhongshan companies — these are the target archetypes and a head start for product + targeting.
Can retailers trade themselves? Legally yes; in practice most cannot. ~313 Guangdong retailers (~85% small independents); the industry's own diagnosis: insufficient spot price-forecasting ability, no multi-scenario strategy, no storage dispatch, exposed to deviation penalties. The published advice to them is to "build or buy" a forecasting / support system. That gap is our opening.
Retailers are three things to us at once:
| Role | How we treat them |
|---|---|
| Competitor | For the direct C&I relationship — but most compete only on price/channel, not capability. We win on optimization, storage, VPP upside |
| Customer | Sell them the capability layer (forecasting, risk, trading-as-a-service). Fast B2B revenue; they bring the customer book |
| Partner / acquisition | A retail license + book is a shortcut to the 售电 qualification we need anyway for VPP energy trading |
Other competitors: genco-/grid-backed retailers & large energy groups (the minority building real trading teams — the serious long-term rivals); EMS / C&I storage integrators (strong hardware, weak market optimization + aggregation); global analogues (Fluence Mosaic, Habitat, Gridmatic — validate the model, not localized to Guangdong rules/data/relationships).
| Capability | Status in repo | Stage it serves |
|---|---|---|
| BESS optimizer + backtester + market adapters + Parquet pipeline | Built; solid architecture | Stages 2–3 |
| ML price/load forecaster | v1 trained (LightGBM; price MAE 0.041 CNY/kWh ≈ 12.5% of mean); not yet validated vs naive baselines; no weather features | Improves all stages; critical for 3 |
| Demand-charge optimization | Coded in objective; needs validation on real load profiles | Stage 1–2 (near-term revenue) |
| Customer-facing transition product (bill sim, contract/hedge what-if, exposure dashboard) | Does not exist | Stage 1 — the revenue wedge |
| Direct-control / telemetry / dispatch + security stack | Not started | Stage 3 VPP (direct-control unit) |
| Aggregation platform (multi-site, same-node, 96-point forecast, capability test) | Not started | Stage 3 VPP |
Implication: the engine for later stages is largely in place; the Stage-1 wedge product that earns first revenue is the main build gap.
12-month 1. 0–3 mo: ship Stage-1 transition product MVP (bill simulation + exposure dashboard); sign 3–5 design-partner sites (parks / flexible C&I); validate forecaster vs naive baselines on real Guangdong data; prove demand-charge savings on real load profiles; scope the 售电 license path (build/partner/acquire). 2. 3–6 mo: convert pilots to paid SaaS; deploy first storage + controls under management (greenfield, open-protocol); begin demand-response participation (no 售电 qualification needed) to learn dispatch. 3. 6–12 mo: secure 售电 qualification (partner/acquire); aggregate first same-node cluster; pass the capability test; register a day-ahead-response VPP unit; first spot-market participation.
24-month 4. 12–24 mo: move to direct-control VPP on our own/controllable assets; expand to multiple parks; harden the agentic dispatch + risk layer; begin adapter-based expansion scoping for Shandong / Shanxi.
(These align with CTO timeline Phases A–D in tech-assessment.md, recast for the transition→VPP business.)
| Risk | Mitigation |
|---|---|
| Market choice — CTO models Guangdong arbitrage as unviable | Our model is not arbitrage; lead with transition service + demand charge + VPP. Founder to ratify Guangdong vs Visayas (Rule 5) |
| Licensing is the real gate | Treat 售电 / aggregator standing as a Day-1 workstream; partner or acquire to shortcut |
| Pain is duller for small agency-purchase users | Aim first at forced-participation large C&I + parks who must act |
| Existing BESS locked by manufacturer/integrator | Prefer customer-owned/open-protocol + greenfield; use day-ahead-response where direct control unattainable |
| Genco-/grid-backed rivals build capability | Move fast on the land-grab; differentiate on storage + VPP, not retail price |
| VPP needs capital for controllable assets | EMC / financing partners for storage capex |
| Per-province rule volatility | Adapter architecture + dedicated rule-tracking function; turn into a moat |
| Composite talent scarce | The scarcity that creates the opportunity is also our hiring risk — prioritize the founding power-trading + storage-ops team |
| Forecasting edge unproven | Validate vs naive baselines before the trading narrative carries weight; Stage-1 revenue does not depend on it |
CTO concurrence: YES on all four. Rationale:
Guangdong first is correct — not because arbitrage works (it doesn't), but because the transition→VPP wedge is a better business than pure trading. The CTO's earlier "lead with Visayas" recommendation was based on arbitrage economics; the CEO's model does not depend on arbitrage and is stronger. Demand-charge savings alone (6,400 CNY/month per 200 kW BESS) provide a floor that doesn't exist in Visayas.
Behind-the-meter C&I is correct — we own the relationship, the data, and the asset control. B2B-to-retailer would give us reach but not the controllable capacity that compounds into a VPP.
Sequence is correct — the demand-charge savings in Stage 1-2 require no forecasting edge and no license. Revenue starts before the hardest tech is proven, exactly as the CEO argues.
Partner/acquire for licensing is correct — the 售电 qualification gates VPP energy trading. A retail license + customer book is worth more than the same capital spent on software.
These four decisions are now confirmed and can be moved to decisions.md.
Ran the comparison on 29 out-of-sample validation days (Guangdong DA price, last 30 days of data). Results:
| Method | MAE (CNY/kWh) | RMSE | vs ML |
|---|---|---|---|
| ML (LightGBM v1) | 0.0406 | 0.0504 | baseline |
| Persistence | 0.0363 | 0.0468 | −10.5% (better) |
| Seasonal-naive | 0.0395 | 0.0470 | −2.6% (better) |
The v1 ML model loses to simple persistence. The best forecast of tomorrow's Guangdong DA price is "same as the last known price." This is not an ML failure — it's a market signal: Guangdong 2024-2025 prices are so flat that persistences wins. The ML model with 72 features is overfitting to noise.
This actually supports the CEO's thesis: if naive methods already produce usable forecasts, then Stage-1 transition tools don't need a world-beating model. The ML edge will come from: (a) adding weather/system-load features not yet in v1, (b) switching to Visayas or a higher-volatility regime where persistence fails, (c) predicting not just mean but the full distribution for risk management.
Backtest profit impact: Since persistence beats ML on MAE, the ML-forecast backtest (−25,299 CNY) would be slightly worse than a persistence-forecast backtest. Both lose money because the underlying spread is too thin. The demand-charge savings (Q3) are independent of forecast quality.
CTO recommendation: Ship v1 forecaster as-is for Stage 1 (bill simulation). The MAE is adequate for exposure dashboards and what-if scenarios. For Stage 2-3 where profit depends on forecast edge, prioritize: weather features, multi-market training, and probabilistic calibration.
What's reusable from the current codebase:
| Component | Reuse % | Notes |
|---|---|---|
brody/data/storage.py |
100% | Parquet pipeline already handles hourly data ingestion |
brody/data/features.py |
80% | Price/load features, temporal encodings — ready for bill sim |
brody/markets/guangdong.py |
100% | LT contract blending, demand charge, spot cap/floor — exact rules needed |
brody/core/forecaster.py |
100% | v1 model + persistence fallback works for exposure dashboards |
brody/data/ingest/guangdong_ieee.py |
90% | Already loads 15-min and hourly data |
| 29 C&I load profiles | 100% | Real data for demos and product validation |
What's net-new:
| Component | Effort | Notes |
|---|---|---|
| 15-min bill simulator | 1 week | Extend hourly model to 15-min. Market adapter already handles intervals. |
| Contract/hedge what-if engine | 1 week | Wrap the optimizer in a parameter-sweep mode: vary LT ratio, contract price, PV size |
| Exposure dashboard | 2 weeks | Streamlit or FastAPI+React. Show: daily cost, peak exposure, demand charge trajectory, what-if scenarios |
| Customer-facing UI | 2-3 weeks | Simple web app — no mobile needed for MVP |
| Customer data onboarding | 1 week | CSV/API import for customer load data + smart meter data |
MVP timeline: 4-6 weeks for a working Stage-1 product that can be demoed to design partners. This assumes one full-stack developer. The core computation (bill simulation, what-if) is already working in Python — the UI is the main new work.
CTO recommendation: Build the Stage-1 MVP in Python/Streamlit first (fastest path to demo). The backend computation reuses brody/ directly. Target: 4 weeks to a demo with Jiangmen/Foshan load profiles showing bill simulation + demand charge savings + contract what-if.
The optimizer's demand-charge term is active and fixed (32 CNY/kVA/month, amortized as 32/30 per day in the objective).
Measured on real C&I load profiles with a 200 kW BESS doing pure peak shaving:
| Company | Avg Load (kW) | Peak (kW) | Monthly DC (CNY) | DC with BESS | Save/mo | Save % |
|---|---|---|---|---|---|---|
| Foshan | 160 | 363 | 11,626 | 5,226 | 6,400 | 55.1% |
| Guangzhou | 478 | 1,217 | 38,949 | 32,549 | 6,400 | 16.4% |
| Jiangmen | 498 | 857 | 27,439 | 21,039 | 6,400 | 23.3% |
| Shenzhen4 | 1,383 | 4,182 | 133,812 | 127,412 | 6,400 | 4.8% |
| Shenzhen9 | 5,276 | 9,698 | 310,329 | 303,929 | 6,400 | 2.1% |
Key finding: A 200 kW BESS saves exactly 6,400 CNY/month in demand charges for EVERY site (200 kW × 32 CNY/kVA). This is independent of spot arbitrage — it's pure peak clipping. Annual: 76,800 CNY/year.
Economics by site size: - Small (Foshan-class, ~200 kW avg): BESS pays back on demand charge alone in 4.3 years. Perfect beachhead. - Medium (Jiangmen-class, ~500 kW avg): Demand charge savings + load shifting = viable. Larger BESS (500 kW) captures more. - Large (Shenzhen9, ~5 MW): 200 kW BESS is too small. Need 1-2 MW to make a dent. But the absolute savings opportunity is huge.
CTO recommendation: Lead Stage-1 sales with demand-charge savings as the primary quantifiable benefit. It's guaranteed (peak shaving always works), requires no forecasting, and the math is simple enough for a factory owner to understand. Quote 6,400 CNY/month/kW-of-BESS as the floor.
Current state: The optimizer runs hourly, not sub-hourly. No dispatch loop, no setpoint tracking.
What's needed for 15-min / 5-min dispatch:
| Layer | Effort | Notes |
|---|---|---|
| Sub-hourly optimizer | 2 weeks | Change dt from 1.0 to 0.25 (15-min) or 0.083 (5-min). LP solver handles it. |
| Real-time dispatch loop | 2 weeks | State machine: observe → forecast → optimize → setpoint → wait → repeat |
| Setpoint tracking | 1 week | PID or deadband controller to match actual power to scheduled power |
| Telemetry (≥99% uptime) | 3-4 weeks | Redundant comms, heartbeat, fail-safe to local controller |
| 调度数据网 (dispatch network) | Unknown | Requires coordination with grid operator. Not a software problem — a regulatory one. |
| Vertical encryption | 2-3 weeks | TLS + IEC 62351. Usually handled by gateway hardware. |
| Dispatch phone + recording | 1 week | VOIP integration. |
Total effort: 8-12 weeks for a dispatch-grade control stack. This is Stage-3 work and should not block Stage 1-2.
CTO recommendation: Start with day-ahead-response VPP unit (no real-time dispatch requirement, per §5.3 of the business plan). Defer direct-control to Stage 3. The day-ahead pathway needs only the 96-point forecast curve, not real-time telemetry.
Protocol landscape (Chinese C&I BESS market):
| Protocol | Openness | Common on |
|---|---|---|
| Modbus TCP | Open — well-documented, Python libraries exist (pymodbus) |
Most Chinese PCS (Sungrow, Sinexcel, Kehua, Sofar) |
| IEC 61850 / IEC 104 | Open standard — used by grid operators | Grid-scale PCS, less common on small C&I |
| MQTT | Open — easy to integrate | Newer IoT-enabled EMS platforms |
| CAN bus | Open protocol, closed data format — need manufacturer DBC file | Many BMS units |
| Manufacturer cloud API | Closed — proprietary, can change without notice | Hyperstrong, GoodWe, some Huawei |
Chinese C&I BESS brands by openness:
| Brand | PCS Protocol | EMS Openness | Verdict |
|---|---|---|---|
| Sungrow (阳光电源) | Modbus TCP | Semi-open — documented but needs NDA | Integrable |
| Sinexcel (盛弘) | Modbus TCP | Open — well-documented | Best for integration |
| Kehua (科华) | Modbus TCP | Semi-open | Integrable |
| Sofar (首航) | Modbus TCP | Open | Integrable |
| Hyperstrong (海博思创) | Cloud API + CAN | Closed — requires their cloud | Locked |
| GoodWe (固德威) | Modbus + cloud | Closed — cloud-dependent | Partially locked |
| Huawei (华为) | Modbus + FusionSolar API | Closed — Huawei ecosystem | Locked |
| CATL (宁德时代) | CAN + proprietary | Closed (OEM only) | Locked |
Integration approach: For our own deployments, specify Sinexcel or Sungrow PCS with Modbus TCP from day one. The pymodbus Python library gives us read/write access to charge/discharge setpoints, SOC, and alarms in ~200 lines of code.
For existing locked BESS: Day-ahead-response VPP unit doesn't need direct control. We can still optimize and send schedules to the customer (or their EMS). The capability test (§5.3) can be passed with customer cooperation even without direct control.
CTO recommendation: Build a Modbus TCP integration module now (1 week). It's the standard interface and works with the majority of Chinese PCS. Avoid cloud-locked brands. For the Stage-1 product, direct control isn't needed — the bill simulation and what-if tools work with meter data alone.
What we can reuse:
| VPP Requirement | Current State | Gap |
|---|---|---|
| Multi-site optimization | Not built. Optimizer is single-site. | Need multi-battery, multi-load formulation |
| Same-node aggregation | Not built | Need site-to-node mapping, load summation |
| 96-point forecast curve | Partially built. Forecaster does 24h. 96-point = 15-min × 24h = same horizon count. | Train on 15-min data instead of hourly |
| Capability test support | Not built | Need to simulate "reduce load by X MW in Y minutes" |
| Resource-agency contracts | Not built — this is legal, not code | Document management, not software |
Missing and effort:
| Component | Effort | Notes |
|---|---|---|
| Multi-site optimizer | 2-3 weeks | Extend LP to N batteries, shared node constraints |
| 96-point forecaster | 1 week | Retrain on 15-min data (already have it from IEEE DataPort) |
| Capability test simulator | 1 week | Simulate: "can the VPP reduce 1 MW in 15 minutes?" |
| Node aggregation logic | 1 week | Map sites to 220kV nodes, sum capacity, check thresholds |
| Aggregation dashboard | 2 weeks | Show all sites, total capacity, available flexibility |
Total: 6-8 weeks for a working VPP aggregation prototype.
CTO recommendation: VPP aggregation is Stage-3 work. Don't build it now. But architect the multi-site capability from the start — the optimizer's LP formulation should accept a list of batteries (not hardcode a single one). This is a small refactor now that saves a rewrite later.
Using our 29 real C&I load profiles:
| Threshold | Requirement | What it takes |
|---|---|---|
| Spot energy: >1 MW / 1h | One 500 kW BESS + 2-3 medium factories (Jiangmen-class, ~500 kW each) with 15% flexible load | 500 + (3 × 75) = 725 kW → need 1-2 more sites or a 1 MW BESS |
| Demand Response: >5 MW / 1h | One industrial park with 5-8 medium factories + 1-2 MW of BESS | 2,000 + (6 × 500) = 5,000 kW → achievable at one 220kV node in PRD |
Concrete example — Dongguan node: - Take 5 Jiangmen-class factories at one node: 5 × 500 kW avg = 2,500 kW load - 15% flexible = 375 kW shiftable - Add 1 MW BESS: total controllable = 1,375 kW - Clears 1 MW spot threshold easily - For 5 MW DR: need 15-20 factories or 3-5 industrial parks at same node
Feasibility by city (from our data):
| City | Companies in data | Total avg load | Clears 1 MW spot? | Clears 5 MW DR? |
|---|---|---|---|---|
| Shenzhen | 24 companies | ~25 MW | Yes (any 2-3) | Yes (any 10-15 at one node) |
| Foshan | 1 company | 160 kW | No (need more) | No |
| Guangzhou | 1 company | 478 kW | With BESS | No |
| Jiangmen | 1 company | 498 kW | With BESS | No |
| Huizhou | 2 companies | ~300 kW | With BESS | No |
The VPP play works best in Shenzhen and Dongguan — highest factory density, many sites at the same 220kV node. One industrial park in Dongguan with 8-10 tenants easily clears both thresholds.
CTO recommendation: Target industrial parks in Dongguan / Shenzhen as VPP aggregation nodes (as the CEO already proposes in §7). The math works: 1 park = 5-10 factories = 2-5 MW controllable load = clears both spot and DR thresholds.