A block is a container that includes two or more terms (inputs or outputs) and may also contain one or more functions. Blocks help structure complex project models by grouping related logic together.Blocks can represent:
A subsystem (e.g., battery, solar panel, electrolyzer)
A financing structure (e.g., tax equity, project finance, grants)
A business model configuration (e.g., PPA, merchant, hybrid)
Blocks support cases—alternate configurations with shared structure but different assumptions or logic.For example, a battery storage block might have cases for different technologies:For example, a battery storage block might have cases for different technologies:
lithium_ion: Standard lithium-ion battery with specific cost and performance characteristics
flow_battery: Flow battery configuration with different cycling assumptions and capital costs
no_storage: Baseline scenario without energy storage
Each case maintains the same inputs and outputs (capacity, duration, throughput efficiency) but varies the internal calculations, costs, or degradation curves.
You might create cases comparing bifacial versus monofacial panels, fixed-tilt versus tracking systems, or different module manufacturers—all while maintaining consistent structure.
Blocks support multiple workflows. Some users start with fully modularized models, while others introduce blocks later as complexity grows. Both approaches work. You can: