Skip to main content

What is a Block?

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)

Why Use Blocks?

Blocks are optional but recommended. They help you:
  • Stay organized: Group related terms and functions together
  • Reuse logic: Apply blocks across multiple projects or scenarios
  • Compare configurations: Create and analyze cases of blocks
  • Work efficiently: Reduce duplication and make updates easier
You can build blocks as you go, or restructure your model into blocks at any point in your workflow.

Cases Within Blocks

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.

Example: Solar Array Block

A solar array block might include:
  • Inputs: System Size (MW), Panel Efficiency (%), Inverter Capacity (MW), Tilt Angle (degrees)
  • Outputs: Annual Generation (MWh), Capacity Factor (%), Levelized Cost ($/MWh)
You might create cases comparing bifacial versus monofacial panels, fixed-tilt versus tracking systems, or different module manufacturers—all while maintaining consistent structure.

Flexibility by Design

Blocks support multiple workflows. Some users start with fully modularized models, while others introduce blocks later as complexity grows. Both approaches work. You can:
  • Add terms directly to a project without blocks
  • Group related terms into a block when structure helps
  • Nest blocks within other blocks for complex systems
  • Edit terms within or outside of block views
This flexibility lets you balance structure and speed depending on your project phase and modeling style.