Data overview — 13 charts the IC actually wants to see
This is the visual answer to “where do your numbers come from and does it work?”. Four sections: data foundation, physical evidence, commercial economics, risk & strategy. Every chart is computed live from Cloudflare D1 or reads a published report JSON.
All charts are interactive: drag the bottom slider, scroll to zoom, hover for exact values.
I. Data foundation
~470k rows ingested across 7 public sources
Each bar = one ingest run. NASA POWER dominates because it's 9 grid points × 5 years of hourly data.
Synthesised Johor hourly load — weekday afternoon peak, ETOU window 14–22
From 39,424 hourly rows. Blue solid = weekday, grey dashed = weekend. Orange band = TNB ETOU peak window.
Monthly load 2020–2024 — data-center commissioning signal
5y synthesised Johor monthly load (TWh). Drag the bottom slider to zoom; 2024 H1 step-up consistent with JS-SEZ DC commissioning.
Load duration curve — peaks happen rarely but drive BESS value
5-year synthesised load sorted descending. Scroll-zoom to inspect percentile bands; peak and median annotated.
II. Physical evidence
Global horizontal irradiance — peak at noon, monsoon dip Nov–Jan
12-month × 24-hour matrix. Drag the colour scale on the right to adjust the threshold.
PV output vs cooling load — 14–18 hr double-peak overlap (BTM PV value window)
Weekday hourly load (blue, left axis) overlaid on mean GHI (orange, right axis). Orange band = ETOU peak window.
Hot hours = high load — the cooling-CDH coupling that drives BTM PV value
~1,100-hour deterministic sample, coloured by ETOU peak. Use the brush tools (top right) to box-select a subset.
III. Commercial economics
Stacked NPV — recommended structure +293 M (no BESS)
BTM avoided cost + carbon attributes + 24/7 CFE premium + BESS (deferred). BESS is structurally negative at current capex; carbon contribution is 2.5× BTM.
Carbon NPV is non-linear in carbon price — hyperscaler internal price is the inflection
BCX 35 → SG 85 → 230 → hyperscaler 460 RM/tCO₂. Dashed line = BTM-only baseline +83 M.
PPA pricing band tightens with target IRR — only carbon-stacked clears at 15%+
Red = developer floor; grey dashed = vanilla ceiling; green = bundled ceiling. Once floor crosses vanilla ceiling, kWh-only PPA is infeasible.
IV. Risk & strategy
Stress test A→G — the IC's actual downside concern
From A (marketing case) to G (worst credible). Colour-graded: green = safe, amber = thin, red = fails.
Sensitivity tornado — which assumptions move NPV most?
BESS capex dominates (370 M range), ICPT #2 (130 M), PV capex #3 (84 M). Top 10 ranked.
BESS trigger heatmap — when does BESS flip positive?
Year × VPP-revenue scenario; greener = better NPV/MWh. 180k anchor contract → 2025; strong stack → 2027; 24/7 CFE premium → 2031; pure BTM → never.
What an investor should leave with
Section titled “What an investor should leave with”- Real, large dataset (I. Data foundation) — ~470k rows of public data; load profile has a clear weekday afternoon peak; 2024 step-up aligns with JS-SEZ DC commissioning timeline.
- The physics holds (II. Physical evidence) — PV peak = cooling-load peak = ETOU peak, all overlapping 14–18 hr; load strongly correlates with temperature. The physical case for BTM PV.
- Carbon dominates the deal (III. Commercial economics) — BTM avoided cost +83 M, carbon attributes +211 M (2.5× BTM), recommended structure +293 M. BESS is structurally negative at current capex; bundling carbon keeps the PPA feasible up to 15%+ IRR.
- Downside is bounded, triggers are explicit (IV. Risk & strategy) — worst stress case −118 M; BESS capex is the #1 sensitivity lever; the BESS trigger heatmap gives concrete year × contract combinations for when BESS flips positive.
For raw tables, see SQL playground or downloads.