401K Lommeregner
Kategori: Pensionering
Resultater
Månedligt Bidrag: $--
Månedlig Udbetaling Efter Skat: $--
Saldo Ved Første Udbetaling: $--
Samlede Bidrag |
$-- |
Samlet Afkast |
$-- |
Samlet Udbetaling (Efter Skat) |
$-- |
Antal Udbetalinger |
-- |
Sidste Udbetaling |
-- |
Betalingssaldo Over Tid
Betalingsplan
Betaling # |
Udbetalingsbeløb ($) |
Saldo ($) |
// Wait for the DOM to be fully loaded
document.addEventListener("DOMContentLoaded", () => {
// Get DOM elements
const calculateButton = document.getElementById("calculate-button");
const resetButton = document.getElementById("reset-button");
// Add event listeners
calculateButton.addEventListener("click", calculate401k);
resetButton.addEventListener("click", resetForm);
function calculate401k() {
// Get input values
const salary = parseFloat(document.getElementById("annual-salary").value);
const currentBalance = parseFloat(document.getElementById("current-balance").value);
const contributionRate = parseFloat(document.getElementById("contribution-rate").value) / 100;
const employerMatch = parseFloat(document.getElementById("employer-match").value) / 100;
const matchingLimit = parseFloat(document.getElementById("matching-limit").value) / 100;
const returnRate = parseFloat(document.getElementById("expected-return").value) / 100;
const retirementAge = parseInt(document.getElementById("retirement-age").value);
const currentAge = parseInt(document.getElementById("current-age").value);
const retirementYears = parseInt(document.getElementById("retirement-years").value);
const incomeTax = parseFloat(document.getElementById("income-tax").value) / 100;
const withdrawalFrequency = document.getElementById("withdrawal-frequency").value;
const withdrawalReturn = parseFloat(document.getElementById("withdrawal-return").value) / 100;
const payoutsPerYear = withdrawalFrequency === "monthly" ? 12 :
withdrawalFrequency === "quarterly" ? 4 : 1;
// Validate inputs
if (isNaN(salary) || isNaN(currentBalance) || isNaN(contributionRate) ||
isNaN(employerMatch) || isNaN(matchingLimit) || isNaN(returnRate) ||
isNaN(retirementYears) || isNaN(incomeTax) || isNaN(currentAge) ||
isNaN(retirementAge) || retirementAge <= currentAge || isNaN(withdrawalReturn)) {
alert("Udfyld venligst alle felter korrekt.");
return;
}
// Calculate Annual Contribution
const maxEmployerMatch = salary * employerMatch * matchingLimit;
const annualContribution = salary * contributionRate + maxEmployerMatch;
// Calculate Growth During Accumulation Phase
let balance = currentBalance;
const balances = [];
for (let year = currentAge; year < retirementAge; year++) {
balance += annualContribution; // Add contributions
balance += balance * returnRate; // Add growth
balances.push({ year, balance }); // Track balance per year
}
// Calculate Retirement Withdrawals
const totalWithdrawals = retirementYears * payoutsPerYear;
const withdrawalAmount = balance / totalWithdrawals;
const afterTaxWithdrawal = withdrawalAmount * (1 - incomeTax);
// Update Results Section
document.getElementById("results-container").style.display = "block";
document.getElementById("monthly-contribution").textContent =
`Månedligt bidrag: $${(annualContribution / 12).toFixed(2)}`;
document.getElementById("monthly-withdrawal").textContent =
`Månedlig udbetaling efter skat: $${afterTaxWithdrawal.toFixed(2)}`;
document.getElementById("summary-balance").textContent =
`Saldo ved første udbetaling: $${balance.toFixed(2)}`;
document.getElementById("total-contribution").textContent =
`$${(annualContribution * (retirementAge - currentAge)).toFixed(2)}`;
document.getElementById("total-return").textContent =
`$${(balance - currentBalance - annualContribution * (retirementAge - currentAge)).toFixed(2)}`;
document.getElementById("total-withdrawal").textContent =
`$${(afterTaxWithdrawal * totalWithdrawals).toFixed(2)}`;
document.getElementById("num-withdrawals").textContent = totalWithdrawals;
const lastWithdrawalDate = new Date();
lastWithdrawalDate.setFullYear(lastWithdrawalDate.getFullYear() + retirementYears);
document.getElementById("last-withdrawal").textContent = lastWithdrawalDate.toDateString();
// Generate Graph
generateGraph(balances);
// Generate Payment Schedule
updateSchedule(totalWithdrawals, afterTaxWithdrawal, balance);
}
function generateGraph(balances) {
const years = balances.map(b => b.year);
const balancesData = balances.map(b => b.balance);
const trace = {
x: years,
y: balancesData,
type: 'scatter',
mode: 'lines',
name: 'Saldo over tid',
line: {
color: '#4CAF50',
width: 2
}
};
const layout = {
title: '401(k) vækst over tid',
xaxis: {
title: 'Alder',
tickformat: 'd'
},
yaxis: {
title: 'Saldo ($)',
tickformat: ',.0f'
},
showlegend: false,
margin: { t: 40, r: 20, l: 60, b: 40 },
plot_bgcolor: '#fff',
paper_bgcolor: '#fff'
};
const config = {
responsive: true,
displayModeBar: false
};
Plotly.newPlot('graph-container', [trace], layout, config);
}
function updateSchedule(totalWithdrawals, withdrawalAmount, initialBalance) {
const scheduleBody = document.querySelector("#schedule-table tbody");
scheduleBody.innerHTML = ""; // Clear previous rows
let balance = initialBalance;
for (let i = 0; i < totalWithdrawals; i++) {
const row = document.createElement("tr");
balance -= withdrawalAmount;
row.innerHTML = `
${i + 1} |
$${withdrawalAmount.toFixed(2)} |
$${balance.toFixed(2)} |
`;
scheduleBody.appendChild(row);
}
}
function resetForm() {
document.getElementById("calculator-form").reset();
document.getElementById("results-container").style.display = "none";
if (document.getElementById("graph-container")) {
Plotly.purge("graph-container");
}
}
});
Hvad er en 401(k) beregner?
401(k) beregneren er et værktøj designet til at hjælpe dig med at planlægge din pension ved at estimere, hvor meget du kan spare op og trække fra din 401(k) konto. Denne beregner tager højde for bidrag fra både dig og din arbejdsgiver, forventede afkast og skattemæssige konsekvenser i udbetalingsfasen. Den giver også en detaljeret graf og betalingsplan for at hjælpe med at visualisere din opsparingsvækst og udbetalinger over tid.
Hvordan fungerer det?
Beregneren fungerer i to hovedfaser:
1. Opsparingsfase
- I denne fase estimerer beregneren din 401(k) saldo ved pensionering baseret på din årlige løn, nuværende kontosaldo, bidragsprocent, arbejdsgiverbidrag og den forventede afkastprocent.
- Den tager højde for arbejdsgiverbidrag op til en specificeret grænse, hvilket sikrer en realistisk projektion.
2. Udbetalingsfase
- Når du når pensionsalderen, bestemmer beregneren dit månedlige udbetalingsbeløb baseret på din saldo, forventet udbetalingsfrekvens og antallet af pensionsår.
- Den tager højde for indkomstskat for at give et estimat af udbetalinger efter skat.
Formel brugt i 401(k) beregneren
Opsparingsfase
Udbetalingsfase
Sådan bruger du 401(k) beregneren
- Indtast dine oplysninger: Angiv din årlige løn, nuværende 401(k) saldo, bidragsprocent og andre nødvendige input i "Opsparingsfase" sektionen.
- Angiv pensionsoplysninger: Indtast din pensionsalder, forventede år i pension og udbetalingsfrekvens i "Udbetalingsfase" sektionen.
- Beregning: Klik på "Beregn" knappen for at generere resultater, herunder månedlige bidrag, udbetalingsbeløb og en opdeling af din 401(k) saldo.
- Gennemgå graf og plan: Se en graf over din 401(k) saldo over tid og en detaljeret betalingsplan for udbetalinger.
Fordele ved 401(k) beregneren
- Pensionsplanlægning: Hjælper med effektivt at planlægge din pensionsopsparing.
- Visuelle indsigter: Giver et klart billede af din opsparingsvækst og udbetalinger.
- Skattemæssige justeringer: Tager højde for skatter for at give et realistisk billede af pensionsindkomsten.
- Tilpasningsdygtig: Muliggør justeringer i opsparingsprocent, arbejdsgiverbidrag og skattesats for personlig planlægning.
Ofte stillede spørgsmål
- Hvad er en 401(k)?
- En 401(k) er en pensionsopsparingsplan, der tilbydes af arbejdsgivere i USA. Den giver medarbejdere mulighed for at spare op og investere en del af deres løn, før skatter trækkes fra.
- Hvor nøjagtige er resultaterne?
- Beregneren giver estimater baseret på de oplysninger, du angiver. Faktiske resultater kan variere på grund af ændringer i markedsforhold, inflation eller uventede udbetalinger.
- Hvorfor inkludere arbejdsgiverbidrag?
- Arbejdsgiverbidrag har en betydelig indvirkning på din samlede opsparing. At inkludere det sikrer en realistisk projektion af din pensionssaldo.
- Kan jeg justere udbetalingsfrekvensen?
- Ja, beregneren giver dig mulighed for at vælge månedlige, kvartalsvise eller årlige udbetalinger i udbetalingsfasen.
Konklusion
Ved at bruge 401(k) beregneren kan du træffe informerede beslutninger om din pensionsopsparing. Juster din bidragsprocent, arbejdsgiverbidrag og udbetalingsstrategi for at sikre en sikker økonomisk fremtid.