Skip to content

Commit

Permalink
nvzk voor grafiek moet niet worden meeberekend in ahk wanneer positie…
Browse files Browse the repository at this point in the history
…f getal

In dat geval is juist korting die zorgt dat belasting niet meer wordt, dus moet afgekapt worden op 0.
Moet ook nog in AK worden meegenomen, want als IKAC juist veel hoger wordt, kan dat negatief effect op AK compenseren en zou in grafiek negatief AK op 0 gezet moeten worden,
maar ik weet nog niet goed welke getallen hiervoor moeten worden gebruikt in berekening, want alle kortingen hangen samen, dus veel combinaties kunnen voorkomen, die dan wel in alle kortingen goed meegenomen moeten worden.
Dus AK wordt in sommige gevallen in grafiek niet goed voorgesteld. Legenda geeft wel goede MD waarde, maar grafiek te hoog.
  • Loading branch information
Hilbrand committed Dec 9, 2024
1 parent 90e0d2f commit 13e6ea9
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/js/berekeningen/MarginaleDruk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ export class MarginaleDruk extends Berekenen {
akMax: presentatieFunctie(ΔakMax, ΔextraLoon, grafiek),
iack: presentatieFunctie(Δiack, ΔextraLoon, grafiek),
iackMax: presentatieFunctie(ΔiackMax, ΔextraLoon, grafiek),
ahk: presentatieFunctie(grafiek ? Δahk - Δnvzk : Δahk, ΔextraLoon, grafiek),
ahk: presentatieFunctie(grafiek ? Δahk - functies.positiefIsNul(Δnvzk) : Δahk, ΔextraLoon, grafiek),
ahkMax: presentatieFunctie(ΔahkMax, ΔextraLoon, grafiek),
nvzk: presentatieFunctie(Δnvzk, ΔextraLoon, grafiek),

Expand Down
38 changes: 34 additions & 4 deletions test/js/berekeningen/MarginaleDruk.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import {
alleenstaandeKoop,
eenverdiener2KinderenHuur,
eenverdiener2kinderenKoop,
eenverdiener2kinderenKoop2 as alleenstaande2kinderenKoop2,
} from "./invoer";

function bereken(
Expand Down Expand Up @@ -67,7 +68,7 @@ test("Bereken 2024 marginale druk alleenstaande 27500, 2 kinderen, huur 674", ()
expect(berekening).toEqual(expected);
});

test("Bereken 2024 beschikbaar inkomen eenverdiener 47500, 2 kinderen, huur 674", () => {
test("Bereken 2024 marginale druk eenverdiener 47500, 2 kinderen, huur 674", () => {
const arbeidsinkomen: number = 45633; // Brutoloon: 47500
const berekening = bereken(arbeidsinkomen, eenverdiener2KinderenHuur("md"), 939, VisualisatieTypeType.T);
const expected: MarginaleDrukResultaatType = {
Expand Down Expand Up @@ -96,7 +97,7 @@ test("Bereken 2024 beschikbaar inkomen eenverdiener 47500, 2 kinderen, huur 674"
expect(berekening).toEqual(expected);
});

test("Bereken 2024 beschikbaar inkomen meestverdiener 45000, 2 kinderen, huur 674", () => {
test("Bereken 2024 marginale druk meestverdiener 45000, 2 kinderen, huur 674", () => {
const arbeidsinkomen: number = 43313; // Brutoloon: 45000
const gegevens = eenverdiener2KinderenHuur("md");
gegevens.personen[1].bruto_inkomen = 21969;
Expand Down Expand Up @@ -128,7 +129,7 @@ test("Bereken 2024 beschikbaar inkomen meestverdiener 45000, 2 kinderen, huur 67
expect(berekening).toEqual(expected);
});

test("Bereken 2024 beschikbaar inkomen 47500 eenverdiener, 2 kinderen, koop", () => {
test("Bereken 2024 marginale druk 47500 eenverdiener, 2 kinderen, koop", () => {
const arbeidsinkomen: number = 45633; // Brutoloon: 47500
const berekening = bereken(arbeidsinkomen, eenverdiener2kinderenKoop("md"), 939, VisualisatieTypeType.T);
const expected: MarginaleDrukResultaatType = {
Expand Down Expand Up @@ -157,7 +158,36 @@ test("Bereken 2024 beschikbaar inkomen 47500 eenverdiener, 2 kinderen, koop", ()
expect(berekening).toEqual(expected);
});

test("Bereken 2024 beschikbaar inkomen 80000 alleenstaande, koop", () => {
test("\n\n" + "-".repeat(80) + "\nBereken 2024 marginale druk 47500 alleenstaande, 2 kinderen, koop", () => {
const arbeidsinkomen: number = 45633; // Brutoloon: 47500
const berekening = bereken(arbeidsinkomen, alleenstaande2kinderenKoop2("md"), 939, VisualisatieTypeType.G);
const expected: MarginaleDrukResultaatType = {
ahk: 0,
ahkMax: 0,
ak: 6.5, // moet 0 zijn want iack extra compenseert ook ak verlies.
akMax: 6.5, // moet 0 zijn
anderenArbeidsinkomen: [],
arbeidsinkomen: 45633,
extraLoon: 939,
hraMax: 0,
iack: 0,
iackMax: 0,
ibBox1: 0,
kb: 0,
kgb: 6.82,
marginaleDruk: 6.82,
nettoArbeidsinkomen: 0,
nettoInkomen: 0,
nettoLoon: 0,
nettoLoonBelasting: 0,
nvzk: 0,
wonen: 0,
zt: 0,
};
expect(berekening).toEqual(expected);
});

test("Bereken 2024 marginale druk 80000 alleenstaande, koop", () => {
const arbeidsinkomen: number = 80000;
const berekening = bereken(arbeidsinkomen, alleenstaandeKoop("md"), 939, VisualisatieTypeType.T);
const expected: MarginaleDrukResultaatType = {
Expand Down
15 changes: 15 additions & 0 deletions test/js/berekeningen/invoer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ const eenverdiener2Kinderen: PersoonType[] = [
{ leeftijd: LeeftijdType.K611 },
{ leeftijd: LeeftijdType.K611 },
];
const alleenstaande2Kinderen2: PersoonType[] = [
{ leeftijd: LeeftijdType.V },
{ leeftijd: LeeftijdType.K611 },
{ leeftijd: LeeftijdType.K1215 },
];

const alleenstaande: PersoonType[] = [{ leeftijd: LeeftijdType.V }];

const huur: WonenType = { woning_type: WoningType.HUUR, huur: 674 };
Expand All @@ -50,6 +56,11 @@ const koop: WonenType = {
rente: 13482,
woz: 315000,
};
const koop2: WonenType = {
woning_type: WoningType.KOOP,
rente: 32000,
woz: 815000,
};

export function invoerGegevens(
tab: string,
Expand Down Expand Up @@ -79,6 +90,10 @@ export function eenverdiener2kinderenKoop(tab: string): InvoerGegevensType {
return invoerGegevens(tab, eenverdiener2Kinderen, koop, vis);
}

export function eenverdiener2kinderenKoop2(tab: string): InvoerGegevensType {
return invoerGegevens(tab, alleenstaande2Kinderen2, koop2, vis);
}

export function alleenstaandeKoop(tab: string): InvoerGegevensType {
return invoerGegevens(tab, alleenstaande, koop, vis);
}

0 comments on commit 13e6ea9

Please sign in to comment.