In-Depth Guide

How to Extract Cost Basis from 1099-B Forms for Accurate Tax Reporting

Master the complexities of covered vs non-covered securities, wash sale adjustments, and Schedule D reconciliation

· 5 min read

Learn how to accurately extract cost basis information from 1099-B forms, handle wash sale adjustments, and reconcile data for Schedule D filing.

Understanding 1099-B Structure and Cost Basis Reporting Requirements

Form 1099-B reports proceeds from broker and barter exchange transactions, but cost basis reporting varies significantly based on when securities were acquired and their type. Box 1e indicates whether cost basis is reported to the IRS: a checkmark means "covered securities" where brokers must report cost basis, while blank indicates "non-covered securities" where you're responsible for tracking basis. Covered securities include stocks acquired after January 1, 2011, bonds after January 1, 2014, and options after January 1, 2014. The form's Box 3 shows the cost basis amount, but only for covered securities. Box 1f uses codes like "A" for short-term gain/loss or "D" for long-term, while Box 1g indicates wash sale loss disallowed amounts. When extracting this data, pay special attention to the "Various" entries in boxes 1b (acquisition date) and 1c (sale date), which indicate multiple lots sold in a single transaction. These consolidated entries require drilling down into the broker's supplemental statements to get individual lot details needed for accurate Schedule D reporting. The challenge intensifies with brokers like Charles Schwab, whose 1099-B forms can span 20+ pages for active traders, mixing covered and non-covered securities in seemingly random order.

Handling Covered vs Non-Covered Securities Cost Basis

The distinction between covered and non-covered securities fundamentally changes how you extract and verify cost basis information. For covered securities, Box 3 of Form 1099-B provides the broker's calculated cost basis, but this figure often requires adjustment for corporate actions, return of capital distributions, or previous wash sales that occurred across tax years. Fidelity's 1099-B forms, for example, include a separate "Supplemental Information" section that details these adjustments with specific per-share amounts and dates. Non-covered securities present a bigger challenge since Box 3 remains blank, and you must reconstruct cost basis from your own records. This becomes particularly complex with dividend reinvestment plans (DRIPs) where fractional shares accumulate over years with varying basis amounts. When extracting non-covered data, focus on Box 1d (proceeds) and use your brokerage's year-end statements to match lot identification methods. Many brokers default to FIFO (first-in, first-out) for lot selection, but if you elected specific identification or average cost method for mutual funds, the 1099-B won't reflect this—you'll need to calculate the proper basis separately. E*TRADE's supplemental statements include a "Lot Details" section with acquisition dates and costs that don't appear on the main 1099-B form, requiring careful cross-referencing.

Decoding Wash Sale Adjustments and Their Impact on Cost Basis

Wash sale adjustments on Form 1099-B can significantly distort apparent losses, making accurate extraction crucial for proper tax reporting. Box 1g shows the disallowed loss amount when you sell securities at a loss and purchase substantially identical securities within 30 days before or after the sale. However, the 1099-B's wash sale reporting only captures transactions within the same brokerage account during the same tax year. If you bought replacement shares in a different account, through your spouse's account, or in an IRA, you must manually calculate additional wash sale adjustments that won't appear on the form. TD Ameritrade's 1099-B includes a "W" code in Box 1f when wash sale rules apply, but their supplemental details show both the original loss amount and the disallowed portion separately. The adjusted cost basis of the replacement shares increases by the disallowed loss amount, but this adjustment often doesn't appear until those replacement shares are sold, sometimes in a subsequent tax year. When extracting wash sale data, note that some brokers like Vanguard include a narrative section explaining complex wash sale scenarios involving multiple funds or ETFs tracking the same index. These explanations are critical because the numerical boxes alone don't capture the full impact on your cost basis calculations.

Reconciling Extracted Data with Schedule D Requirements

Transferring extracted 1099-B cost basis data to Schedule D requires careful attention to aggregation rules and proper categorization by holding period. The IRS allows you to aggregate transactions with identical CUSIPs, sale dates, and holding period classifications into single Schedule D entries, but only if you report the totals accurately. TurboTax's import feature expects specific column headers when uploading CSV files: "Security Name," "Date Acquired," "Date Sold," "Sales Price," "Cost Basis," and "Adjustment Code." However, many brokers' 1099-B forms list securities with truncated names that don't match the full security descriptions required for Schedule D, necessitating manual lookup of complete company names or fund titles. The reconciliation process becomes complex when dealing with return of capital distributions, which reduce your cost basis but don't appear as taxable events on the 1099-B. Mutual fund companies like Vanguard issue separate statements showing these adjustments, which you must apply retroactively to transactions reported on your 1099-B. Professional tax software like Lacerte allows you to import 1099-B data directly from major brokers' electronic files, but still requires manual review because the software can't catch cross-account wash sales or basis adjustments from corporate actions that occurred before the current tax year. The final reconciliation step involves comparing your Schedule D totals with the 1099-B summary amounts, recognizing that legitimate differences may exist due to these various adjustments.

Practical Extraction Techniques and Common Pitfalls

Efficient cost basis extraction requires systematic approaches that account for the varying formats brokers use in their 1099-B presentations. Adobe Acrobat Pro's "Export to Excel" function works reasonably well with digital 1099-B forms from major brokers, but often misaligns data when forms span multiple pages or use complex table structures. A more reliable approach involves using the "Prepare Form" tool in Acrobat Pro to identify form fields, then exporting just the data fields to avoid formatting issues. However, scanned 1099-B forms present additional challenges—OCR software frequently misreads the small font sizes brokers use, particularly when distinguishing between zeros and capital O's in CUSIP numbers, or confusing commas and periods in dollar amounts. When processing Merrill Lynch 1099-B forms, which use a condensed font for transaction details, OCR accuracy drops to roughly 85-90% without preprocessing, requiring manual verification of every extracted figure. The most error-prone extractions involve supplemental pages that list "Various" transaction details, where a single misread date or amount can throw off entire lot calculations. To mitigate these issues, cross-reference extracted totals against the summary figures that appear at the bottom of most 1099-B forms—if your detail adds up correctly but doesn't match the summary, look for hidden adjustments or additional pages. Some tax professionals maintain extraction templates in Excel with data validation rules that flag implausible dates (like acquisition dates after sale dates) or amounts that seem disproportionate to typical transaction sizes.

Who This Is For

  • Tax preparers handling investment income
  • Individual investors managing their own taxes
  • Accounting professionals reconciling client portfolios

Limitations

  • 1099-B forms only show same-account wash sales within the tax year
  • Non-covered securities require external cost basis records
  • Corporate action adjustments may not be fully detailed on the main form

Frequently Asked Questions

What's the difference between covered and non-covered securities on 1099-B forms?

Covered securities have cost basis reported by brokers to the IRS (indicated by a checkmark in Box 1e), while non-covered securities require you to provide cost basis from your own records. Coverage depends on acquisition dates: stocks after 2010, bonds and options after 2013.

How do I handle wash sale adjustments when extracting cost basis?

Box 1g shows disallowed wash sale losses, but 1099-B only captures same-account, same-year transactions. You must manually calculate additional wash sales across accounts or tax years, and add disallowed losses to replacement shares' cost basis.

Why doesn't my extracted data total match the 1099-B summary?

Differences often stem from return of capital distributions, corporate action adjustments, or multi-year wash sale carry-forwards that affect cost basis but aren't detailed in the main transaction listings. Check supplemental pages and prior-year adjustments.

Can I aggregate multiple transactions for Schedule D reporting?

Yes, you can combine transactions with identical CUSIPs, sale dates, and holding periods into single Schedule D entries, but you must report accurate totals and maintain detailed records supporting the aggregation.

Ready to extract data from your PDFs?

Upload your first document and see structured results in seconds. Free to start — no setup required.

Get Started Free

Related Resources