Capital Gains Tax Estimator
U.S. Federal (Using Illustrative 2024 Tax Brackets)
Enter Transaction and Income Information
Estimated Federal Capital Gains Tax (2024 Rates)
Asset Description: N/A
Purchase Date: N/A
Sale Date: N/A
Holding Period: N/A
Purchase Price (Cost Basis): $0.00
Sale Price (Net Proceeds): $0.00
Capital Gain / (Loss): $0.00
Type of Gain / (Loss): N/A
- This tool provides an ESTIMATE for U.S. Federal capital gains tax for illustrative purposes only, based on the 2024 tax rates.
- It does NOT constitute tax advice. Tax laws are complex and subject to change.
- State and local capital gains taxes are NOT included.
- This estimator does not account for all possible tax situations (e.g., Net Investment Income Tax (NIIT), collectibles, qualified small business stock, loss limitations, wash sales, or carryovers).
- Consult with a qualified tax professional or refer to official IRS publications for accurate calculations and advice tailored to your specific situation.
Estimated Federal LTCG Tax: ${cgteFormatCurrency(estimatedTax)}
`; appliedRateInfo = `(Based on ${CGTE_YEAR} U.S. Federal LTCG brackets for ${filingStatus} status. Rate shown is effective rate on this gain.)`; } else { // Short-Term Capital Gain taxDetailsHTML = `This Short-Term Capital Gain of ${cgteFormatCurrency(capitalGainOrLoss)} is typically taxed at your ordinary federal income tax rates. This estimator does not calculate ordinary income tax.
`; appliedRateInfo = "Taxed at ordinary income rates."; } } else if (capitalGainOrLoss < 0) { // It's a loss taxDetailsHTML = `This is a Capital Loss of ${cgteFormatCurrency(Math.abs(capitalGainOrLoss))}. U.S. federal tax rules allow deduction of capital losses up to certain limits ($3,000 per year against ordinary income for most individuals, or used to offset other capital gains), which can be complex and may involve carryovers. This estimator does not calculate loss deductions or carryovers.
`; appliedRateInfo = "Capital Loss - see note on deduction rules."; } else { // No gain or loss taxDetailsHTML = `There is no capital gain or loss from this transaction.
`; appliedRateInfo = "No gain or loss."; } // --- Update DOM --- document.getElementById('cgte_display_asset_description').textContent = assetDescription; document.getElementById('cgte_display_purchase_date').textContent = purchaseDate.toLocaleDateString(); document.getElementById('cgte_display_sale_date').textContent = saleDate.toLocaleDateString(); document.getElementById('cgte_display_holding_period').textContent = `${holdingPeriodDays} days`; document.getElementById('cgte_display_purchase_price').textContent = cgteFormatCurrency(purchasePrice); document.getElementById('cgte_display_sale_price').textContent = cgteFormatCurrency(salePrice); const gainLossEl = document.getElementById('cgte_display_capital_gain_loss'); gainLossEl.textContent = cgteFormatCurrency(capitalGainOrLoss, true); gainLossEl.className = 'cgteResultValue ' + (capitalGainOrLoss >= 0 ? 'cgteGain' : 'cgteLoss'); document.getElementById('cgte_display_gain_type').textContent = (capitalGainOrLoss === 0) ? "No Gain/Loss" : `${gainType} Capital ${capitalGainOrLoss > 0 ? "Gain" : "Loss"}`; document.getElementById('cgteTaxDetailsSection').innerHTML = taxDetailsHTML; window.cgteReportData = { assetDescription, purchaseDateStr: purchaseDate.toLocaleDateString(), saleDateStr: saleDate.toLocaleDateString(), holdingPeriodDays, purchasePrice, salePrice, capitalGainOrLoss, gainType, filingStatus, taxableIncome, estimatedTax, appliedRateInfo, CGTE_YEAR }; cgteOpenTab(null, 'cgteTabResults'); } function cgteGeneratePdf() { if (typeof jspdf === 'undefined' || !window.cgteReportData) { alert('PDF library or report data is not available. Please calculate first.'); return; } const { jsPDF } = jspdf; const doc = new jsPDF(); const data = window.cgteReportData; doc.setFontSize(18); doc.setTextColor(44, 62, 80); doc.text("Capital Gains Tax Estimator Report", 105, 20, null, null, "center"); doc.setFontSize(10); doc.setTextColor(120,120,120); doc.text(`U.S. Federal (Illustrative ${data.CGTE_YEAR} Tax Brackets) - Report Date: ${new Date().toLocaleDateString()}`, 105, 27, null, null, "center"); let yPos = 40; doc.setFontSize(12); doc.setTextColor(44, 62, 80); function addRow(label, value) { doc.setFont(undefined, 'normal'); doc.text(label, 14, yPos); doc.setFont(undefined, 'bold'); doc.text(String(value), 80, yPos); yPos += 7; } doc.setFontSize(14); doc.text("Transaction Details", 14, yPos); yPos += 8; doc.setFontSize(10); addRow("Asset Description:", data.assetDescription); addRow("Purchase Date:", data.purchaseDateStr); addRow("Sale Date:", data.saleDateStr); addRow("Holding Period:", `${data.holdingPeriodDays} days`); addRow("Purchase Price (Cost Basis):", cgteFormatCurrency(data.purchasePrice)); addRow("Sale Price (Net Proceeds):", cgteFormatCurrency(data.salePrice)); const gainLossText = data.capitalGainOrLoss >= 0 ? "Capital Gain:" : "Capital Loss:"; addRow(gainLossText, cgteFormatCurrency(Math.abs(data.capitalGainOrLoss))); addRow("Type of Gain/Loss:", `${data.gainType} Capital ${data.capitalGainOrLoss > 0 ? "Gain" : (data.capitalGainOrLoss < 0 ? "Loss" : "N/A")}`); yPos += 5; doc.setFontSize(14); doc.text("Tax Estimation Details", 14, yPos); yPos += 8; doc.setFontSize(10); addRow("Tax Filing Status:", data.filingStatus.toUpperCase()); addRow("Est. Annual Taxable Income:", cgteFormatCurrency(data.taxableIncome)); yPos += 2; if (data.capitalGainOrLoss > 0) { if (data.gainType === "Long-Term") { addRow("Estimated LTCG Tax Rate Info:", data.appliedRateInfo); addRow("Estimated Federal LTCG Tax:", cgteFormatCurrency(data.estimatedTax)); } else { // Short-Term doc.text(`Short-Term Gain of ${cgteFormatCurrency(data.capitalGainOrLoss)} is typically taxed at ordinary income rates.`, 14, yPos); yPos+=5; doc.text("This estimator does not calculate ordinary income tax.",14,yPos); yPos+=5; } } else if (data.capitalGainOrLoss < 0) { doc.text(`This is a Capital Loss. See notes on deduction rules.`, 14, yPos); yPos+=5; } else { doc.text("No capital gain or loss from this transaction.", 14, yPos); yPos+=5; } yPos += 7; doc.setFontSize(9); doc.setTextColor(108, 117, 125); const disclaimerTitle = "Disclaimer:"; const disclaimer = [ "- This tool provides an ESTIMATE for U.S. Federal capital gains tax for illustrative purposes only, based on the " + data.CGTE_YEAR + " tax rates.", "- It does NOT constitute tax advice. Tax laws are complex and subject to change.", "- State and local capital gains taxes are NOT included.", "- This estimator does not account for all possible tax situations (e.g., Net Investment Income Tax (NIIT), collectibles, qualified small business stock, loss limitations, wash sales, or carryovers).", "- Consult with a qualified tax professional or refer to official IRS publications for accurate calculations and advice tailored to your specific situation." ]; doc.setFont(undefined,'bold'); doc.text(disclaimerTitle, 14, yPos); yPos +=5; doc.setFont(undefined,'normal'); disclaimer.forEach(line => { const splitLine = doc.splitTextToSize(line, doc.internal.pageSize.getWidth() - 28); doc.text(splitLine, 14, yPos); yPos += (splitLine.length * 4); }); doc.save('CapitalGainsTax_Estimate.pdf'); }