Term

Tax Lot

Published May 7, 2026
Definition

A tax lot is a discrete batch of a security carrying its own acquisition date, share count, cost basis, and holding-period clock. Buying 100 shares once creates one lot; buying 100 shares across three different days creates three lots, each tracked separately for tax purposes.

Lot-level accounting is required because the IRS taxes each disposition based on which specific shares were sold, not on aggregate position. Holding period (short vs long) is a per-lot determination — selling shares acquired 11 months ago triggers ordinary-income rates, selling shares acquired 13 months ago triggers long-term capital-gains rates, even if both lots are in the same account at the same brokerage on the same ticker.

Default lot-relief methods vary by asset class. Equities default to FIFO (first-in-first-out) under SEC rules. Mutual funds historically defaulted to average cost. Brokers must let customers elect alternative methods (LIFO, HIFO, specific lot ID) at trade time, but the elections are sticky — once executed, they cannot be retroactively undone for that trade.

Lot-level data is also the only path to correct wash-sale handling. When a loss is disallowed under §1091, the disallowed amount is added to the basis of the replacement lot — not redistributed across the position. Aggregate-basis systems can compute the wash-sale flag but cannot store the basis adjustment in the right place. Engines that ship without lot-level inventory ship with a known correctness gap on TLH workflows.

Why this matters for synthetic data

Realistic lot data is one of the larger separators between toy synthetic datasets and audit-grade ones. A typical mass-affluent household carries 30–80 lots across 3–5 accounts; an equity-comp-heavy or pre-retirement household carries 150–300 lots across 5–8 accounts. Synthetic data that ships with a single aggregate position per ticker fails any backtest that depends on holding-period mix, basis-spread distribution, or wash-sale cross-account replay.

Common pitfalls

  • Storing lots as denormalized fields on a position rather than as first-class records — makes wash-sale adjustment storage clumsy.
  • Letting fractional-share DRIP lots accumulate without rounding rules; positions can drift into impossible decimal-precision states.
  • Forgetting that gifted lots inherit the donor's basis AND holding period — re-clocking them creates a tax bug on disposition.
  • Treating a transfer-in lot as a new acquisition for holding-period purposes; in-kind transfers preserve the original lot's date.

Examples

Lot ledger entry

Minimum schema for a tax-aware sell engine.

{
  "lot_id": "L-2024-03-14-VTI-001",
  "symbol": "VTI",
  "shares": 50,
  "acquisition_date": "2024-03-14",
  "acquisition_method": "purchase",
  "cost_basis_per_share": 218.42,
  "holding_period": "short",
  "wash_sale_disallowed": 0,
  "qsbs_qualified": false
}

Frequently asked questions

How many lots per household is realistic for testing?+
Mass-affluent: 30–80 across 3–5 accounts. Pre-retirement / equity-comp: 150–300 across 5–8 accounts. UHNW with private investments and entity holdings: 500+ when alternative-investment lots are included.
Why does the broker default to FIFO?+
FIFO is the legacy default under SEC rules and persists because it requires the least state — sell against the oldest open lots, no per-trade election needed. It is also usually the worst tax outcome for an appreciating asset, because oldest lots tend to have the lowest basis and largest gains.