You sold stock or crypto and got a 1099-B or 1099-DA. The IRS wants to know each transaction’s date, proceeds, cost basis, and gain/loss on Form 8949. The form is where capital gains and losses are calculated before flowing to Schedule D.
Form 8949 is the IRS form for reporting capital gains and losses from the sale of capital assets (stocks, bonds, mutual funds, ETFs, crypto, real estate, and other investments). The form is required for every taxable sale, even if the gain or loss is $0. The form has 2 parts: Part I for short-term (held 1 year or less) and Part II for long-term (held more than 1 year). Each transaction is one row, and the totals flow to Schedule D (Capital Gains and Losses). The form supports adjustment codes (flags) for special situations like wash sales, like-kind exchanges, and missing basis.
Form 8949 is the IRS form for reporting capital gains and losses. One row per transaction. 7 columns: description, dates, proceeds, cost basis, adjustment code, adjustment amount, gain/loss. Short-term to Part I, long-term to Part II. Totals flow to Schedule D.
For the broader bank statement workflow, see the bank statement converter. For the 1099-DA, see the Form 1099-DA. For the 1099-B vs 1099-DA comparison, see the 1099-DA vs 1099-B. For the bank statement glossary, see the bank statement glossary.
What most Form 8949 guides miss is that the form is not just a tax form. It is the calculation engine for capital gains taxes. The 7 columns are not arbitrary; each one affects the final tax bill. The date of acquisition determines short-term vs long-term (and the tax rate, 22-37% vs 0-20%). The cost basis determines the gain or loss (and whether you overpay or underpay tax). The adjustment code handles special situations (wash sales, like-kind exchanges, missing basis). Most tax software auto-fills the form, but the taxpayer should still understand each column to verify the auto-fill is correct. Errors in Form 8949 lead to IRS notices, amended returns, and penalties. The fix: understand each column, verify each transaction, and use adjustment codes when needed.
What Is Form 8949?
Form 8949 is the IRS form for reporting sales and other dispositions of capital assets. The form is filed with the annual Form 1040 (individual income tax return) and supports Schedule D (Capital Gains and Losses).
The 4 main uses of Form 8949:
1. Stock and bond sales (1099-B). The broker issues a 1099-B for stock, bond, ETF, and mutual fund sales. Each transaction on the 1099-B becomes a row on Form 8949. The columns are pre-filled (description, dates, proceeds, cost basis), and the taxpayer calculates the gain/loss.
2. Crypto asset sales (1099-DA). The crypto broker issues a 1099-DA for digital asset sales. Each transaction on the 1099-DA becomes a row on Form 8949. The columns may be partially filled (description, dates, proceeds), and the taxpayer may need to provide the cost basis (the most common 1099-DA gap).
3. Real estate sales (1099-S). The real estate closing agent issues a 1099-S for property sales. The transaction becomes one row on Form 8949. The gain or loss is calculated after adjustments (selling costs, improvements, depreciation recapture).
4. Other capital asset sales. Collectibles, art, jewelry, business property, and other capital assets also go on Form 8949. The 1099 may not be issued, so the taxpayer self-reports the transaction.
The 7 Columns of Form 8949
Form 8949 has 7 columns per row. Each column is required for every transaction.
Column (a): Description of property. The name and quantity of the asset. Examples: “100 shares of AAPL,” “0.5 BTC,” “1 rental property at 123 Main St.”
Column (b): Date acquired. The date the asset was originally acquired. For long-term vs short-term classification, the holding period is calculated from this date. If multiple lots were acquired on different dates, the taxpayer can use the earliest date, the average date, or specific identification (per IRS rules).
Column (c): Date sold or disposed. The date the asset was sold. For wash sale rules, the holding period is calculated from this date.
Column (d): Proceeds (sales price). The gross amount received from the sale. For a stock sale, this is the sale price (not the net after commissions). The commissions are subtracted in Column (e) or as an adjustment.
Column (e): Cost or other basis. The original purchase price plus any acquisition costs (commissions, fees). For a stock purchase, the cost basis is the purchase price plus commissions. For an inherited asset, the cost basis is the fair market value at the date of death (stepped-up basis).
Column (f): Code. The adjustment code for special situations. Common codes: W (wash sale), B (basis reported to IRS), T (non-covered security), C (cost basis missing, taxpayer provides), and others. See the Form 8949 instructions for the full list.
Column (g): Adjustment amount. The dollar amount of the adjustment. For code W (wash sale), the adjustment is the loss disallowed. For code C (missing basis), the adjustment is the difference between the reported basis and the correct basis.
Column (h): Gain or (loss). The result: Column (d) – Column (e) + Column (g). The result is the gain or loss for this transaction. Positive = gain, negative = loss.
Turn That PDF Into a Spreadsheet in Minutes
You've seen how to do it manually — now let the tool handle the heavy lifting. Upload your bank statement and get Excel, CSV, or QBO in a few clicks.
Try It FreeShort-Term vs Long-Term: The Tax Rate Difference
The holding period determines the tax rate:
Short-term (held 1 year or less). Taxed at the ordinary income tax rate: 10-37% depending on the taxpayer’s bracket. For a high-income taxpayer, short-term gains can be taxed at 37%.
Long-term (held more than 1 year). Taxed at the long-term capital gains rate: 0%, 15%, or 20% depending on the taxpayer’s income. For most taxpayers, long-term gains are taxed at 15%.
The difference: a $10,000 gain held short-term in a 32% bracket is taxed $3,200. The same gain held long-term is taxed $1,500. Holding for 1 year + 1 day saves $1,700.
For the holding period rules, see IRS Publication 550 (Investment Income and Expenses) and the Form 8949 instructions.
The 7 Adjustment Codes
7 adjustment codes that appear on Form 8949:
Code A: Build the holding period from a like-kind exchange. Used when an asset was received in a Section 1031 like-kind exchange. The holding period of the original asset carries over to the new asset.
Code B: Basis reported to the IRS. Used when the broker reported the cost basis to the IRS on Form 1099-B. The taxpayer confirms the basis is correct.
Code C: Cost basis missing or incorrect, taxpayer provides. Used when the broker did not report the basis (or reported $0) and the taxpayer has the correct basis. The adjustment in Column (g) is the difference.
Code D: Wash sale loss disallowed. Used when the loss is disallowed under the wash sale rule (the taxpayer bought substantially identical security within 30 days before or after the sale). The adjustment is the loss amount.
Code E: Net long-term gain or loss from a partnership, S-corp, or trust. Used for pass-through entities that report capital gains on Schedule K-1. The gain or loss is aggregated from the K-1.
Code F: Like-kind exchange (Section 1031). Used for real estate or other like-kind exchanges. The gain is deferred until the new property is sold.
Code T: Non-covered security. Used when the broker did not report the basis to the IRS (typically for older securities acquired before 2011). The taxpayer self-reports the basis.
Other codes (G, H, I, J, K, L, M, N, O, P, Q, R, S, U, V, W, X, Y, Z) cover other special situations. See the Form 8949 instructions for the full list.
The 5 Common Form 8949 Mistakes
5 mistakes that consistently cause problems for taxpayers filing Form 8949:
1. Missing the cost basis (overpaying tax). A 1099-B or 1099-DA may show $0 cost basis. The taxpayer must provide the correct basis using adjustment code C. Otherwise, the gain is calculated as full proceeds, and the taxpayer overpays tax by the cost basis amount.
2. Wrong holding period (wrong tax rate). A transaction held for 1 year + 1 day is long-term. A transaction held for 1 year is short-term. The 1-day difference changes the tax rate from 0-20% to 10-37%. The fix: verify the holding period for each transaction.
3. Double-counting transactions. A wallet-to-wallet transfer is not a taxable event. A sale is. The taxpayer may report both the transfer and the sale, double-counting the gain. The fix: report only the sale, not the transfer.
4. Missing adjustment code W (wash sale). A loss on a stock sale may be disallowed if the taxpayer bought the same stock within 30 days. The disallowed amount is the wash sale adjustment. The fix: track all purchases and sales, identify wash sales, and use code W.
5. Reporting the wrong proceeds (gross vs net). A 1099-B may show gross proceeds (before commissions). The taxpayer must subtract the commissions to get the net proceeds. The fix: verify the proceeds column, and subtract commissions in the cost basis column or as an adjustment.
A common failure mode bookkeepers report is the taxpayer using tax software that auto-fills Form 8949 with the wrong basis, leading to overpayment. The fix: review each row of Form 8949 before filing, especially the basis and adjustment columns.
Form 8949 and Schedule D: How They Connect
Form 8949 totals flow to Schedule D (Capital Gains and Losses):
Schedule D Part I: Short-term gains and losses. The totals from Form 8949 Part I (short-term) flow to Schedule D Part I. The net short-term gain or loss is calculated.
Schedule D Part II: Long-term gains and losses. The totals from Form 8949 Part II (long-term) flow to Schedule D Part II. The net long-term gain or loss is calculated.
Schedule D Part III: Summary. The net short-term and net long-term are combined. The result is the total capital gain or loss for the year. The total flows to Form 1040.
If the total is a gain, the taxpayer pays capital gains tax. If the total is a loss, the taxpayer can deduct up to $3,000 per year ($1,500 if married filing separately) against ordinary income, with the remainder carried forward to future years.
Form 8949 for Specific Asset Types
3 asset types have specific Form 8949 rules:
Stocks and bonds (1099-B). The broker issues a 1099-B with the proceeds and basis. The taxpayer reports the transaction on Form 8949, using code B if the basis is reported to the IRS. The wash sale rule applies if the same security was bought within 30 days.
Crypto (1099-DA). The crypto broker issues a 1099-DA with the proceeds and (sometimes) the basis. The taxpayer reports the transaction on Form 8949, using code C if the basis is missing. The wash sale rule for crypto is being phased in (2025+).
Real estate (1099-S). The closing agent issues a 1099-S with the gross proceeds. The taxpayer reports the transaction on Form 8949, calculating the gain after adjustments (selling costs, improvements, depreciation recapture for rental property). The Section 121 exclusion may apply for primary residence sales.
For the broader 1099-DA workflow, see the Form 1099-DA guide. For the 1099-B vs 1099-DA comparison, see the 1099-DA vs 1099-B. For the crypto tax workflow, see the crypto tax statement guide.
The 3 Tools for Form 8949
3 tools that simplify the Form 8949 workflow:
1. Tax software (TurboTax, H&R Block, TaxAct). Imports the 1099-B or 1099-DA, auto-fills Form 8949, calculates the gain/loss, and generates the form for filing. The cost is $0-200 per return.
2. Crypto tax software (CoinTracker, Koinly, TokenTax). Imports the wallet and exchange transactions, calculates the cost basis using FIFO/HIFO/specific ID, and generates the 1099-DA. The cost is $0-300 per year.
3. Spreadsheet (Excel, Google Sheets). For investors with simple portfolios, a spreadsheet with the 1099-B data and the cost basis can generate Form 8949 manually. The cost is $0 but the time is significant.
For the workflow that produces clean bank statement data for the cost basis verification, see the bank statement converter. The output is structured data with the proceeds, the basis, and the resulting gain/loss for each transaction.
The Memorable Line
Form 8949 is the calculation engine for capital gains taxes. 7 columns. Short-term vs long-term. 1 day changes the rate. The form is where the math becomes the tax bill.
Related Pages
For the 1099-DA, see the Form 1099-DA. For the 1099-B vs 1099-DA comparison, see the 1099-DA vs 1099-B. For the crypto tax workflow, see the crypto tax statement guide. For the crypto cost basis methods, see the 1099-DA cost basis methods. For the 1099-DA reconciliation with the bank statement, see the 1099-DA bank statement reconciliation. For the tax preparer workflow, see the bank statements for tax preparers. For the bank statement glossary, see the bank statement glossary.
For the workflow that produces clean bank statement data for the cost basis verification, see the bank statement converter. The output is structured data with the proceeds, the basis, and the resulting gain/loss for each transaction, ready for Form 8949.
Turn PDF Bank Statements Into Workable Spreadsheets
Your bank statement is a mess of numbers, but your books shouldn't be. Use our converter to get Excel, CSV, or QBO files — ready for QuickBooks.
Try It Free Now







