u/Rif-SQL

▲ 0 r/bbc

Should the UK replace the TV Licence with a ring-fenced Public Service Media Levy collected through Council Tax, business rates, and media-service tax systems? The argument is that BBC/public-service media should be treated as civic infrastructure, not as a “pay-to-watch” product. Lower bands and small businesses could pay less or nothing, while larger properties contribute more. Fair reform, or just a new tax?

Goal: This project explores replacing the BBC TV Licence with a fairer, ring-fenced Public Service Media Levy collected through existing property, business-rate, and media-service tax systems. The model tests who would pay, who would save, and how much revenue could be raised while reducing enforcement costs and ending the separate TV Licensing regime. Future scenarios could include different VAT or levy rates for Netflix, Sky, Amazon, Disney+, YouTube, and other streaming or broadcast services, with revenue returned to public-service media. The next stage is a website where users can edit assumptions, compare rates, and see who pays.

I’d love feedback ❤️ - on the idea and the model itself. The numbers are just placeholders at this stage, I had to put something in, but I haven’t spent much time refining them yet. My main focus now is building an interactive website where people can play around with the idea, edit the numbers and bands, and test different scenarios.

What should be added to or removed from the model? What assumptions should users be able to change?

Update: Based on the feedback 6-May*,* a model based on internet connection, fixed line & mobile might be a better fit.

u/Rif-SQL — 9 days ago

I’m working on an idea for a fun, interactive public website that models an alternative way to fund the BBC through a property-tax-style levy rather than the current licence fee.

The basic question is:

>Given Council Tax/property bands, business rateable values, exemptions, and policy parameters, who pays what — and does the model hit a chosen revenue target?

The model would let users change assumptions such as:

  • total funding target: £3.5bn, £3.843bn, £4.2bn, £5bn
  • household vs business contribution split
  • Council Tax band weights
  • exemptions for low-income households / Council Tax Reduction / Pension Credit
  • second-home multipliers
  • business rateable-value thresholds
  • sector splits for retail, office, logistics, etc.

My current instinct is that this is not really a machine-learning problem, but more of a rules-based fiscal / distributional microsimulation model.

The rough stack I’m considering is:

  • Python
  • pandas or Polars for data cleaning
  • DuckDB + Parquet for storing/querying datasets
  • NumPy/SciPy for calculations and sensitivity testing
  • Plotly or Altair for charts
  • Streamlit or Dash for the interactive website
  • possibly PolicyEngine UK or OpenFisca later if I want to model tax-benefit interactions properly
  • PyMC later for uncertainty modelling

The website would ideally let people move sliders, compare scenarios, see charges by property band, estimate winners/losers against the licence fee, and download the model outputs.

My questions are:

  1. Is “rules-based microsimulation” the right framing here, or is there a better modelling approach?
  2. Is there any useful role for machine learning in this kind of project, or would ML be overkill/misleading?
  3. What would be the best technical path for building this as an interactive, updateable website?
  4. How should I structure the model so that as better public data becomes available, I can update the data and rerun the scenarios cleanly?
  5. Are there examples of open-source fiscal, policy, or public-finance models that would be good to learn from?
  6. For someone building this as a serious but public-facing prototype, what skills/tools should I prioritise learning first?

​

run_model(
    funding_target=3_843_000_000,
    residential_share=0.70,
    business_share=0.30,
    band_weights={
        "A": 0.50,
        "B": 0.65,
        "C": 0.80,
        "D": 1.00,
        "E": 1.30,
        "F": 1.65,
        "G": 2.10,
        "H": 2.75,
        "I": 3.25,
    },
    ctr_exemption=True,
    second_home_multiplier=1.5,
    business_thresholds=[
        {
            "rv_min": 0,
            "rv_max": 12_000,
            "rate": 0.000,
        },
        {
            "rv_min": 12_000,
            "rv_max": 51_000,
            "rate": 0.0075,
        },
        {
            "rv_min": 51_000,
            "rv_max": 500_000,
            "rate": 0.0175,
        },
        {
            "rv_min": 500_000,
            "rv_max": None,
            "rate": 0.0300,
        },
    ],
)

Any advice, examples, warnings, or recommended libraries would be appreciated.

reddit.com
u/Rif-SQL — 9 days ago

Hi everyone,

I’m working on an idea for a fun, interactive public website that models an alternative way to fund the BBC through a property-tax-style levy rather than the current licence fee.

The basic question is:

>

The model would let users change assumptions such as:

  • total funding target: £3.5bn, £3.843bn, £4.2bn, £5bn
  • household vs business contribution split
  • Council Tax band weights
  • exemptions for low-income households / Council Tax Reduction / Pension Credit
  • second-home multipliers
  • business rateable-value thresholds
  • sector splits for retail, office, logistics, etc.

My current instinct is that this is not really a machine-learning problem, but more of a rules-based fiscal / distributional microsimulation model.

The rough stack I’m considering is:

  • Python
  • pandas or Polars for data cleaning
  • DuckDB + Parquet for storing/querying datasets
  • NumPy/SciPy for calculations and sensitivity testing
  • Plotly or Altair for charts
  • Streamlit or Dash for the interactive website
  • possibly PolicyEngine UK or OpenFisca later if I want to model tax-benefit interactions properly
  • PyMC later for uncertainty modelling

The website would ideally let people move sliders, compare scenarios, see charges by property band, estimate winners/losers against the licence fee, and download the model outputs.

My questions are:

  1. Is “rules-based microsimulation” the right framing here, or is there a better modelling approach?
  2. Is there any useful role for machine learning in this kind of project, or would ML be overkill/misleading?
  3. What would be the best technical path for building this as an interactive, updateable website?
  4. How should I structure the model so that as better public data becomes available, I can update the data and rerun the scenarios cleanly?
  5. Are there examples of open-source fiscal, policy, or public-finance models that would be good to learn from?
  6. For someone building this as a serious but public-facing prototype, what skills/tools should I prioritise learning first?

​

run_model(
    funding_target=3_843_000_000,
    residential_share=0.70,
    business_share=0.30,
    band_weights={
        "A": 0.50,
        "B": 0.65,
        "C": 0.80,
        "D": 1.00,
        "E": 1.30,
        "F": 1.65,
        "G": 2.10,
        "H": 2.75,
        "I": 3.25,
    },
    ctr_exemption=True,
    second_home_multiplier=1.5,
    business_thresholds=[
        {
            "rv_min": 0,
            "rv_max": 12_000,
            "rate": 0.000,
        },
        {
            "rv_min": 12_000,
            "rv_max": 51_000,
            "rate": 0.0075,
        },
        {
            "rv_min": 51_000,
            "rv_max": 500_000,
            "rate": 0.0175,
        },
        {
            "rv_min": 500_000,
            "rv_max": None,
            "rate": 0.0300,
        },
    ],
)


run_model( funding_target=3_843_000_000, residential_share=0.70, business_share=0.30, band_weights={ "A": 0.50, "B": 0.65, "C": 0.80, "D": 1.00, "E": 1.30, "F": 1.65, "G": 2.10, "H": 2.75, "I": 3.25, }, ctr_exemption=True, second_home_multiplier=1.5, business_thresholds=[ { "rv_min": 0, "rv_max": 12_000, "rate": 0.000, }, { "rv_min": 12_000, "rv_max": 51_000, "rate": 0.0075, }, { "rv_min": 51_000, "rv_max": 500_000, "rate": 0.0175, }, { "rv_min": 500_000, "rv_max": None, "rate": 0.0300, }, ], )run_model(     funding_target=3_843_000_000, residential_share=0.70, business_share=0.30, band_weights={         "A": 0.50,         "B": 0.65,         "C": 0.80,         "D": 1.00,         "E": 1.30,         "F": 1.65,         "G": 2.10,         "H": 2.75,         "I": 3.25,     }, ctr_exemption=True, second_home_multiplier=1.5, business_thresholds=[ {"rv_min": 0, "rv_max": 12_000, "rate": 0.000},         {"rv_min": 12_000, "rv_max": 51_000, "rate": 0.0075},         {"rv_min": 51_000, "rv_max": 500_000, "rate": 0.0175},         {"rv_min": 500_000, "rv_max": None, "rate": 0.0300},     ], )

Any advice, examples, warnings, or recommended libraries would be appreciated.

reddit.com
u/Rif-SQL — 9 days ago