Published
Edited
May 4, 2022
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
b = d3.range(0, 5e5, 10000).map((teBelastenMetVPB) => VPB(VPBtarieven, {jaar, teBelastenMetVPB}))
Insert cell
Insert cell
voorbeeld = ({
jaar = new Date().getFullYear(),
waardeInDollars = 0, // stel, je verzilvert aandelen voor dit bedrag in dollars
USD2EUR = 0.95, // met deze wisselkoers
waardeInEuros = USD2EUR * waardeInDollars, // krijg je dit op je rekening gestort
aankoopBedragAandelen = 0, // stel, je hebt de aandelen oorspronkelijn voor dit bedrag gekocht
kostenBroker = 0, // en dit zijn de kosten die je broker rekent
} = {}) =>
{
const {min, max, round} = Math;
// dan zijn dit de totale kosten (die je van je winst voor belasting af mag trekken)
const totaalKosten = kostenBroker + aankoopBedragAandelen;
// zodat je dit bedrag overhoudt waar je VPB over moet betalen
const teBelastenMetVPB = max(0, waardeInEuros - totaalKosten);
// en met een laag en hoog tarief belast wordt, afhankelijk van het jaar
const tarief = VPBtarieven[jaar];
const teBelastenMetLaagTariefVPB = min(teBelastenMetVPB, tarief.drempel);
const teBelastenMetHoogTariefVPB = max(0, teBelastenMetVPB - teBelastenMetLaagTariefVPB)
const VPBLaagTarief = tarief.laag * teBelastenMetLaagTariefVPB;
const VPBHoogTarief = tarief.hoog * teBelastenMetHoogTariefVPB;
const VPBTotaal = VPBLaagTarief + VPBHoogTarief;
const nettoWinst = waardeInEuros - VPBTotaal;

return ({
"Waarde in $": waardeInDollars,
"Wisselkoers $ → €": USD2EUR,
"Waarde in €": waardeInEuros,
"Kosten broker": kostenBroker,
"Aankoopbedrag oorspronkelijke aandelen": aankoopBedragAandelen,
"Totale Kosten": totaalKosten,
"Belastbaar": teBelastenMetVPB,
"Jaar": jaar,
"Winstdrempel tarieven": tarief.drempel,
"Laag Tarief": tarief.laag,
"Hoog Tarief": tarief.hoog,
"Deel Laag Tarief": teBelastenMetLaagTariefVPB,
"Deel Hoog Tarief": max(0, teBelastenMetVPB - teBelastenMetLaagTariefVPB),
"VPB Laag Tarief": round(VPBLaagTarief),
"VPB Hoog Tarief": round(VPBHoogTarief),
"VPB Totaal": round(VPBLaagTarief + VPBHoogTarief),
"Netto Winst voor BV": round(waardeInEuros - VPBTotaal),
"Effectief (%)": round(100 * nettoWinst / waardeInEuros),
"Rendement (%)": round(100 * nettoWinst / (totaalKosten + VPBLaagTarief + VPBHoogTarief))
})
}
Insert cell
control = (I) => {
const input = d3.select(I);
input
.select("input")
.style("text-align", "right")
.attr("width", "30px")
;
input
.select("label")
.style("font-weight", "bold")
.style("text-align", "right")
;
return input.node();
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more