SD-12.17 — Tax-Lot Accounting

Business Domain: BD-12 Investment Operations & Servicing (Back office) · Applies: BOTH

Purpose

Runs the per-client per-position tax-lot accounting discipline — opening and closing lots on every buy and sell under the selected lot-relief method, identifying and adjusting for wash sales, generating the per-client tax record, and supporting tax-loss harvesting. SD-12.17 is the operational tax-bookkeeping engine the wealth-manager industry runs at scale, and the institutional investor with taxable accounts runs at smaller scale. It carries the lot-level grain that the broader ABOR book (SD-12.2) does not — a position in a single instrument may sit across many tax lots, each with its own cost basis, acquisition date and lot-relief eligibility, and the tax outcome depends on which lot a sale draws against.

It is not SD-17.4 Investment & Portfolio Tax — SD-17.4 is the strategic and treaty tax discipline at the portfolio and fund layer (withholding reclaims, treaty positions, FATCA / CRS, tax-aware accounting framework). SD-12.17 is the operational lot-level engine that runs under it, applying the rules SD-17.4 establishes to every buy and sell. It is also not SD-15.15 Financial & Wealth Planning — SD-15.15 advises on after-tax wealth strategy as part of the comprehensive plan; SD-12.17 operates the per-lot bookkeeping that produces the after-tax position the advice runs against. SD-17.4 sets the strategic rules; SD-12.17 operates the per-lot accounting; SD-15.15 advises around the outcome.

Service Operations

  • Maintain per-client per-position tax lots — open and close tax lots on every buy and sell, by the selected lot-relief method (specific_id / fifo / lifo / hifo / min_tax); track each lot’s cost basis (including reinvested dividends and corporate-action adjustments), acquisition date, and short-term / long-term qualification.
  • Run wash-sale identification and adjustment — apply the 30-day-before / 30-day-after window (IRC §1091 in the US, equivalent regimes elsewhere), identify wash-sale events, disallow the loss, and adjust the basis of the replacement lot accordingly.
  • Generate the per-client tax record — produce the per-client tax-reporting form (the 1099-B in the US, the equivalent reporting form by jurisdiction), the realised-gain breakdown by short-term / long-term, and the cost-basis annual statement.
  • Support tax-loss harvesting — surface the candidate set of loss-realisation opportunities (lots whose unrealised loss exceeds a threshold and that do not trigger an unintended wash-sale collision), feeding the harvesting service that SD-05.2 / SD-15.15 may operate.
  • Reconcile against the broker / custodian tax record — match the firm’s lot record against the custodian’s basis record and the broker’s tax form, surface and resolve breaks; the lot-level twin of SD-12.10’s position reconciliation.

Inputs and outputs

  • Inputs: E-05 Transaction from SD-12.1 (every buy and sell that opens or closes a lot, including the wash-sale-relevant cancellations); E-04 Holding / Position (book = abor — tax-lot accounting runs on the accounting book); E-06 Cash Flow Event from SD-12.1 (reinvested dividends, return-of-capital adjustments, the tax-relevant cash events); the tax rules and lot-relief method elections from SD-17.4; the custodian / broker tax record (the external lot record the firm reconciles against).
  • Outputs: the per-client tax-lot record, the wash-sale-adjusted basis set, the per-client tax-reporting form (consumed by SD-17.4 for the strategic tax position and by SD-15.14 for client reporting), the tax-loss harvesting candidate set (consumed by SD-05.2 / SD-15.15 where the harvesting service operates), and the reconciliation-break record (handed to SD-12.10 / SD-17.4 for resolution).

Entities

  • Consumes: E-04 Holding / Position (book = abor — tax-lot accounting runs on the accounting book), E-05 Transaction, E-06 Cash Flow Event, the tax rules from SD-17.4, the custodian / broker tax record as an external feed.
  • Owns: E-32 Tax Lot — the per-(client, instrument, acquisition-tranche) lot record, append-only on the lot grain, carrying cost basis, acquisition date, lot-relief method, wash-sale-adjustment history, holding-period class, and the link to the originating transaction. SD-12.17 opens lots on every buy and closes them on every sell under the selected lot-relief method, and applies the wash-sale adjustment to replacement lots.

Standards

  • IRC §1091 — the US wash-sale rule, the 30-day window, the disallowed-loss carry, the basis adjustment.
  • IRS Form 1099-B — the US broker-side tax-reporting form for proceeds from broker and barter exchange transactions, including the realised-gain breakdown by short-term / long-term and the cost-basis reporting rules under the Emergency Economic Stabilization Act of 2008.
  • FIFO / LIFO / specific-ID / HIFO / minimum-tax lot-relief methods — the lot-selection conventions recognised in US and other jurisdictions (the IRS Publication 550 framing; the OECD-aligned conventions in non-US jurisdictions).
  • The equivalent per-jurisdiction tax-reporting regimes — the UK CGT reporting on the SA108 supplementary pages, the HMRC bed-and-breakfasting rule (the UK wash-sale analogue), the EU national variants, the Asia-Pacific regimes.
  • FATCA / CRS lot-level reporting touch-points — where the cross-jurisdiction reporting consumes lot-level data feeding back into SD-17.4.

Open extensions

  • The wash-sale identification sub-model in full — substantially-identical security rules, replacement-lot tracking, basis-adjustment cascades across multiple lots.
  • The tax-loss harvesting Service-Operation contract with SD-05.2 / SD-15.15 — the candidate-set format and the cross-account harvesting governance.
  • The lot-level reconciliation Service-Operation contract with SD-12.10 — the lot-level twin of the position-level reconciliation.

Built from open-investment-model v0.3.0 · f7452ad