All method pages

MethodFeatures

partial some parts checked against the code, others not yet · what the statuses mean

How to read the Operations tab

In a project, the feasibility Operations tab’s ? Guide button opens the folds below. How the two engines make these charts is in How feasibility works.

How to read this room

guide

What this stage does — and how it differs from Prefeasibility

Prefeasibility works on annual averages: one number per year for each flow. This stage replays your plant hour by hour for a full year (8,760 steps) against the real resource curve of your Site. That is exactly the resolution where storage, flexibility and timing start to exist: a battery does something, the H₂ buffer rides out calm nights, and a synthesis unit’s minimum load becomes a real constraint at 3 a.m.

The engine is a linear program (LP) solved by HiGHS: it finds the provably optimal operation of your fixed design — maximum production first, operating cost as tie-breaker. It never cheats physics: energy balances close every hour, storage cannot create energy, and synthesis units stay at or above their minimum stable load.

Where the inputs come from

Hourly curves: the linked Site dataset per carrier. If you overrode a capacity factor, the curve is rescaled to your value (shape kept). Without a Site link, a flat profile from the loose CF is used — explicitly degraded (no weather shape), fine for smoke tests only.

Operating constraints: the assumption book drives everything — min-load and ramp per synthesis unit, electrolyser behavior, grid share cap and price (grid_share_max_pct, grid_price_usd_per_mwh). Edit them in the Assumptions room and re-solve. Sizing (capacities, BESS, H₂ buffer) comes from the project config — the design panel’s Storage section edits the storage part of it.

The KPI strip — and the one number that is a verdict

Production and load-factor KPIs are realized values from the hourly run, not nameplate promises. The one to watch is Unserved min-load: hours where renewables + storage + grid could not keep every synthesis unit at its minimum stable load. A real plant would have been forced into an unplanned shutdown there. Any value above zero is a design verdict — add H₂ buffer, BESS, grid share, or downsize the synthesis unit — not a number to report onward.

Year profile & the limiting-factor strip

The stacked area is where the electricity comes from each day (wind, solar, grid, BESS discharge) with curtailed energy on top and the dark line showing the electrolyser’s draw. The year view shows daily means — click anywhere to zoom that week at full resolution.

The thin strip underneath is the binding constraint — what limited the plant that day: energy-limited (not enough renewables — the normal state), electrolyser-cap (electrolyser saturated, energy wasted above it), synthesis-cap (derivative units at nameplate — the plant is H₂-rich), buffer-full (storage saturated), and unserved-min-load (the bad hours). Where you see a color is where the next dollar of CAPEX should go.

Week zoom — worst · median · best

Feasibility conversations are always about the bad week, so it loads first. Worst = the week with the highest unserved min-load risk, then the deepest production deficit — not simply the lowest-wind week (a calm week the buffer rides out is the buffer working). Best shows design saturation; median is the typical rhythm.

Storage state of charge

Each pane shows the daily min–max band (shaded) and mean (line) of the store’s fill level; the dashed line is installed capacity. Read the extremes: a buffer that pins at empty during lulls is undersized (and you will usually see unserved hours at the same dates); one that pins at full while curtailment shows buffer-full is leaving recoverable energy on the table; one that never moves is money parked in steel.

Duration curve — “how oversized am I?” in one glance

Every hour of electrolyser load, sorted from highest to lowest. The area under the curve is the energy it absorbed; the gap up to the nameplate line is idle capacity. A curve hugging nameplate before falling off a cliff = well-sized against this resource; a curve that never approaches nameplate = capital idling. The shoulder position tells you how many hours per year the machine actually earns its CAPEX.

Utilization calendar

Every hour of the year in one image: columns are days, rows are hours, darker = higher electrolyser load. Diurnal structure (solar days), wind seasons, and multi-day dead spells read at a glance — if the dead spells cluster, that is the season your storage and grid strategy must survive.

Storage value — what one more unit of storage is worth

These come from the LP’s shadow prices (duals): the solver knows exactly how much extra product one more tonne of H₂ buffer or one more MWh of battery would have enabled, without re-solving. Expressed in physical units (tH₂/yr) so it is price-independent. Zero is an answer: storage capacity never constrained the optimum — a bigger store adds nothing for this design. Compare the marginal tH₂/yr against the storage’s annualized cost per unit to judge the next increment.

Curtailment by cause — which fix recovers the energy

Total curtailment is split by what was binding while the energy was wasted: electrolyser-cap → a bigger electrolyser or BESS recovers it; buffer-full → more H₂ storage; synthesis-cap → the plant is H₂-rich — more derivative capacity or an H₂-export product, not more storage. energy-limited curtailment is ≈ 0 by definition (nothing to waste when energy is the constraint).

Balance ledger & trust

The ledger is the audit stamp: electricity and hydrogen accounted end-to-end, from available renewables through curtailment to product tonnes. It closes by construction — the LP cannot violate a balance — and the raw hourly frame behind every chart is stored with the project (Parquet), so any number here can be traced to the hour that produced it.

From the app’s documentation, docs/02-features/reading-the-operations-tab.md · Hyprisma 1.0.5