Portfolio Tax Lots


title: Portfolio Tax Lots description: FIFO capital-gains estimates for the Portfolio Planner transaction ledger.

Portfolio Tax Lots

The Tax Lots page rebuilds FIFO lots from the read-only portfolio transaction ledger and groups realized capital gains by the Indian financial year (1 April through 31 March, IST). It is an estimate to help reconciliation; it is not an ITR filing or personalised tax advice.

Endpoint

GET /api/portfolio/reports/tax-lots?portfolio=&fy=2025-26 returns realized lot matches, remaining open lots, unmatched sale warnings, and the summary { ltcg, stcg, exempt, taxable, est_tax }. Omit portfolio for the Networth aggregate. fy must be YYYY-YY.

Buy costs include allocated transaction fee_tax; sell proceeds subtract it. Lots are matched independently by portfolio, symbol, and currency, oldest first. A sale that is larger than the known prior ledger is flagged as unmatched_sells rather than receiving an invented zero cost basis. Split rows rescale every still-open lot for that symbol: quantity is multiplied by the recorded split ratio and per-unit cost is divided by it, preserving total basis without inventing a zero-cost lot.

Classification and rates

Current holding asset classes classify lots. Indian equity, equity mutual funds, and legacy generic mutual-fund rows use the equity path: sales strictly more than 12 months after acquisition are LTCG; otherwise STCG. Debt mutual funds and bonds use 36 months. Debt mutual funds acquired on or after 1-Apr-2023 are always classified STCG and use the configurable slab-rate estimate.

Equity LTCG uses the configured exemption once across the FY. The dashboard assumes STT has been paid for equity transactions because the current ledger does not persist a per-transaction STT field. It also cannot automatically apply 31-Jan-2018 grandfathering because no historic FMV is stored; the pure calculation supports an explicit FMV input for future import enhancements. Losses are shown in lot detail but the aggregate taxable/estimated-tax values do not model capital-loss set-off or carry-forward. The ₹1.25L equity-LTCG exemption is annual per taxpayer: a portfolio-filtered view applies it within that view and can therefore understate tax relative to the Networth aggregate.

Configure CAPITAL_GAINS_LTCG_EQUITY_MONTHS, CAPITAL_GAINS_LTCG_DEBT_MONTHS, LTCG_EQUITY_RATE, LTCG_EQUITY_EXEMPTION_INR, STCG_EQUITY_RATE, LTCG_DEBT_RATE, and the optional STCG_DEBT_RATE estimate in arb_bot.config.Config.

The Export for ITR control is deliberately deferred until the export slice; the current page does not create a filing artifact.