Skip to content

Conversation

@Flix6x
Copy link
Contributor

@Flix6x Flix6x commented Dec 6, 2025

Description

  • Start documentation section on Commitment concept
  • Added changelog item in documentation/changelog.rst

Look & Feel

...

How to test

...

Further Improvements

...

Related Items

...


Sign-off

  • I agree to contribute to the project under Apache 2 License.
  • To the best of my knowledge, the proposed patch is not based on code under GPL or other license that is incompatible with FlexMeasures

Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
…ontext

Signed-off-by: F.N. Claessen <felix@seita.nl>
…formulation

Signed-off-by: F.N. Claessen <felix@seita.nl>
@Flix6x Flix6x added this to the 0.31.0 milestone Dec 6, 2025
@Flix6x Flix6x self-assigned this Dec 6, 2025
@Flix6x Flix6x added documentation Improvements or additions to documentation Scheduling labels Dec 6, 2025
@read-the-docs-community
Copy link

read-the-docs-community bot commented Dec 6, 2025

Documentation build overview

📚 flexmeasures | 🛠️ Build #30611462 | 📁 Comparing 3599379 against latest (eeffc62)


🔍 Preview build

Show files changed (4 files in total): 📝 3 modified | ➕ 1 added | ➖ 0 deleted
File Status
index.html 📝 modified
api/v3_0.html 📝 modified
concepts/commitments.html ➕ added
concepts/device_scheduler.html 📝 modified

Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
@Flix6x Flix6x requested a review from nhoening December 9, 2025 09:55
Copy link
Contributor

@nhoening nhoening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this!

As you would probably expect from me, my comments are mostly about making this more useful to readers, mostly structuring.

I also would like one more hands-on example to show users the added modeling power they could have from this concept.

Oh, we should also add a note that we hope to make commitments a feature in the flex-context editor.

--------

A **Commitment** is the economic abstraction FlexMeasures uses to express
market positions and soft constraints (preferences) inside the scheduler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would quickly list two or three examples right at the start, to let the reader imagine why this concept applies to them.

Market positions:

  • passive imbalance
  • PPAs
  • gas price baseline

Soft constraints:

  • contracted (consumption|production) capacity
  • Previous peaks
  • CO2 levels

--------

A **Commitment** is the economic abstraction FlexMeasures uses to express
market positions and soft constraints (preferences) inside the scheduler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
market positions and soft constraints (preferences) inside the scheduler.
market positions and soft constraints (preferences) inside the scheduler.
They are a powerful modeling concept used in current flex-context fields, but can also model new circumstances.


A **Commitment** is the economic abstraction FlexMeasures uses to express
market positions and soft constraints (preferences) inside the scheduler.
Commitments are converted to linear objective terms; all non-negotiable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would tell the reader what this document delivers ("This document will explain what commitments are on a technical level, and then give examples how the scheduler uses them and how you can create your own commitments in the flex-context to great effect.")

I suggested a few section headers here, maybe include a TOC.

Then, start a subsection here: "What is a commitment?"

interlocks) are expressed separately as Pyomo constraints in the scheduling
model. If a “hard” behaviour is required from a commitment, assign very large
penalty prices, but prefer modelling non-negotiable limits as Pyomo constraints.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New section: "How FlexMeasures uses commitments in the scheduler"


- *Fields used*: ``consumption-capacity`` and ``production-capacity`` (baselines), ``consumption-breach-price`` (upwards-deviation price, with 0 downwards) and ``production-breach-price`` (downwards-deviation price, with 0 upwards).
- *Commitment*: FlowCommitment with either baseline and corresponding prices.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest that we add a new section here: "How you can use commitments: An example"

Then provide a flex context example with some price blocks maybe - whatever comes off easy.

Add a few words how this would affect the schedules that are being made.

(so far, the examples are only from the internal use of commitments)

- peak/excess limits (``site-peak-production``, ``site-peak-production-price``, etc.) → dedicated peak FlowCommitment(s);
- storage-related fields (``soc-minima``, ``soc-minima-breach-price``, etc.) → StockCommitment(s).

A short example
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A short example
How the scheduler interpretes commitments: A short example

(I don't really understand who benefits from this section - hosts, FlexMeasures devs?)

interlocks) are expressed separately as Pyomo constraints in the scheduling
model. If a “hard” behaviour is required from a commitment, assign very large
penalty prices, but prefer modelling non-negotiable limits as Pyomo constraints.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the grouping section can be here already.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation Scheduling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants