Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Gambling and income: review the top-up's gradient, regions and Consumer Trends levelling (follow-ups from #1381)

Open
#1,401 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

Start with the stage evidence in docs/evidence/uk-excise-quantities-1359/outputs/stage_run_gsgb_variants.json and outputs/union_theta_sensitivity.json, then collect the cited GSGB and ONS evidence on gambling by income. Split the income gradient into the chance, propensity and stake draw contributions, and run the listed candidates on the spine with every gate passing. Report each key's carrying and share by decile and region; done means the evidence supports a decision that can be implemented in one PR with the stage note updated.

Written by the indexing model from the issue text.

Description

#1381 (closes #1359) writes policyengine-uk's alcohol, tobacco and gambling duty inputs from the LCFS stage, and brings the two gambling keys to the Gambling Commission's GSGB 2025 participation. It merges with three decisions left for later: who carries the gambling duties by income, whether to match GSGB's regions, and whether to level tobacco and gambling spending to Consumer Trends. This issue collects those decisions and the PR's smaller follow-ups.

Before deciding, we recommend a closer look at how gambling relates to income. The evidence we have points to a flatter income profile than the top-up gives. Vahid accepted the committed version as a reasonable trade-off in round 5, so this is a review, not a defect.

All frame figures below are from a stage-only run on a real spine (78,440 households, prior weights, policyengine-uk 2.151.0), in docs/evidence/uk-excise-quantities-1359/.

Why look at gambling and income

The top-up adds households in each stratum until it reaches GSGB's share. The order is a donor propensity times the household's published chance (GSGB's adult rates by sex and age, combined over the household's adults).

  • As committed, carrying rises with equivalised income. The National Lottery runs from 51.5% of households in the bottom decile to 67.3% in the top. Betting and gaming runs from 26.8% to 34.8%, and its top decile holds 25.3% of the base.
  • Ordered by the published chance alone, betting and gaming is flat (29.2% to 29.8%). The Lottery runs from 57.0% to 67.9%, which comes from age and household size only.
  • The evidence we hold points to a flat or slightly falling profile:
    • the diary's own draws on the frame carry betting and gaming at 1.9% in the bottom decile and 2.1% in the top;
    • GSGB 2025 table D.8 (England, adults, any gambling in the past 12 months, by area deprivation): 59.7% in the most deprived fifth, 56.1% in the least deprived;
    • ONS Effects of taxes and benefits, from the same diary by its own method, puts about 12% of gambling duty in the top decile, against 25.3% here and 22.7% on the chance alone.
  • Most of the gap to ONS comes from the stake draws, not from who carries (Vahid, round 5). The stake draws read the spend draws, so even a flat set of carriers leaves 22.7% of the betting and gaming key in the top decile.

The three decisions

1. Who carries: the income gradient

The propensity read recreation with the stakes in it until round 4. Taking them out flattened about a third of the betting and gaming gradient. The rest comes from the propensity's other features: income, tenure, region and spending.

Options:

  • keep the propensity times the chance, as committed;
  • order by the published chance alone, for betting and gaming or for both keys;
  • keep a propensity, but without the income-linked spend features, or with less weight;
  • separately, draw the stakes without the spend features, or check them by decile against a published source.
2. Regions

Region is not a target today.

  • As committed, the Lottery follows GSGB: a correlation of 0.67 with GSGB's twelve-month regional rates across the 11 GB regions, with London lowest, as in GSGB. Betting and gaming barely does (0.11): London's share is 0.97 of the national share, against 0.84 in GSGB.
  • On the chance alone, neither key follows GSGB (−0.13 and −0.35). GSGB's age rates make London, with its young population, look like a high-gambling region.
  • The option is to rake the adult rates to GSGB's regional rates (tables B.2 and B.4: any gambling, and more than lottery draws, over four weeks and twelve months). Northern Ireland has no GSGB rate.
  • This decision is linked to decision 1. The chance alone plus a regional rake would give both a flat income profile and GSGB's regions. Neither change alone gives both.
3. Levelling tobacco and gambling spending to Consumer Trends (Vahid's round 1, item 4)

The ruling of 2026-10-23 levels the duty quantities to HMRC but keeps spending at diary level. So a household's duty is a fixed multiple of its recorded spending: 2.2 times for tobacco, and the gambling bases are several times the stakes.

  • The option is to level spending as road fuel is levelled to 07.2.2. Consumer Trends 2024 (domestic) gives £17.1bn for tobacco (02.2), against £3.7bn on the frame, about 4.6 times. It gives £12.8bn for games of chance (09.4.3), against £2.3bn of stakes, about 5.7 times.
  • VAT and net income. Tobacco is standard-rated, so VAT on it would rise: about £2bn if the engine charges VAT on all the added spending. Net income would fall by the same.
  • Order of work. The diary records tobacco for too few households, so levelling first would put about 4.6 times the spending on the few smoking households. The tobacco prevalence redraw should come first.
  • Gambling concept. National accounts record games of chance net of winnings, while the diary records stakes. Levelling stakes to 09.4.3 needs a bridge between the two.

Recommended investigation

  1. Collect the published evidence on gambling by income:

    • GSGB tables D.8 to D.10 (deprivation, for England, Scotland and Wales);
    • whether GSGB's report or dashboard breaks participation down by income or occupation;
    • what the health surveys with gambling modules publish by household income;
    • ONS Family Spending for games of chance by income decile;
    • how Effects of taxes and benefits allocates gambling duty.
  2. Split the current gradient on the spine into its three sources: household size and age (the chance alone), the propensity, and the stake draws.

  3. Run the candidates on the spine, with every gate passing:

    • the chance alone for betting and gaming;
    • the same plus a regional rake;
    • a propensity without the spend features;
    • stake draws without the spend features.

    For each, report carrying and the share of each key by decile and by region, beside the evidence from step 1.

  4. Decide, then implement in one PR with the stage note updated. Theta can be reviewed in the same pass: betting and gaming carrying runs from 28.5% of households at theta 0 to 41.2% at theta 1, against 29.8% at the fitted 0.08.

Other open items from #1381

  • The GSGB licence for the 426 vendored values (Vahid's round 4, finding 3; Vahid is checking it). The Commission states no licence for the workbook, and its terms of use ask for approval before material is copied. Record the outcome. If needed, write to [email protected].
  • Nit C (Vahid's round 3): a subset check in the national path (full_build_cli.py:3165). The national build should use a gate's withheld set only when that gate saw every diagnostics row, as the Orrery summary already does.
  • Tobacco prevalence (Vahid's round 1, item 5): 8.2% of households carry tobacco duty, against 11.9% of UK adults who smoked in 2023 (ONS). The share draws lose incidence; #1391 calibrates the QRF gate behind this.
  • The five restated exclusion reasons for the measured OBR excise rows await María's approval.
  • Measurement arms: a control on main and the merged head, each a spine plus a national calibration. They give the duty against OBR at final weights, each duty by equivalised decile beside ONS Effects of taxes and benefits, and the drift at final weights. The duty-by-decile comparison of 24 October predates the top-up.
  • Scoring register: re-freeze the uk-candidate-eval scoring register before the next national solve.
  • Vaping Products Duty (from 1 October 2026) needs a key of its own. Other tobacco (c22131) includes e-cigarette refills today.
  • Draught relief keyed to on-trade spending. The draught shares are national constants today.
  • The betting and gaming binding note in uk_population_targets.json: correct it at the next change to the targets contract.
  • Two feed-gated tests on main expect values that main has since moved: the bus fare factor (#1331) and the council tax stock count (#953). CI skips feed-gated tests, so this went unseen.
  • Two drift checks were not run locally on the 272c987 feed: the ones that regenerate the vendored files (about 50 GB) and the references (about 22 GB). The re-pin regenerated both files from that feed.
  • The stake assumptions: added regular players get the seen households' mean stake, and occasional players a tenth of it. Revisit them if GSGB publishes how often people play.

Links

  • #1381: Vahid's round 4 (issuecomment-6404575225), our reply (issuecomment-6412567451) and Vahid's round 5 (issuecomment-6414056492).
  • Evidence: docs/evidence/uk-excise-quantities-1359/. The decile and region figures are in outputs/stage_run_gsgb_variants.json, and the union and theta checks in outputs/union_theta_sensitivity.json.
  • GSGB 2025: PolicyEngine/chronicle#391. Tables D.8 to D.10 are in the same workbook but not in Chronicle's package yet.
Dominant language
Python
Stars
0
Forks
6
Avg merge
1d 20h
Merged PRs (30d)
132

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PolicyEngine/microcosm

All issues in PolicyEngine/microcosm

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.