ftt_core.ftt_mandate module#
Centralized mandate functions for all FTT sectors.
This module provides core mandate functionality used by Transport, Heat, and Freight. Sectors call these functions with their specific green technology indices.
- Functions:
get_mandate_share: Calculate year-based mandate share (linear progression) get_new_sales_under_mandate: Apply mandate to sales distribution implement_seeding: Small boost for low-adoption regions (first 5 years simulation) implement_mandate: Full mandate with flexible end year
@author: Amir Akther and Femke Nijsse
Calculate the mandate share based on the year.
Linear increase from 0 to 1 between start and end years. Returns array of 0s before start year and after end year.
- Parameters:
year (int) – Current simulation year
mandate_start_year (int) – Year when mandate begins (e.g., 2025)
mandate_end_year (int) – Year when mandate reaches 100% (e.g., 2036)
max_mandate – The mandate at the last year (usually 1, but lower for kick-start)
- Returns:
Mandate share between 0.0 and 1.0
- Return type:
float
- ftt_core.ftt_mandate.get_new_sales_under_mandate(sales_in, mandate_shares, green_indices)#
Apply mandate to sales distribution.
Adjusts sales so that green technologies reach the target mandate share. Non-green sales are reduced proportionally to maintain total sales.
- Parameters:
sales_in (ndarray) – Sales array (regions x techs x 1)
mandate_shares (float) – Target share for green technologies (0.0 to 1.0)
green_indices (list) – Indices of green technologies
regions (list, optional) – Regions to apply mandate to. If None, applies to all.
- Returns:
Adjusted sales array
- Return type:
ndarray
- ftt_core.ftt_mandate.implement_mandate(cap, cum_sales_in, sales_in, year, green_indices, mandate_info)#
Implement full green technology mandate.
Linearly increases required green share from 0% to 100% over the mandate period.
- Parameters:
cap (ndarray) – Capacity by region and technology
cum_sales_in (ndarray) – Cumulative sales
sales_in (ndarray) – Current period sales
year (int) – Current simulation year
green_indices (list) – Indices of green technologies for this sector
mandate_info – Contains start year, end year and share at end year per region
- Returns:
(cum_sales_after, sales_after, cap_after)
- Return type:
tuple
- ftt_core.ftt_mandate.implement_seeding(cap, cum_sales_in, sales_in, year, green_indices, histend, seeding_years=5, seed_fraction=0.15)#
Seed green technologies in low-adoption regions.
Applies a small mandate (fraction of global green share) to bootstrap green technology adoption in regions with little or no adoption. Runs from start_year to end_year.
- Parameters:
cap (ndarray) – Capacity by region and technology
cum_sales_in (ndarray) – Cumulative sales
sales_in (ndarray) – Current period sales
year (int) – Current simulation year
histend (int) – Last historical year
seeding_years (int, optional) – Number of years seeding applies
green_indices (list) – Indices of green technologies for this sector
seed_fraction (float, optional) – Fraction of global green share to use as target (default 0.15) #todo, make sense
- Returns:
(cum_sales_after, sales_after, cap_after)
- Return type:
tuple