Working…
This can take up to 15 seconds — please don't close this tab.

Schedule FA Generator — Interactive Brokers, Fidelity, E*TRADE & Schwab to ITR-2

An online Schedule FA tool for Indian ITR — upload exports from Interactive Brokers, Fidelity NetBenefits, E*TRADE, Charles Schwab, Morgan Stanley, Shareworks, or UBS. Shares in any major currency, per-currency SBI TTBR rates, no Excel templates needed.

ITR-3 / ITR-4 (business or professional income, no audit) due August 31, 20263 days left.
Missed 31 July? You can still file a belated return until December 31, 2026 — and Schedule FA still has to be in it.
₹999 ₹399 60% off CA pack ₹2499 50% off
Preview before you pay 100% accuracy, 7-day guarantee India servers · auto-deleted in 30 days
Trusted by Indian residents filing Schedule FA for US RSU & ESPP — handles GOOGL, NOW, AVGO, AAPL and 100+ US stocks
Portal CSV
Bulk-upload to ITR-2
Schedule CG
Capital Gains
FSI & Form 67
Foreign Tax Credit
SBI TTBR
Exact Date
FATCA/CRS
Aware
~2 minutes: 1 Upload 2 Review (free) 3 Download
Interactive Brokers, Fidelity NetBenefits, Charles Schwab, E*TRADE / Morgan Stanley at Work, Morgan Stanley StockPlan Connect, Shareworks (Solium) and UBS Financial Services are supported today — and any other broker works too, by entering your holdings and trades (or uploading any statement for AI-assisted prefill).

Shareworks reports are read on their own page — upload your holdings/activity export there, or enter your vest lots by hand if your plan's portal has no export.

Continue to broker page →
Open Lots CSV
  1. Login to schwab.com
  2. Accounts → Positions
  3. Click your stock symbol → Lot Details
  4. Click Export (CSV)
  5. Repeat per symbol — upload all files together
Contains: per-lot open date, quantity, USD cost basis. Used to compute Table A3 Initial Value INR (CBDT's Schedule FA filing instructions).
RSUs only in Equity Award Center, no separate Positions listing? Export Equity Details instead (EAC → Equity Details → Export) — also accepted here.
Transaction History CSV
  1. Login to schwab.com
  2. Accounts → Transaction History (brokerage or Equity Award Center)
  3. Set date range: Jan 1 → Dec 31 of the calendar year (longer if filing CG/OS/FSI/Form 67 — see note below)
  4. Click Export (CSV)
Contains: sales, dividends, RSU lapses, NRA withholding. Used for Table A2 gross income and proceeds. Jan 1 – Dec 31 is enough for Schedule FA. Filing CG, OS/FSI or Form 67 too? Export 15 months instead →
Closed Lots CSV If you sold shares
  1. Login to schwab.com
  2. Accounts → Realized Gain/Loss
  3. Set date range covering your sales
  4. Export the Lot Details view (CSV) — the summary export has no acquisition dates
Contains: opened date, closed date, proceeds, cost basis per lot. Needed only if you sold shares — sold lots still appear in Table A3.
Open Lots slot 2 files go here
  1. Login to us.etrade.com → Stock Plan account
  2. Holdings → By Status → Download Expanded — always needed
  3. My Account → Gains & Losses → Download Expanded — only if you sold shares
  4. Select both files together when uploading — no need to convert either to CSV, .xlsx uploads directly
Holdings has per-lot acquisition date, sellable quantity, FMV at vest — used for Table A3 Initial Value INR (CBDT's Schedule FA filing instructions). Gains & Losses has sale date, proceeds, cost basis for sold lots — they're split out automatically, no separate Closed Lots upload. Morgan Stanley at Work accounts use these same etrade.com exports — select E*TRADE above.
Transaction History slot
  1. Login to us.etrade.com
  2. Activity → Transactions
  3. Set date range: Jan 1 → Dec 31 of the calendar year (longer if filing CG/OS/FSI/Form 67 — see note below)
  4. Click Download (CSV)
Contains: sales, dividends, tax withholding. Used for Table A2 gross income and proceeds. Jan 1 – Dec 31 is enough for Schedule FA. Filing CG, OS/FSI or Form 67 too? Export 15 months instead →
Stock Plan at Work accounts often don't have this export. If yours doesn't, get your Client Statement PDF instead:
  1. Login to us.etrade.com
  2. At Work → Tax Information → Statements
  3. Select account → Document Type: Statement → Time Frame: the calendar year (e.g. 2025) → Apply
  4. Download Single Account Statement, then use "Don't have this export?" on the Transaction History card below to upload it
Open Lots slot
  1. Login to stockplanconnect.com
  2. Activity → Reports
  3. Download the Releases Report (CSV)
  4. Upload it here
Contains: vest date, net shares deposited, FMV at vest — used for Table A3 Initial Value INR (CBDT's Schedule FA filing instructions). StockPlan Connect reports have no ticker symbol column — you'll enter your stock ticker on the next (review) page. Don't see Activity → Reports after logging in? Your account has moved to the E*TRADE platform — select E*TRADE / Morgan Stanley at Work in the broker dropdown above and follow those steps instead.
Transaction History slot
  1. Login to stockplanconnect.com
  2. Activity → Reports
  3. Download the Withdrawals Report (CSV) — only if you sold shares
  4. Upload it here
Contains: sale date, quantity, net proceeds. Sold lots are matched to Releases automatically (FIFO) — no separate Closed Lots upload; StockPlan Connect has no such export.
StockPlan Connect reports don't list dividends either — use "Don't have this export?" on the Transaction History card below to pull the dividend total from your Client Statement PDF instead.
One file, uploaded once — either report works
Best: an Activity Flex Query — the only report that carries purchase dates
  1. Login to interactivebrokers.com → Performance & Reports → Flex Queries → Activity Flex Query → +
  2. Under Sections (Select Multiple) — a long alphabetical list — tick four: Cash Report and Cash Transactions near the top, Open Positions about two-thirds down, Trades near the bottom. There is no Select All here, and the two furthest down the list are the ones people scroll past.
  3. Clicking a section opens its panel. At the top is a row labelled Optionstick every box in it. That row is what decides whether IBKR fills in your purchase dates: Open Positions offers Summary and Lot, Trades offers Execution, Closed Lots and four others, and out of the box you get only the ones that leave the dates empty. Ticking them all is safe — we drop the duplicate rows.
  4. Below Options is the column list. Hit Select All there for each section — and note it covers columns only, not the Options row above it.
  5. Save the query, then click Run on it. The dates are set here, not while building it — in the Run box choose Period Custom Date Range, 1 January – 31 December of the year you're filing for, and Format CSV.
  6. Download — then upload that one CSV in the Open Lots slot
  7. Sold anything between 1 January and 31 March of the following year? Build a second query for just that quarter — Trades and Cash Transactions only this time, and not Open Positions: your holdings must be the ones dated 31 December, and a second set dated 31 March would be filed on top of them rather than instead of them. Run it over Custom Date Range 1 January – 31 March, Format CSV, and upload it alongside the first. Schedule CG follows India's April–March year, so those sales still belong to this filing; the first query never reaches them.
Shortcut: let IBKR build the query for you Beta

The Flex Queries page now has a Configure with AI box. Paste this in and press Generate — it fills in all four sections and both Options rows for you:

Activity Flex Query in CSV. Sections: Trades at Closed Lots, Open Positions at Lot, Cash Transactions, Cash Report. Include ISIN, Listing Exchange, Open Date Time and Level of Detail fields.

Three things it will not do for you. Rename it before saving — it suggests a name containing commas and IBKR refuses to save that. Pick Period Custom Date Range when you run it, as above. And check the query before you run it: Open Positions must read Options: Lot and Trades Options: Closed Lots. IBKR's AI is new and the fields it picks vary a little between runs, so read it rather than trust it — everything else on this page still applies.

Or the Activity Statement you already run — nothing to set up
  1. Performance & Reports → Statements → Activity
  2. Period Annual (1 January – 31 December), Cash Report Detail Totals Onlynot the Securities/Futures breakdown, which adds extra per-currency rows on top of the total and would double it — then Download CSV
  3. Run this once for every year back to when you first bought what you still hold, and upload all of them together. One year on its own is rarely enough — a statement reports your holdings in summary only, with no purchase dates anywhere in it, so the dates are rebuilt from the trades in those earlier years.
  4. Anything the trades can't account for — shares from a merger, a transfer in — is left out and named, so you can add it yourself
Either file carries holdings, sales, dividends and cash interest together, so there's nothing to upload in the other two slots. A Flex Query is more work to set up once, and reusable every year afterwards.
Any major currency: a euro, pound, franc, Canadian- or Hong-Kong-dollar holding is converted at that currency's own SBI TTBR rate, not through the dollar. Shares, ETFs, mutual funds and bonds go to Table A3 — a US Treasury is valued off the Treasury's own published yield curve, and its coupon is reported as that row's income. Options and futures go to Table D. Your cash balance is included in the Table A2 closing balance. Forex positions and anything in a currency SBI publishes no rate for are left out — you'll see a note listing exactly what.
The ISIN field matters: Schedule FA reports the country the issuer is registered in, which isn't always the US even for a NYSE-listed share bought in dollars (Accenture and Medtronic are Irish; most low-cost world ETFs are Irish or Luxembourgish). The ISIN is what identifies it — you can still correct any of them on the review page.
One file, uploaded once
  1. Login to Vested → your account's Reports / Transactions section (the page that offers a downloadable transaction history, not the month-wise account statement PDFs)
  2. Set the date range to run from the day you opened the account to 31 March of the year after the one you're filing for. Not just this year — Vested's export has no holdings table in it, so what you paid for each share and when you bought it are worked out from the buys themselves. A range that starts after your first purchase leaves those shares unexplained, and they get left out rather than filed with a guessed date.
  3. Download it as .xlsx and upload that one file here — it already carries your trades, dividends, withholding and deposits on separate sheets
  4. The month-wise account statement PDFs are not needed
Vested accounts are held with DriveWealth LLC, whose name and account number go on Table A2 as the institution holding your account — both are read from the export's own cover sheet, and shown for you to confirm on the review page.
Fractional shares are kept as they are, never rounded. Your uninvested cash balance is included in the Table A2 closing balance. Dividends and the US tax withheld on them are read from the Income sheet and carried into Schedule OS and Form 67.
Sold anything between 1 January and 31 March? Those sales still belong to this filing — Schedule CG follows India's April–March year — which is why the export needs to run to 31 March even though Schedule FA itself reports January to December.
A stock split, spin-off, merger or a transfer in from another broker cannot be worked out from a buy-and-sell history alone. If your export contains one you'll see a note naming it, and you can correct those holdings on the review page before paying.
One file, uploaded once
  1. Login to netbenefits.fidelity.com → open your retirement plan (the 401(k)/403(b) tile, not a Stock Plan Account) → Quick Links → History, or the Activity / Transaction History tab
  2. Set the date range to run from the day you joined the plan through 31 December of the year you're filing for. Not just this year — a plan publishes no holdings or cost-basis report at all, so what you hold in each fund, when you bought it and what you paid are worked out from the contributions themselves. A range that starts later leaves those units unexplained.
  3. Download it and upload that one file here — the same rows carry your reinvested fund dividends and any withdrawal
  4. There is nothing else to export. A 401(k) has no "View Share Details" page, no Current shares export and no closed-lots export.
A US retirement plan account is disclosed on Table A2 as a foreign custodial account, with the funds inside it on Table A3 — CBDT notifies no separate retirement table, and a plan account fits the notified custodial-account definition. Section 89A changes when this income is taxed in India, not whether the account is disclosed.
Your plan's funds are institutional share classes and collective trusts that no price service quotes, so their values come from the plan's own NAVs — every contribution row states one. They're filled in for you on the review page, where you can correct any of them, and you'll be asked for the 31 December figure outright if your last contribution was weeks earlier.
Units redeemed inside the plan — recordkeeping fees, a fund switch or share-class conversion — are netted off your holdings and do not appear as sales: no money left the plan. A withdrawal does, and is reported as gross proceeds.
Your plan account number is not in the export. Table A2 requires it, so you'll be asked for it on the review page — it's on your NetBenefits statement.

Current Shares CSV (open lots)

  1. Login to netbenefits.fidelity.com
  2. Stock Plan Account → View Share Details
  3. Select Current shares tab
  4. Click Export
  5. When prompted, choose Asset Currency (USD)
Contains: acquisition date, quantity, USD cost basis per lot. Used to compute Table A3 Initial Value INR (CBDT's Schedule FA filing instructions).

Transaction History CSV

  1. Login to netbenefits.fidelity.com
  2. Stock Plan Account → Activity → Transaction History
  3. Set date range: Jan 1 → Dec 31 of the calendar year (longer if filing CG/OS/FSI/Form 67 — see note below)
  4. e.g. Jan 01 2025 – Dec 31 2025 for FY 2025-26
  5. Click Export
Contains: all transactions — sales, dividends, RSU vests, ESPP purchases, NRA withholding. Used for Table A2 gross income and proceeds (Schedule FA reports the calendar year ending Dec 31). Jan 1 – Dec 31 is enough for Schedule FA. Filing CG, OS/FSI or Form 67 too? Export 15 months instead →

Previously Held Shares CSV (closed lots) If you sold shares

  1. Login to netbenefits.fidelity.com
  2. Stock Plan Account → View Share Details
  3. Select Previously held shares tab
  4. Click Export
  5. Choose Asset Currency (USD)
Contains: acquisition date, sale date, proceeds, cost basis. Needed only if you sold shares — sold lots still count as held during the calendar year and appear in Table A3.
Open Lots Required

Drop CSV/XLSX or click to browse

Export your Current shares — per-lot acquisition dates + USD cost basis

Schwab exports Lot Details one file per symbol — select all of them together (EAC-only RSUs: use Equity Details instead)
Transaction History Recommended

Drop CSV/XLSX or click to browse

Sales + dividends + NRA withholding → Table A2 income & proceeds. Adds income only — a Schedule FA cannot be built from this file alone.

Export date range: Jan 1 → Dec 31 of the calendar year.
Filing CG/OS/FSI/Form 67 too? Export a 2nd file for Jan–Mar next year and select both here — why →

Drop your Client Statement PDF or click to browse

Monthly or year-end statement — dividends + sale proceeds extracted automatically

Uploading here also sends the PDF to Amazon Bedrock or Anthropic's Claude Platform (whichever is active) for extraction — see the consent checkbox below.
Closed Lots Optional

Drop CSV/XLSX or click to browse

Only if you sold shares during or after the calendar year

Without this, sold lots are missing from Table A3 (they must be reported for the year held). Two exports needed to cover the full year? Select both files here.
Reported for the calendar year ending Dec 31 (FY 2025-26 → CY 2025), as the ITR form requires.

What users are saying

Unsolicited feedback from people who've filed with ITRFA.in

The tool's awesome, definitely sharing with my colleagues. Made Schedule FA filing a breeze — saved myself at least half a day.

Software Professional
Oracle

Thanks for being so thorough in explaining this. The tool has great potential in aiding taxpayers fill their own returns. Good work!

Software Professional
Atlassian

Applying Rule 115 with SBI TTBR rates per acquisition date, rather than a single average rate, is the correct approach — one that's easy to get wrong manually. Good to see it automated. This isn't just a CSV-to-template converter — it shows real domain depth.

Chartered Accountant
Founding Partner

Saved me a lot of time filling in Table A3, and to some extent Capital Gains too. I reached out to support suggesting a few changes to the output so it could be imported directly into ITR-2 — amazingly quick response and resolution. They confirmed the update rolled out to new users, which I verified with a colleague. 5 stars for the customer support.

Software Professional
Oracle

Too good. Please support end-to-end ITR filing going forward.

Software Professional
Qualcomm

Thank you so much for the quick response and rectification. Really liked the portal — it's gonna be a life saver going forward.

Software Professional
ChargePoint

What gets computed from your CSVs

Open Lots Per-lot acquisition date + USD cost basis
Open Lots Table A3 Initial Value INR (CBDT's Schedule FA filing instructions × SBI TTBR)
Txn History Gross sale proceeds for the calendar year (Table A2)
Txn History Dividend / money market income (Table A2)
Txn History NRA withholding (for DTAA foreign tax credit)
Closed Lots Sold lots still reported in Table A3 for the year held
Auto-fetched Daily stock prices incl. Dec 31 close (yfinance)
Auto-fetched Peak balance — every trading day scanned
Auto-fetched SBI TTBR rates per acquisition date
Output Portal-ready CSV — bulk-upload Table A2/A3 to ITR-2, skip typing every row
Every INR value is computed for you — a Schedule FA calculator that applies exact-date SBI TTBR rates automatically, with no manual lookups. Generate your Schedule FA online in about 2 minutes.