Using Your Trading Journal for Tax Reporting: What to Track
Tax season is when a messy trading journal turns into hours of unpaid bookkeeping. If you traded stocks, options, futures, or crypto during the year, the IRS wants a line-by-line accounting of every disposition on Form 8949, rolled up onto Schedule D. Your broker's 1099-B covers most of that automatically, but it does not cover everything, and a journal that was built for strategy review is not automatically built for tax reconciliation. This is not tax advice, just a map of which fields matter and why, so you (or whoever prepares your return) are not reconstructing trade history from memory in April.
Key takeaways
- Form 8949 requires trade date acquired, trade date sold, proceeds, cost basis, an adjustment code if one applies, and the resulting gain or loss for every disposition.
- Cost basis reporting by brokers phased in starting in 2011 for equities and later for other instrument types, so older or transferred positions may be "noncovered" and require you to supply your own basis.
- The wash sale rule disallows a loss if you buy a substantially identical security within 30 days before or after a losing sale, and brokers only catch this automatically within the same account and matching CUSIP.
- A disallowed wash sale loss is reported with code W and added back as a positive adjustment, deferring rather than eliminating the loss by folding it into the replacement position's basis.
- Futures, forex, crypto, and stocks each carry cost basis differently (tick value, lots, fractional units, and shares respectively), so a journal that flattens all instruments into one model will misstate at least one of them.
- Trade date, not settlement date, is what belongs on Form 8949, and mismatching the two can shift a trade into the wrong tax year near year-end.
Why a 1099-B alone is not always enough
Brokers are required to report cost basis and proceeds on Form 1099-B (or Form 1099-DA for digital assets going forward) for securities they classify as "covered." Coverage phased in by asset type starting in 2011 for equities, 2012 for mutual funds and ETFs, and 2014 for fixed income and options, according to the IRS instructions for Form 8949. Anything you acquired before your broker's phase-in date, or that changed brokers mid-holding, is "noncovered": the broker reports the proceeds but not the basis, and you are responsible for supplying it yourself on Schedule D.
That gap is exactly where a trading journal earns its keep. If your journal already logs entry price, date, and fees for every position, you have the raw material to fill in a noncovered lot without digging through years-old statements.
The fields Form 8949 actually asks for
Form 8949 reports each disposition with the same set of columns, and your journal should be able to produce all of them for any trade without extra lookup work. Per the IRS instructions for Form 8949, every row needs:
Trade date, not settlement date, is the detail people get wrong most often, because settlement can land a day or two later and shift a trade across a tax-year boundary near December 31. A journal that timestamps the actual execution avoids that mismatch entirely.
Transactions also get sorted by holding period and by whether the broker reported basis to the IRS. Short-term trades (held one year or less) go in Part I, long-term trades in Part II, and each part splits further into boxes depending on whether a 1099-B or 1099-DA showed basis, as described in the Form 8949 instructions. If your journal already tags each closed trade with its holding period and instrument type, sorting into the right box at filing time is a filter, not a manual re-sort.
- A description of the property, including the number of shares or units.
- The date acquired (trade date, not settlement date, for exchange-traded securities).
- The date sold or disposed of (also trade date).
- Proceeds, meaning the sale price.
- Cost or other basis, meaning what you paid, including commissions and fees.
- An adjustment code, if one applies (wash sales use code W).
- The adjustment amount, if any.
- The resulting gain or loss.
Cost basis needs to include fees, not just entry price
"Cost or other basis" is not just the price you paid per share or contract. It includes commissions and transaction fees paid to acquire the position, and for a spreadsheet or journal that only logs entry price, that is an easy line item to drop. The same applies on the proceeds side: net proceeds after fees, not the gross fill price, is what belongs in column (d).
This matters more for active traders than for buy-and-hold investors, because fees compound across dozens or hundreds of trades. A journal that captures fees per fill, not just per account statement, is what makes an accurate cost basis possible without going back to broker confirmations one by one.
Wash sales: the rule your journal needs to catch that a 1099-B might not
The wash sale rule disallows a loss deduction if you sell a security at a loss and buy the same or a substantially identical security within 30 days before or after the sale, a 61-day window in total, per the Securities and Exchange Commission's investor.gov glossary. The disallowed loss is not gone, it gets added to the cost basis of the replacement position, deferring the deduction rather than erasing it.
Brokers report a wash sale adjustment on your 1099-B, but only under specific conditions: the security has to be a covered security, and the replacement purchase has to happen in the same account with the same CUSIP, according to the IRS Form 8949 instructions. Buy the replacement in a different account, or in an IRA, and the broker will not catch it, but the rule still applies. On Form 8949, a disallowed wash sale loss is reported with code W in column (f) and added back as a positive number in column (g).
This is the single biggest reason to journal every trade yourself rather than relying only on end-of-year broker paperwork: a journal that flags "reopened a similar position within 30 days of a loss" across all your accounts catches wash sales your broker structurally cannot see.
What a journal needs to reconcile against your 1099-B
Reconciliation is just matching your journal's totals to your broker's reported totals, transaction by transaction, and explaining any difference. For that to be workable rather than painful, a journal needs to record, for every closed trade:
Different instrument types carry basis differently, so a journal that flattens everything into a single "shares" model will misstate futures and forex positions. Futures are typically valued by tick size and tick value or a manually set value per move, not by a per-share cost basis, and futures CFDs and exchange-traded futures should never be recorded as the same thing since they can carry different tax treatment. Crypto trades in fractional units rather than round lots, and each disposal, including one crypto swapped for another, is a separate taxable event that needs its own row.
Astro Trading Journal records forex in lots, futures in contracts valued by tick size and tick value, crypto in fractional units, and stocks in shares, rather than forcing every instrument into a single share-based model, and it syncs fills automatically from a connected broker like MetaTrader 5 or TradeLocker, or lets you log manually at any time. That keeps the underlying trade data close to what your 1099-B and Form 8949 actually need, though it does not generate tax forms itself, and any output still needs to be checked against your broker's official statements before filing.
- Symbol and instrument type (stock, option, futures contract, or crypto asset).
- Trade date opened and trade date closed.
- Quantity, in the unit that matches how the instrument settles, shares for stock, lots for forex, contracts for futures, units for crypto.
- Entry price, exit price, and fees on both sides.
- Account or broker the trade executed through, if you trade across more than one.
- Whether the position was opened as a repurchase of a security sold at a loss within the prior 30 days.
Frequently asked questions
Does my trading journal replace my broker's 1099-B?
No. The 1099-B (or 1099-DA for digital assets) is the official record your broker sends to the IRS, and it is the starting point for your return. A journal is a reconciliation and gap-filling tool, useful for noncovered lots, cross-account wash sales, and catching entry errors, not a substitute for the broker's form.
Do I need to track every single trade, or just my net gain or loss for the year?
Form 8949 asks for each disposition individually, not a single net figure, because holding period, basis coverage, and any wash sale adjustment can differ trade by trade. Aggregating trades that share identical terms is sometimes allowed under the IRS instructions, but the underlying data still has to exist at the trade level to know whether aggregation applies.
Does the wash sale rule apply to crypto?
The wash sale rule as written applies to securities. Broker reporting and journal categorization for crypto has been an evolving area, and this article is not providing a definitive answer on crypto's treatment. If wash-sale-style trading in crypto matters to your return, confirm current treatment with a tax professional rather than relying on general guidance.
Can Astro Trading Journal generate my Form 8949 or file my taxes?
No. Astro records trade details (dates, quantities, prices, and fees) and gives you analytics and reviews on your trading, but it does not prepare or file tax forms. Use it to keep clean, exportable trade records, then hand those to your tax preparer or software of choice.
What is the difference between a covered and noncovered security for tax purposes?
A covered security is one your broker is required to report cost basis for to the IRS, generally based on when you acquired it relative to the IRS's 2011 to 2014 phase-in by instrument type. A noncovered security only has proceeds reported by the broker, meaning you are responsible for supplying the correct cost basis yourself on Schedule D.