Repository navigation
Description
Found while populating income_not_otherwise_charged for PolicyEngine/policyengine-uk#2726. I checked this against frs.py at main e1acdf96, the FRS 2024-25 data dictionary (UKDA 9563, oddjob table) and the FRS 2024-25 question instructions ("Odd Jobs", pp. 318-319).
What the build does
odd_job_income = sum_to_entity(
oddjob.ojamt * (oddjob.ojnow == 1), oddjob.person_id, person.person_id
)
pe_person["miscellaneous_income"] = (odd_job_income + ...) * WEEKS_IN_YEARIt treats OJAMT as a weekly amount, keeps only the jobs done in the last 7 days, and multiplies by 52.18.
What the FRS records
- Question OddJob (show card K12) asks whether the person received money "during the last 4 weeks" from babysitting, from acting as a mail order agent, or from an odd job, occasional work or professional advice. It covers only work that the employment and self-employment questions have not already recorded.
- For babysitting and mail order, the amount is the total for all such work in the last 4 weeks (BabPay, MailPay).
- For an odd job, OJAmt asks "How much did you receive for that job?". The instructions say there is no period code, because an odd job is one-off.
- OJNOW is whether the person did the work in the last 7 days. It says when the work was done, not what period the amount covers.
So no OJAMT is a weekly amount. A babysitter's 4-week total currently counts as a weekly wage, and work paid in the last 4 weeks but done earlier counts as nothing.
Size (FRS 2024-25, household grossing weights, before calibration)
| People (weighted) | FRS households | Annual £m | |
|---|---|---|---|
| Current rule: OJNOW = 1, amount × 52 | 176,000 | 74 | 629 |
| Every row, 4-week receipts × 13 | 420,000 | 184 | 344 |
The current rule counts about 1.8 times the flow that the 4-week receipts imply, and gives it to 42% of the recipients. The FRS soft-checks amounts above £1,000 as possible regular jobs, so most of the amounts are small. Multiplying them by 52 pushes about half the current recipients' annual odd-job income above £1,000.
Proposed fix
Annualise every ODDJOB row's 4-week receipts, OJAMT × 365.25 / 28, whatever its OJNOW. Then measure the change in miscellaneous_income, income tax, and the means tests that read miscellaneous income.
Once policyengine-uk#2726 and the uk-data PR that sets income_not_otherwise_charged both land, the trading allowance relieves this income too. That PR computes both variables from the same odd-job sum (frs_miscellaneous_income), so this fix flows into the relief automatically. Under the current rule, about half of the recipients reach the full £1,000 allowance. A per-person × 13 annualisation gives smaller amounts to more people.
Acceptance: a property test that each row's annual amount is OJAMT × 365.25 / 28, whatever its OJNOW; the aggregate impact on miscellaneous income, income tax and benefits stated in the PR; and small cells suppressed (fewer than 10 FRS households).
Activity