The forecast run builder allows you to add contracts to a solar or battery asset.
Contracts define how revenues are calculated - they replace or supplement the default
assumption that the asset sells all generation at the wholesale market price.
Contract types
Contracts fall into two groups depending on whether wholesale exposure is included.
Contracts that replace wholesale
These contracts define what price the asset receives, so they already include
wholesale exposure. You do not need to add a separate Merchant contract on top.
- CfD (Contract for Difference): The asset receives a fixed strike price, with difference payments settling against a reference wholesale price. When the market price is below the strike price, the asset receives a top-up payment; when above, it pays back the difference (for two-way CfDs).
- PPA - Fixed: The asset sells all generation at a fixed price, fully replacing wholesale exposure.
- PPA - Floor: The asset receives the wholesale price, with a guaranteed minimum. If wholesale falls below the floor, the floor price applies instead.
- PPA - Cap and Floor: Wholesale exposure is bounded - revenues are capped above and protected below.
- Merchant: Pure wholesale exposure. This is the default if no contracts are added.
Contracts that stack on top of wholesale
These contracts provide additional revenue on top of whatever the asset earns from
the energy market. Pair them with a Merchant contract (or a wholesale-inclusive
contract like a CfD) to ensure the asset has full revenue coverage.
- Fixed payment: A fixed payment per MWh generated - used for Feed-in Tariffs (FiTs), Feed-in Premiums (FiPs), and similar schemes.
- Certificate: A tradeable certificate earned per MWh of generation - used for REGOs, ROCs, Guarantees of Origin (GOOs), and similar instruments.
- Tax credit: A per-MWh tax credit, such as the US Production Tax Credit (PTC).
Stacking contracts
Multiple contracts can be applied to the same asset. The capacity_mw field on each
contract controls what share of the asset it applies to.
Stacking on the same capacity - for example, a CfD and REGOs on a 100 MW solar asset - means both contracts apply to the full output. Revenues from each are added together.
Splitting across capacity - for example, 50 MW under a CfD and 50 MW merchant on a 100 MW asset - means each contract applies only to its portion of generation.
Negative price behaviour
During periods of negative wholesale prices, contracts can behave in three ways:
- Normal payment: The contract pays out regardless of price. This is the default for all contract types.
- No payment: The contract payment is withheld during negative price periods, you receive nothing for generation during those times (no contract revenue, but not exposed to wholesale prices either).
- Wholesale fallback: The contract payment is suspended and the asset is exposed to the raw negative price, incentivising curtailment. This reflects the real-world behaviour of GB CfDs from Allocation Round 4 onwards.
Contracts on batteries
Batteries support the same contract types as renewable assets. The key difference is in how the contract interacts with the dispatch optimisation.
For a renewable asset, the contract defines the effective price the model uses to value each MWh of generation. For a battery, the wholesale arbitrage logic is kept intact and a contract adjustment is applied on top, based on net physical discharge. This avoids interfering with the battery’s ability to trade across multiple markets simultaneously.
When no contracts are configured, a battery runs as a pure merchant asset.