Skip to content

Conversation

@cdgaete
Copy link
Member

@cdgaete cdgaete commented Dec 30, 2025

Closes #136.

Changes proposed in this Pull Request

Implements the PINT (Put IN one at a Time) methodology for Cost-Benefit Analysis as specified in TYNDP 2024 CBA guidelines.

New scripts:

  • scripts/cba/prepare_pint_reference.py: Prepares the PINT reference network containing only in_reference=True projects
  • scripts/cba/prepare_pint_project.py: Adds a single candidate project to the PINT reference network

Modified files:

  • rules/cba.smk: Added hurdle_costs param to prepare_pint_project rule; updated input_indicators() to filter projects by CBA method
  • scripts/cba/_helpers.py: Added filter_projects_by_method() with registry pattern for method-specific project filtering

Tasks

  • Create PINT reference network script
  • Create PINT project network script
  • Add method-based project filtering (only in_reference=False for PINT)
  • Update workflow rules

Workflow

To run PINT analysis, add pint to the cba.methods list in config:

cba:
  methods:
  - toot
  - pint

Open issues

None

Notes

  • PINT and TOOT use the same downstream rules (solve_cba_network, make_indicators, collect_indicators, plot_indicators)
  • Project filtering by in_reference status happens at workflow level in input_indicators() for consistency
  • Registry pattern (METHOD_PROJECT_FILTERS) allows easy addition of future CBA methods

Checklist

  • I tested my contribution locally and it works as intended.
  • Code and workflow changes are sufficiently documented.
  • Changed dependencies are added to pixi.toml (using pixi add <dependency-name>).
  • Changes in configuration options are added in config/config.default.yaml.
  • Changes in configuration options are documented in doc/configtables/*.csv.
  • Changes in configuration options are added in config/test/*.yaml.
  • Open-TYNDP SPDX license header added to all touched files.
  • Sources of newly added data are documented in doc/data_sources.rst.
  • New rules are documented in the appropriate doc/*.rst files.
  • A release note doc/release_notes.rst is added.
  • Major features are documented with up-to-date information in README and doc/index.rst.
  • Module docstrings added to new Python scripts.

@cdgaete cdgaete requested a review from lisazeyen December 30, 2025 05:27
@cdgaete cdgaete added L CBA Cost Benefit Analysis high priority labels Dec 30, 2025
@cdgaete cdgaete added this to the Release v0.5 milestone Dec 30, 2025
@cdgaete cdgaete marked this pull request as ready for review December 30, 2025 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CBA Cost Benefit Analysis high priority L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Put IN one at the Time (PINT) method

2 participants