Incorrect benefit-unit equivalence scale understates equivalised income for multi-adult units

Aperta Adatta ai principianti
#541 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
89/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
java
Ambito
backend, databases

Direzione di ricerca

Leggi BenefitUnit.getEquivalisedWeight() in src/main/java/simpaths/model/BenefitUnit.java e confronta la ponderazione degli adulti con la scala documentata e il calcolo del nucleo familiare in src/main/java/simpaths/model/Household.java. Verifica il caso con due adulti descritto nell’issue: la scala di equivalenza dell’unità di prestazioni dovrebbe essere 1.5 e il reddito annuo equivalente dovrebbe essere £24,000 con un reddito disponibile mensile di £3,000.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

In BenefitUnit.getEquivalisedWeight(), firstAdult is initialised to true but never set to false. Consequently, every member aged at least AGE_TO_BECOME_RESPONSIBLE receives a weight of 1.0, rather than 1.0 for the first adult and 0.5 for subsequent adults.

This differs from the scale documented above the method and from the household calculation, which does update the flag.

Effect

For a household containing one benefit unit with two adults aged 40 and 38, and total disposable income of £3,000 per month:

  • Expected equivalence scale: 1.5; annual equivalised income: £24,000.
  • Current benefit-unit calculation: 2.0; annual equivalised income: £18,000.
  • The household calculation correctly returns £24,000 for those same people and income.

The error therefore understates BU equivalised income by 25% in this example. Cash income itself is unchanged. It can affect quantities and regressors derived from benefit-unit equivalised income.

Proposed correction and verification

Setting the flag after the first adult's contribution resolves the tested cases:

if (firstAdult) {
    weight += 1.0;
    firstAdult = false;
} else {
    weight += 0.5;
}

The error remains in the latest shared code. Although the existing automated tests pass, a direct check shows that two adults receive an equivalence scale of 2 rather than 1.5.

Lingua principale
Java
Stelle
26
Fork
38
Merge medio
15h 30m
PR unite (30g)
11

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di simpaths/SimPaths

Tutte le issue di simpaths/SimPaths

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.