- app/integrations/pricing: profiles.py (pydantic ManualProfile/TibberProfile, load_profile/list_profiles/validate_values), manual.yaml + tibber.yaml (structure-only, no price values), strategies.py (register/get_strategy, manual dual-tariff + tibber strategies, all Decimal). - tibber strategy matches nearest tibber_price with starts_at <= t0. - tests for profiles + strategies (hand-checked dual-tariff & tibber math).
21 lines
913 B
YAML
21 lines
913 B
YAML
kind: manual
|
|
label: 固定 / 可变费率(NL,双费率)
|
|
|
|
energy:
|
|
dual_tariff: true # use delivered_1/2, returned_1/2 for low/high tariffs
|
|
buy:
|
|
normal: { unit: EUR/kWh } # high-tariff buy price (delivered_2 register)
|
|
dal: { unit: EUR/kWh } # low-tariff buy price (delivered_1 register)
|
|
sell:
|
|
normal: { unit: EUR/kWh } # high-tariff sell / return price
|
|
dal: { unit: EUR/kWh } # low-tariff sell / return price (currently equal to normal)
|
|
energy_tax: { unit: EUR/kWh } # energy tax added to buy price (incl. VAT)
|
|
ode: { unit: EUR/kWh, default: 0 } # currently merged into energy_tax
|
|
|
|
standing: # fixed charges; UI fills per month, engine prorates to days
|
|
network_fee: { unit: EUR/month }
|
|
management_fee: { unit: EUR/month }
|
|
|
|
credits:
|
|
heffingskorting: { unit: EUR/year } # energy-tax credit; deducted at summary layer
|