Fundamental Financial Drivers (FFD)¶
Purpose¶
Fundamental Financial Drivers (FFD) are upstream economic signals used to explain why the LEV ecosystem has structural market opportunity before introducing infrastructure-capex models.
FFD values are intentionally simple, market-facing, and rider-centric. They create the narrative baseline that later models (BCS, SNS, EPS, FCS) can build on.
Canonical LEV market narrative: - Every kWh of electricity serviced generates savings for all involved.
Scope of FFD-1¶
FFD-1 focuses only on rider fuel-cost differential for 2-wheelers (2W):
2w_gas_cost_per_km(USD/km)2w_elec_cost_per_km(USD/km)2w_savings_per_km(USD/km)2w_savings_pct(%)2w_savings_per_kwh(USD/kWh)
This driver does not include capex allocation, depreciation, financing, or battery lifecycle constraints. Those are modeled in separate downstream business-unit models.
Inputs and Defaults¶
- Fuel price:
gas_price_per_l(USD/L) - Electricity price:
electricity_price_per_kwh(USD/kWh) - 2W petro range:
2w_km_per_liter(baseline31, fallback default30) - 2W electric range:
2w_km_per_kwh(baseline28, fallback default30)
Distance basis is kilometers (km).
Core Formulas¶
2w_gas_cost_per_km = gas_price_per_l / 2w_km_per_liter
2w_elec_cost_per_km = electricity_price_per_kwh / 2w_km_per_kwh
2w_savings_per_km = 2w_gas_cost_per_km - 2w_elec_cost_per_km
2w_savings_pct = (2w_savings_per_km / 2w_gas_cost_per_km) * 100
2w_savings_per_kwh = (2w_km_per_kwh / 2w_km_per_liter) * gas_price_per_l - electricity_price_per_kwh
Why 2w_savings_per_kwh Matters¶
2w_savings_per_kwh reframes rider economics in energy-unit terms. This creates a clean bridge to ecosystem models that reason in kWh throughput and utilization, while keeping FFD-1 itself purely rider-fundamental.
In practice:
- Higher 2w_savings_per_kwh strengthens rider value proposition.
- It provides a market-anchored signal for how much economic value is created per unit of electric energy consumed.
- Later models can apportion that value across business units and capital layers.
- It establishes a shared lingo across Rider, BCS, SNS, and other parties using one natural activity unit: serviced kWh.
Rounding Policy¶
- USD costs are reported to cents (2 decimals).
- Other values are reported to 2 decimals.
Implementation¶
- Python module:
models/ffd_model.py - Tests:
models/tests/test_ffd_model.py
Config Loader¶
load_ffd_2w_inputs_from_json(config) loads baseline FFD-1 inputs from data/model_parameters.json-style config:
gas_price_per_lfromFFD_GAS_PRICE_PER_L(fallbackFUEL_PRICE)electricity_price_per_kwhfromFFD_ELEC_PRICE_PER_KWH(fallbackDS_VRS_ELEC_PRICE, thenVOR_ELEC_PRICE)- 2W ranges from
FFD_2W_KM_PER_LITERandFFD_2W_KM_PER_KWH(fallback defaults)
This keeps FFD aligned with shared market assumptions while preserving explicit 2W default handling during model development.
Savings Apportioning Logic¶
FFD includes a party-allocation utility for distributing savings drivers across ecosystem participants.
Use:
- apportion_savings_by_party(savings_value, identified_party_shares)
Input example:
{
"rider": 0.40,
"bcs": 0.30,
"sns": 0.20
}
Behavior:
- Identified parties receive the provided shares.
- others is auto-computed as 1 - sum(identified_party_shares).
- Returns both share percentages and apportioned savings amounts.
This allocation is a policy layer that links the FFD savings signal to relative profitability narratives across Rider, BCS, SNS, and additional parties.
Baseline split is codified in data/model_parameters.json:
- Rider 25%
- BCS 25%
- SNS 25%
- X 25%
- Others auto-computed from residual share
Forward Path¶
FFD is designed as a family of drivers. FFD-1 is fuel-cost differential. Additional drivers can be added later (for example utilization, service reliability, downtime cost, or financing pressure) as separate, composable FFD modules.
Explanatory Notes¶
For team training and worked examples, see: - FFD Explanatory Notes