# Itr Reconcile

> Reconcile Indian income-tax documents (AIS/TIS/26AS vs Form 16, bank interest certificates, broker/RTA/PMS statements) for ITR filing, find discrepancies, determine the applicable form (ITR-1 vs ITR-2, or ITR-4 via the itr-presumptive skill when there are business/freelance receipts), and produce a CA hand-over summary. Use when the user asks to check/reconcile tax documents, AIS, TIS, Form 26AS, capital gains, business/freelance receipts, or prepare income-tax filing for a financial year.

- Skill: `ankitkr/itr-reconcile` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ankitkr/itr-reconcile`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ankitkr/itr-reconcile/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ankitkr (https://skillmd.com/u/ankitkr)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ankitkr/itr-reconcile

---


# ITR Reconciliation (India)

Reconcile the department's view (AIS/TIS/26AS) against the taxpayer's own documents, explain every difference, and produce two outputs in the tax-year folder:
1. `Discrepancy_Report.md` — full reconciliation with reasoning
2. `CA_Handover_FY<year>.md` — filing-ready summary (income heads, capital-gain buckets, TDS, Schedule FA, open items)

## Step 0 — Document intake (do this FIRST, every year)

Establish the tax-year folder, then run this checklist: check the folder for each item, and for anything **missing but applicable, ask the filer to download it and add it to the folder before reconciling** — tell them exactly where to get it. Don't reconcile around a missing document; a late statement is how income gets omitted.

| Document | Applicable when | Where to download |
|---|---|---|
| Form 16 | salaried | employer |
| Form 26AS | always | e-filing portal → e-File → Income Tax Returns → View Form 26AS (TRACES) |
| AIS + TIS PDFs | always | e-filing portal → AIS tile |
| Prior-year filed return (JSON/ITR-V + computation) | always — continuity, CFL, FA carry-forward | e-filing portal → View Filed Returns |
| Bank statements + interest certificates, EVERY account | always | netbanking |
| CAMS capital-gain statement | MFs with CAMS-serviced AMCs | CAMS online mail-back |
| KFin/KARVY capital-gain statement | MFs with KFin-serviced AMCs | KFintech mail-back |
| Broker tax P&L (equity/F&O/MF) | any demat/trading account | broker console |
| PMS audit / capital-gain / dividend / interest statements | any PMS | PMS provider |
| EPF passbook (current FY; prior FYs if history needed) | employee contribution may exceed ₹2.5L/yr | EPFO member-passbook portal (UAN login) |
| PPF statement | PPF account | bank netbanking/branch |
| NPS transaction statement | NPS account | CRA login (Protean/KFintech) |
| Foreign: broker CY report, crypto-exchange statement (calendar year), crowdfunding portfolio export | any foreign asset → Schedule FA | each platform |
| Schedule AL inputs: property purchase costs, vehicle on-road cost, jewellery/gold/cash estimates, loans | AL applies — TI > ₹1 crore from AY 2025-26 (₹50 lakh through AY 2024-25; check the current form) | the filer provides |

Then:
- **The AIS JSON from the portal is ENCRYPTED** (needs the AIS utility) — use the AIS/TIS **PDFs** instead; they carry the same data.
- Extraction: `pdftotext -layout` if installed; else `python3 -m venv` + `pip install pypdf pdfplumber openpyxl`. For xlsx without openpyxl, parse via stdlib `zipfile` + `xml.etree` (sharedStrings + sheet XMLs; handle `inlineStr` cells). Extract AIS/TIS/26AS to text files once, then grep by section.
- Parallel subagents may summarise documents, but **re-anchor their numbers against the TIS/AIS yourself** — agents given no baseline invent placeholder totals.

## Step 1 — Extract the department's view

From **TIS**: the headline category table — use the "Accepted by Taxpayer" column.
From **AIS**: per-source detail. Section codes: TDS-192/193/194/194A, SFT-015 (dividend), SFT-016 (interest SB/TD), SFT-17 (depository sales), SFT-18 (RTA sales), SFT-006 (credit-card spend — NOT income), SFT-010/017/018 (purchases — NOT income).
From **26AS**: Part I TDS by deductor — the authoritative TDS-credit list. ⚠️ **For the advance-tax & self-assessment challan list, use the AIS "Payment of taxes" section (Part B3 of the AIS PDF, with BSR/date/serial/amount)** — 26AS does carry advance/SA challans too, but the ITR utility's Schedule-IT prefill routinely omits them, so treat AIS Part B3 (cross-checked with the e-Pay Tax history) as the authoritative extraction source and enter each manually. **TCS (redesigned 26AS Part VI; also in AIS)** — car purchases, LRS foreign remittances — is a claimable credit → reconcile into Schedule TCS. (Unlisted-company PANs for disclosure schedules: GSTIN characters 3–12 = the PAN.)

## Step 2 — Reconcile per head (known traps)

**Salary**: Form 16 gross = TIS "Annexure II" figure (usually paise-exact: monthly × 12). TDS from Form 16 quarterly totals = 26AS employer rows. **Multiple Form 16s (job switch)**: aggregate gross across employers yourself and claim the standard deduction ONCE — each employer applies full slabs and the deduction independently, so the combined TDS almost always under-withholds; expect a balance payable, not a refund.

**RSUs / ESPPs / ESOPs (esp. foreign-listed)**: the s.17(2)(vi) perquisite is **already inside Form 16** — never re-tax it as a receipt. The taxing point differs by instrument — don't blanket-apply "vest": **RSU = FMV on vesting/allotment**; **ESOP option = (FMV on the EXERCISE date − exercise price), taxed at exercise, not vest**; **ESPP = (FMV on allotment − the discounted price paid)**. Cost base for a later sale = the FMV that was counted for the perquisite (s.49(2AA)); the holding period runs from allotment; Rule 115 conversion at the perquisite date for foreign stock. **Shares withheld/sold-to-cover at vest are the employer's tax mechanics, not automatically the taxpayer's capital-gains sale** — count only broker-confirmed market sales from the taxpayer's account, and reconcile lots: opening + vests − sales = closing. Foreign-broker holdings → Schedule FA A3, and review whether the brokerage/stock-plan **account itself** needs an A2 custodial row too (conservative practice reports both — decide explicitly); their dividends → OS + FSI/Form 67; their sales → the foreign-share CG treatment below.

**House property (Schedule HP)**: reconcile rent credits in the bank statement against the lease/rent receipts; tenant TDS u/s 194-IB (rent > ₹50k/mo) shows in 26AS/AIS — claim it. Computation: gross annual value − municipal taxes (paid by the owner within the FY) = NAV; − 30% standard deduction (automatic, no receipts) − 24(b) interest. Self-occupied: NAV nil; 24(b) interest capped ₹2L and **old regime only**. Let-out: 24(b) interest deductible in both regimes, but an HP **loss** behaves completely differently by regime — **old regime**: set-off against other heads up to ₹2L (§71(3A)), the excess carries forward 8 years against HP income only (§71B); **new regime (115BAC): same-year set-off against other HP income only — NO inter-head set-off and NO carry-forward** (the disallowed loss is deemed given full effect and lapses). A material let-out loss can single-handedly swing the regime comparison — compute both. Pre-construction interest: 5 equal instalments from the completion year — never as current-year self-occupied interest. Up to two self-occupied properties; beyond that, deemed let-out at notional rent.

**Savings interest**: sum bank certificates; must equal TIS to the rupee. A certificate ending mid-year usually means the **account was closed** that day, not missing data — ask. At closure the cert's credited-to-date figure can trail AIS (which includes the closure payout interest) — report the AIS/higher figure.

**Deposit interest**: TIS bucket = bank FD interest ± premature-withdrawal reversals (banks report negatives to AIS) **plus any 194A payers**. Trap: **gold-lease platforms (e.g. Gullak/Augmont)** — lessee jewellers deduct 194A TDS and appear in AIS as "interest," but they are a **subset of the platform's lease-income certificate**. Report the certificate total once; never add the AIS lines again (claim their TDS).

**Bond/NCD interest (Sec 193)**: AIS/26AS show **only TDS-bearing coupons**. The debt-PMS/broker statement shows the full interest — report the statement figure. Containment check: the statement's "TDS on interest" total should equal 26AS Sec-193 TDS exactly; if yes, there are no separately-held bonds.

**Dividend**: sum every AIS SFT-015 row. Traps: (a) AIS marks depository/RTA duplicate rows **Inactive** — count Active only; (b) unlisted holdings (pre-IPO shares held via a broker) appear in AIS but in no dividend statement — additive; (c) demerged twins (e.g. a "Music"/"Industries" pair): TDS may be 10% of the combined dividend already counted once via SFT — claim the TDS, don't double the income; (d) a payer can report **0 to SFT while the PMS statement shows the receipt** — documents govern; (e) once the 194 threshold crosses, **TDS = 10% of the year's AGGREGATE dividend, deducted on a late tranche whose 26AS "amount credited" shows only that tranche** (TDS ≫ 10% of the shown amount is the tell) — take the SFT-015/statement full-year figure for income. Recommend max(AIS, documents-union).

**Capital gains** — the big one:
- **AIS reports SALE VALUE only, never gains** (cost column often 0 or face value). Gains must come from statements.
- Channel map: direct MF folios → CAMS/KFin **RTA** lines (SFT-18); demat-held MFs (typical for PMS) → NSDL/CDSL **depository** lines (SFT-17); PMS equity shares → "listed equity share (Depository)"; bonds → "listed debenture".
- AIS **auto-dedupes** demat-vs-RTA copies (Inactive flag). Rebuild the AIS sale total from documents — it should tie **exactly**.
- **Dedupe documents too — the #1 trap:** an RTA PnL can contain the *same lots* as a PMS audit statement (PMS holding direct-MF folios under the client PAN — both report the identical units/dates/amounts). Match on (scheme, purchase date, units, redemption date); count once.
- PMS statements show **gross rebalancing churn**; AIS may show less. Churn ≠ income; only the gain matters.
- **NCD sales often execute inside a debt PMS** — check its ledger for the same date before adding them separately. AIS debenture "gains" (face-value cost, dirty-price sale) are unreliable.
- **Verify every ST/LT split with the identity: sale − cost = ST + LT** per statement. PDF extraction can transpose ST↔LT summary labels; classify from lot-level days-held, and require per-scrip and quarterly sums to tie to the statement's printed summary.
- Build ITR buckets: 111A ST equity (**20%** — raised from 15% w.e.f. 23-Jul-2024) / 112A LT equity (₹1.25L exemption, 12.5%) / other-ST (slab; Sec 50AA makes specified debt MFs (**units acquired on/after 1-Apr-2023** — earlier units follow normal period rules), MLDs and unlisted bonds/debentures always ST — ⚠️ FA 2024 redefined "specified MF" **from AY 2026-27** as a fund with **>65% in debt/money-market** (was: >35% equity), so gold funds/equity-FoFs and non-debt ETFs fall OUTSIDE the 50AA net — a debt ETF >65% in debt stays INSIDE) / other-LT (12.5% no indexation — listed bonds qualify; unlisted ones are 50AA; land/building bought before 23-Jul-2024 gets the lower-of proviso (12.5% flat vs 20% indexed; resident individuals/HUF) — outside these securities buckets, handle separately if present). **Foreign shares (e.g. US stocks) are NOT 111A/112A — they're "unlisted" for Indian tax: LT only after >24 months @12.5% u/s 112 (no ₹1.25L exemption), else STCG at slab; convert each leg at the SBI TT-buying rate on the last day of the month before transfer (Rule 115).** A net 111A loss sets off in-return.

**Business/professional receipts (freelance, consulting, small business)**: reconcile gross receipts bottom-up — bank credits (payment gateways settle NET of fees; gross = invoice value) vs GST returns (GSTR-1/3B, where registered) vs 26AS TDS rows u/s 194J/194C/194H (each deductor implies receipts; claim the TDS) vs AIS; foreign-client receipts have no TDS — find them from FIRC/bank narrations. Full treatment, presumptive eligibility (44AD/44ADA/44AE) and the ITR-4 walk live in the `itr-presumptive` skill (beta).

**Loss set-off & carry-forward (Schedules CYLA/BFLA/CFL)**: current year — STCL sets off against any capital gain, LTCL against LTCG only, neither against other heads. Brought-forward — read the prior return's Schedule CFL, apply oldest-first in BFLA (same LTCL→LTCG-only rule), 8-year life (4 for speculation). **Set-off is mandatory where gains exist** — a loss cannot be parked to preserve the ₹1.25L 112A exemption. Carrying a CG loss forward requires the **loss-year return filed by its §139(1) due date** (§80) — a belated loss-year return forfeits the carry-forward. VDA losses never set off and never carry.

**Crypto / VDAs (§115BBH + Schedule VDA)**: Indian-exchange trades surface in the AIS VDA-transfer section (the 1% TDS u/s 194S in 26AS is the tell — claim it); foreign exchanges are AIS-blind — ask (they are also Schedule FA A2, below). Every transfer taxed **flat 30%** + cess, **no deduction except cost of acquisition** (no brokerage/expenses/indexation), **no loss relief at all** — a loss on one VDA offsets nothing, not even a gain on another VDA, and never carries forward. Report trade-wise in Schedule VDA (gains also flow to Schedule SI). VDAs received as gift/airdrop are taxable for the recipient u/s 56(2)(x) — subject to its ₹50k aggregate threshold and the relative/occasion exemptions; staking/"Earn" rewards at receipt are unsettled — flag for a professional call.

**Not income**: SFT-006 credit-card payments, securities purchases — informational; but sanity-check card spend vs declared income (a spend ≫ income invites queries — keep the funding trail).

**Family / personal bank transfers**: before classifying, **check the running balance to confirm each is actually a CREDIT, not a DEBIT** — a "/Name/" narration can be either, and an apparent gift can be a self-transfer (e.g. own-HUF account). Then classify: **gift from a RELATIVE** (s.56(2)(x) list) = exempt → Schedule EI (the AY 2026-27 utility's EI dropdowns may lack a gifts category — the exemption stands regardless of EI disclosure; keep the evidence); **expense reimbursement** = tax-neutral, not in the return; **gift from a non-relative > ₹50k aggregate = taxable IFOS**. UPI/NEFT rarely carry purpose notes — get the relationship, keep a gift note.

**Missing-from-AIS but taxable** (actively search the bank statements for these):
- **SGB coupon interest** — 2.5% p.a., credited via CDSL/NSDL CMS narrations, no TDS, never in AIS; taxable IFOS (only redemption gain is exempt — and that exemption narrows from FY 2026-27 to original subscribers holding to maturity). Grep statements for "CENTRAL DEPOSITORY"/CMS credits.
- Gold-lease/P2P/platform interest without full TDS.
- **EPF interest on own contributions > ₹2.5L/yr (Rule 9D)** — taxable (threshold ₹5L where the employer makes no contribution); usually zero EPFO TDS and AIS-blind → self-compute from the passbook (see the `itr-file` skill for the method).
- Compensation credits: RBI-directed deficiency-of-service compensation from a bank = capital receipt, not taxable — but any *interest-for-delay* component is taxable; get the narration and evidence.
- Foreign assets → **Schedule FA** (ROR filers only, like FSI — NR/RNOR are exempt from FA; mandatory even at nil income; **convert values at the SBI TT-buying rate on the relevant date — peak-balance date, 31-Dec closing, or acquisition date** per the ITR FA/FSI instructions): foreign brokers (→ A3), foreign crowdfunding/unlisted shares (→ A3 too — it covers equity interest in ANY entity; use D "other capital asset" only for non-equity instruments like SAFEs/notes), and **⚠️ foreign CRYPTO-EXCHANGE accounts (→ A2 custodial). ACTIVELY ASK about crypto** — AIS-blind, easily forgotten, and non-disclosure is a Black Money Act exposure (penalty relief if total foreign assets < ₹20L, but disclosure is strict). Staking/"Earn" rewards: VDA transfers are taxed u/s 115BBH; taxability at receipt is unsettled — flag for a professional call, don't silently decide. A never-disclosed old account may also need prior-year ITR-U advice — and watch **FAST-DS 2026** (Foreign Assets of Small Taxpayers Disclosure Scheme, Finance Bill 2026 Clauses 114-128): a *proposed* one-time amnesty (≤₹1 cr @ 60% = 30% tax + 30% charge vs 120% under the BMA; prosecution immunity for non-immovable foreign assets <₹20L) that is **NOT yet notified/operational as of Jul-2026** (commencement date unset; the "6-month / 31-Dec-2026" window is unconfirmed) — a CA decision only if/when it commences.
- **Foreign INCOME (not just assets) → Schedule FSI + Form 67 + Schedule TR** (ROR only; skip if no foreign income): income arising OUTSIDE India (foreign dividend/interest/rent/capital gain) is reported country-wise in **Schedule FSI**; foreign tax withheld is claimed as Foreign Tax Credit via **Form 67** (Rule 128, a separate portal form) — **file it by the END of the AY (31-Mar-2027 for AY 2026-27)** — it may follow the return within that window (Rule 128(9), amended by Notif. 100/2022; missing the deadline risks denial of the credit, though tribunals have often treated the rule as directory — don't rely on that); relief flows to **Schedule TR**, which must tie to FSI + Form 67. US dividends carry **25% DTAA (Art 10) WHT** → credit = **lower of foreign tax or Indian tax** on that income (no refund of excess, no carry-forward). Convert foreign tax at the TT-buying rate on the last day of the month before it was paid/deducted (Rule 128(5)).

**Regime notes** (verify current-year law): new regime default (115BAC) — **AY 2026-27 slabs**: 0–4L nil / 4–8L 5% / 8–12L 10% / 12–16L 15% / 16–20L 20% / 20–24L 25% / >24L 30%; standard deduction ₹75k, no 80TTA/80C, **80CCD(2) employer-NPS survives** (so does 80CCH(2) Agniveer-corpus, where applicable); **§87A rebate ₹60,000 (income ≤ ₹12L) — only against slab-rate tax, never against ANY special-rate income (111A/112A/112, VDA 115BBH, lottery…)**; surcharge highest cap 25% (new regime), capped at 15% on 111A/112/112A gains AND dividends.

**Old-regime checklist — then COMPUTE BOTH REGIMES and recommend the lower** (never assume the new regime wins; a heavy 80C/80D/HRA/24(b) stack still can): old-regime slabs (₹2.5L basic exemption, age-stepped for 60+/80+), standard deduction ₹50k, §87A ₹12.5k (income ≤ ₹5L), and the Chapter VI-A menu: 80C ₹1.5L (EPF+VPF, PPF, ELSS, life-insurance premium, children's tuition, home-loan principal, SSY, NSC, 5-yr tax-saver FD); 80CCD(1B) ₹50k extra NPS; 80D health insurance (₹25k self+family, +₹25k parents — ₹50k where insured is 60+; ₹5k preventive-checkup inside the limits); 24(b) ₹2L self-occupied home-loan interest; HRA s.10(13A) (least of actual HRA, rent − 10% of salary, 50%/40% of salary metro/non-metro; landlord PAN if rent > ₹1L/yr); 80TTA ₹10k savings interest (seniors instead get 80TTB ₹50k on all bank/deposit interest); 80E education-loan interest (uncapped, 8 years); 80G donations (donee PAN + receipt; 50%/100% by institution); 80GG rent paid without HRA; 80EEB ₹1.5L EV-loan interest (loans SANCTIONED 1-Apr-2019 → 31-Mar-2023 only — no new-loan claims); disability/medical: 80DD (dependant with disability, flat ₹75k / ₹1.25L severe), 80U (self, same slabs), 80DDB (specified-disease treatment, ₹40k / ₹1L senior). This is the common-individual menu, **not exhaustive** — check 80EE/80EEA (legacy first-home interest), 80GGC (party donations), 80QQB/80RRB (royalties) if facts fit. Salaried/no-business filers elect the regime **inside the return, fresh every year**; Form 10-IEA is for business-income filers only (see `itr-file`).

## Step 3 — Verification pass (mandatory before hand-over)

Recompute programmatically in one python block: the salary identity (monthly × 12 where pay is level), TDS quarter sums, each TIS bucket from components, AIS dividend row-sum, 26AS grand total, AIS sale-value rebuild, every sale−cost=ST+LT identity, bucket totals vs per-source nets.

**TDS rounding truth:** sum 26AS at paise level; the correct claim = **per-DEDUCTOR rounding** (matches the utility). Per-transaction rounding overstates by a few rupees.

**234A/234B/234C are exactly reproducible — verify, don't trust:** 234A applies only when filing after the due date: 1%/mo (part-month = full month) from the day after the due date to the filing date, on r100(tax − advance − TDS/TCS − relief u/s 89/90/90A/91 − 115JD credit) per s.234A(1) — the reliefs matter when Form 67 FTC is in play. **SA tax is NOT a blanket subtraction**: SA paid before the due date is excluded from the base (CBDT Circular 2/2015); SA paid after the due date stops interest on that slice only from its payment month — compute month-wise, as the utility does. 234B (levied only when advance paid < 90% of *assessed tax*, i.e. tax less TDS/TCS & reliefs — don't fold TDS into the left side of the comparison) = 1%/mo × months(Apr→filing month) on r100(liability − TDS − advance), Rule 119A rounding DOWN to ₹100; if SA tax was paid in an earlier month than filing, 234B(2) splits the period — full base to the payment month, reduced base after (the utility does this; a single-period formula overstates). 234C with accrual relief: at each instalment date recompute the full liability using **cumulative** quarterly CG (the return's F-table cumulatives; dividends too if quarterly-split) with full-year other income, subtract full TDS, apply 15/45/75/100%, compare to cumulative advance paid, skip instalments 1–2 on the 12%/36% safe harbours, interest = 1% × {3,3,3,1} months on r100(shortfall), **plus 1 month on tax attributable to post-15-Mar accruals if unpaid by 31-Mar**. Done right this reproduces the utility's figure to the rupee — and is far below a straight 15/45/75/100 estimate when gains accrue late.

**Rounding rules for rupee-exact ties:** s.288A rounds TOTAL INCOME to the nearest ₹10; s.288B rounds the final payable/refund to the nearest ₹10; Rule 119A rounds each interest base DOWN to ₹100. A reproduction that misses by a few rupees has usually skipped one of these.

**Quarterly cross-verification:** the aggregate quarterly CG table must reproduce per period per bucket from the statements' own quarterly splits.

## Step 4 — Outputs

**Determine the applicable form first and state it (with reasons) in the hand-over.** **ITR-1 (Sahaj)** only if ALL hold: resident individual (not RNOR/NR); TI ≤ ₹50L; income only from salary/pension + ONE house property (two allowed by the AY 2026-27 forms — check the current form) + other sources (interest, dividend, family pension); CG at most LTCG u/s 112A ≤ ₹1.25L with no CG loss to set off or carry (ITR-1 allows this from AY 2025-26 — check the current form); agricultural income ≤ ₹5,000; and NONE of: unlisted equity shares, company directorship, any foreign asset/income (Schedule FA), TDS u/s 194N, deferred ESOP tax, brought-forward losses. Anything more, with no business/professional income → **ITR-2**. Any business/professional income → test the **ITR-4 (Sugam)** presumptive fit via the `itr-presumptive` skill (beta): resident individual/HUF/firm (not LLP; HUF cannot use 44ADA), TI ≤ ₹50L, receipts within the 44AD/44ADA/44AE ceilings, otherwise ITR-1-shaped income (one HP — two allowed by the AY 2026-27 forms, 112A LTCG ≤ ₹1.25L, none of the disqualifiers above plus the fuller list in `itr-presumptive` §1). Full books, F&O/intraday, or presumptive income inside a bigger return → **ITR-3** for individuals/HUF, **ITR-5** for firms (out of scope for these skills).

`CA_Handover_FY<year>.md`: header (PAN, regime, recommended form + why), blocking-items banner, income-heads table, IFOS detail, CG per-source + ITR-bucket tables with the verification identities quoted, TDS table marked "ties to 26AS", Schedule FA table, deduction notes, open items, document index.
`Discrepancy_Report.md`: TIS headline, "reconciles cleanly" table, discrepancy sections (A: in docs not AIS; B: resolved; …), sale-value reconciliation with reasoning, action checklist with a "Resolved" list.

Keep both updated as the user supplies corrections — user context frequently resolves apparent discrepancies, but verify each claim against the numbers (e.g. the TIS bucket arithmetic) before accepting it.

