Wealth Transfer & Gifting Tax Impact Analyzer

Current Year Tax Parameters (User Input - Verify Annually)

E.g., for 2024/2025, this was $18,000. Check current IRS limits.
E.g., for 2024/2025, this was $13.61 million. This amount is subject to change by law.
For illustrative estate tax calculation. Current top federal rate is around 40%.

Gift History

Sum of gifts exceeding annual exclusions from all previous years that used part of your lifetime exemption.

Detail Gifts Made This Year

Gifting Impact & Illustrative Estate Analysis

Please complete inputs on previous tabs and click "Analyze Impact".

Simplified Estate Tax Illustration (Optional)

No gifts added for the current year.

"; } else { currentYearGiftsHTML += ``; } let totalGiftsThisYear = 0; let totalTaxableGiftsThisYear = 0; currentGifts.forEach(gift => { const giftVal = gift.value || 0; totalGiftsThisYear += giftVal; const coveredByExclusion = Math.min(giftVal, annualExclusion); const taxablePortion = Math.max(0, giftVal - annualExclusion); totalTaxableGiftsThisYear += taxablePortion; currentYearGiftsHTML += ``; }); if (currentGifts.length > 0) { currentYearGiftsHTML += `
RecipientGift Value ($)Covered by Annual Exclusion ($)Taxable Gift ($)
${escapeHtml(gift.name)} ${giftVal.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})} ${coveredByExclusion.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})} ${taxablePortion.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}
Total ${totalGiftsThisYear.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})} ${totalTaxableGiftsThisYear.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}
`; } currentGiftsSummaryEl.innerHTML = currentYearGiftsHTML; // 2. Lifetime Exemption Tracking const exemptionUsedByPrior = Math.min(priorTaxableGifts, lifetimeExemption); const exemptionAfterPrior = lifetimeExemption - exemptionUsedByPrior; const exemptionUsedThisYear = Math.min(totalTaxableGiftsThisYear, exemptionAfterPrior); const remainingLifetimeExemption = exemptionAfterPrior - exemptionUsedThisYear; let lifetimeImpactHTML = `

Lifetime Exemption Tracking:

Initial Lifetime Gift & Estate Tax Exemption: $${lifetimeExemption.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Less: Prior Years' Taxable Gifts Used: $${exemptionUsedByPrior.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Less: Current Year's Taxable Gifts Using Exemption: $${exemptionUsedThisYear.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Remaining Lifetime Exemption: $${remainingLifetimeExemption.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}


`; lifetimeExemptionImpactEl.innerHTML = lifetimeImpactHTML; // 3. Simplified Estate Tax Illustration let estateTaxResultsHTML = ""; if (estimatedNetEstate > 0) { const taxableEstate = Math.max(0, estimatedNetEstate - remainingLifetimeExemption); const estimatedEstateTax = taxableEstate * estateTaxRatePct; const netToHeirs = estimatedNetEstate - estimatedEstateTax; estateTaxResultsHTML = `

Estimated Net Estate Value at Death: $${estimatedNetEstate.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Less: Remaining Lifetime Exemption: $${remainingLifetimeExemption.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Illustrative Taxable Estate: $${taxableEstate.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Assumed Estate Tax Rate: ${(estateTaxRatePct * 100).toFixed(1)}%

Illustrative Estimated Estate Tax: $${estimatedEstateTax.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

Illustrative Net Estate Passing to Heirs: $${netToHeirs.toLocaleString(undefined, {minimumFractionDigits:2, maximumFractionDigits:2})}

`; } else { estateTaxResultsHTML = "

Enter an estimated net estate value above to see an illustrative tax calculation.

"; } estateTaxResultsEl.innerHTML = estateTaxResultsHTML; notesContainerEl.style.display = 'block'; downloadPdfBtn.style.display = 'block'; }); // PDF Download downloadPdfBtn?.addEventListener('click', function () { const { jsPDF } = window.jspdf; const pdfOutputArea = document.getElementById('gtaPdfOutputArea'); if (!pdfOutputArea || currentGiftsSummaryEl.innerHTML.includes("Please complete inputs")) { alert('Please analyze the impact first before downloading PDF.'); return; } html2canvas(pdfOutputArea, { scale: 1.5, useCORS: true, backgroundColor: '#ffffff', windowWidth: pdfOutputArea.scrollWidth }) .then(canvas => { const imgData = canvas.toDataURL('image/jpeg', 0.9); const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const margin = 30; let contentWidth = pdfWidth - 2 * margin; const canvasWidth = canvas.width; const canvasHeight = canvas.height; const ratio = canvasWidth / canvasHeight; let imgWidth = contentWidth; let imgHeight = imgWidth / ratio; if (imgHeight > pdfHeight - 2 * margin) { imgHeight = pdfHeight - 2 * margin; imgWidth = imgHeight * ratio; if (imgWidth > contentWidth) { imgWidth = contentWidth; imgHeight = imgWidth / ratio; } } const x = (pdfWidth - imgWidth) / 2; pdf.addImage(imgData, 'JPEG', x, margin, imgWidth, imgHeight, undefined, 'MEDIUM'); pdf.save('Gifting_Tax_Impact_Analysis.pdf'); }) .catch(err => { console.error("Error generating PDF:", err); alert("Error generating PDF. See console for details."); }); }); function escapeHtml(unsafe) { if (typeof unsafe !== 'string') return unsafe === undefined || unsafe === null ? '' : String(unsafe); return unsafe.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } switchTab('paramsTab'); });
Scroll to Top