Skip to content

Add bus_fare_spending input variable (companion to policyengine-uk-data bus fare imputation) #1779

@vahid-ahmadi

Description

@vahid-ahmadi

Background

policyengine-uk-data PolicyEngine/policyengine-uk-data#428 imputes a household-level bus_fare_spending column from LCFS (COICOP 7.3.2 bus & coach fares). To be consumed by the model, policyengine-uk needs a matching input Variable — otherwise the column is silently skipped on load (simulation.py ignores columns with no registered variable).

This is the companion change to PolicyEngine/policyengine-uk-data#427 / #428.

What's needed

A standalone Household input variable, mirroring petrol_spending / diesel_spending (which are likewise COICOP sub-components of transport_consumption):

class bus_fare_spending(Variable):
    label = "bus and coach fare spending"
    entity = Household
    definition_period = YEAR
    value_type = float
    unit = GBP
    quantity_type = FLOW
    uprating = "gov.economic_assumptions.indices.obr.consumer_price_index"

It is not added into the consumption total, which already counts bus fares via transport_consumption (avoids double-counting).

Why it matters

bus_fare_spending is the passenger fare households pay, distinct from bus_subsidy_spending (the ETB government-subsidy benefit-in-kind). It is the building block for modelling bus fare reforms (e.g. a £2 cap or free travel for young people), the bus analogue of the existing rail fare modelling.

Follow-on (separate work)

Reform parameters/variables (flat rate, eligibility age threshold), NTS-based person-level allocation by age, and a bus-fare calibration target — tracked in PolicyEngine/policyengine-uk-data#427.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions