vault•sorter — Irish Fund Exit Tax, CGT and the 8-Year Deemed Disposal, Worked From Your Broker CSV | Offline HTML, No Account
🗂️ vault•sorter — Irish investment tax, worked out from your own broker export.
Which of your holdings does Irish tax treat as a fund, and which as a share?
The two are charged under different rules, at different rates, with different reliefs — and almost every mistake people make here is a leak between them.
Drop a Trading 212 CSV into one HTML file. It sorts every holding against the EU's public instrument register, works out both Irish charges separately, and runs the eight-year deemed disposal clock per parcel — the charge your broker
never mentions, does not withhold, and does not put in your export. Every figure opens into the arithmetic that produced it and the section of the Act it rests on.
It reads Trading 212 and nothing else, and it makes no network request of any kind. Your file never leaves the page, because there is nowhere for it to go.
═══════════════════════════════
📦 WHAT YOU'LL GET
• THE TOOL — vault-sorter.html, 1.19 MB. One file. No installer, no account, no licence key, no sign-in. Double-click it and it opens in your browser.
• 203,415 INSTRUMENTS from ESMA's public register, embedded in that file — snapshot 22 August 2026. No lookup, no API key, nothing fetched.
• SEVEN GUIDES as HTML pages that open in the same browser: a read-me, quick start, exporting your data, reading your results, the eight-year rule, what it cannot do, and questions.
All of it works with the network switched off. That is not a privacy promise, it is how the file is built — the build refuses to write it if any network primitive appears anywhere inside.
═══════════════════════════════
✳️ FEATURED CONTENT
• BOTH CHARGES, WORKED SEPARATELY — capital gains at 33% after the €1,270 annual exemption, and fund exit tax at 41% before 1 January 2026 and 38% on or after it. Each event is charged at the rate in force on its own date, not
the rate today.
• THE EIGHT-YEAR DEEMED DISPOSAL, PER PARCEL — a fund is treated as sold and bought back every eight years from the day you bought it, whether you sold anything or not. Free calculators for this rule exist and are worth using,
but they start by asking which of your holdings is a fund and what each parcel cost. That is the part this works out from the file itself.
• IRISH SHARE MATCHING, NOT JUST FIFO — s.580 first-in-first-out, modified by the s.581 four-week rule, with the s.581(3) loss restriction where you buy back inside four weeks. Ireland is four weeks, not the UK's thirty days.
Every disposal opens into the purchase lots it was matched against.
• EVERY ROW IN YOUR FILE, ACCOUNTED FOR — each row lands in exactly one of four buckets, and the page prints the arithmetic so you can check nothing was lost. A row it cannot read is named by its line number and never treated as zero: a quantity read as zero makes a sale vanish, and a cost read as zero invents a gain you never made.
• 15 TAX RULES, EACH CITING ITS SOURCE — the section of the Taxes Consolidation Act 1997 and the Revenue document it was read from, with the name and date of the person who read it. That records provenance, not correctness; a rule citing the right document with the wrong number in it would pass every automated check here.
• A PRINT LAYOUT for handing to an accountant — a compliance running head on every page, the complete holdings table, and an Export-as-PDF button.
═══════════════════════════════
🎯 WHO IT IS FOR
• An Irish retail investor who holds ETFs through Trading 212 and has to put a number on a Form 11 or CG1
• Anyone who has been told "your ETF is taxed differently" and cannot find out which of their holdings that means
• Anyone who wants to check an accountant's figure, or arrive with the working already done
⚠️ WHO IT IS NOT FOR — and it is cheaper to find out here than after paying:
• You do not use Trading 212. It reads that one export and refuses everything else with the reason. It does not guess.
• You want a portfolio valuation. It cannot see a market price, so value is estimated from your own last trades and marked as such.
• You want something that files for you. It files nothing, and it is not tax advice.
═══════════════════════════════
💾 FILE DETAILS
• Format: one ZIP — an HTML file plus seven HTML guides
• Size: 899 KB zipped; the tool is 1,249,322 bytes on its own
• Opens in: any current browser, on Windows, macOS, Linux, iPad or Android
• Needs: nothing installed, no account, no internet connection
• Reads: Trading 212 CSV exports, and no other broker
• Reference data: ESMA FIRDS, categories C and E, batch 22 August 2026
• Tax year: 2026 edition. The year is on the file, so a later edition is a
different product and this one keeps working exactly as it does today
• Fonts embedded, open-licence — it looks the same on every device
═══════════════════════════════
✍️ HOW THIS WAS MADE
The tool is generated from a template and a Python tax engine that I wrote. The engine has a reference implementation checked against 72 hand-computed fixtures, and a mutation suite that breaks it 35 ways and confirms each break is
caught by a named fixture. The page a buyer runs is driven by its own gate against eight fixtures and broken 67 ways, including a clean control run per fixture — because a check that has never gone red is not a check. Eight of those sixty-seven are ways a row of your file could have vanished without a trace.
No rate is typed into the page. Every one is read from a rules file that carries its source, and the build refuses to write the artifact if a rate appears in the markup instead. It also refuses if any network primitive appears anywhere in the output — fetch, XMLHttpRequest, sendBeacon, WebSocket, a remote script, stylesheet or image. The offline claim is enforced at build time rather than promised in copy.
Nothing in it is a purchased template or a stock component, and the reference data is ESMA's own published register, reused under their terms.
═══════════════════════════════
📥 HOW IT WORKS
1. Buy, and the download is available immediately
2. Unzip it anywhere — a downloads folder is fine
3. Double-click vault-sorter.html. Disconnect your wifi first if you would
like to prove the offline claim rather than take it on trust
4. Export your full history from Trading 212 and drop the CSV onto the page
5. Read the answer, print it, or hand the PDF to whoever files your return
═══════════════════════════════
⚡ INSTANT DELIVERY — this is a digital download. Nothing is posted to you and no physical item is shipped. The file is yours the moment payment clears.
═══════════════════════════════
💬 CUSTOMER SUPPORT
Something not opening, or a figure you cannot reconcile against your own statement? Message me and I will sort it out. If it turns out to be a defect I will fix it and send you the corrected file. I answer every message.
If you want your broker supported, send a real export. That is the whole bar, and it is the one Trading 212 had to clear.
═══════════════════════════════
🌟 The rule that catches people is the one nobody sends them a letter about.
⚠️ NOTE — Digital download only, no physical item. This is a computational aid and not tax advice: it shows what the rules produce from the transactions in your file, it does not know your circumstances, it cannot see holdings you keep
anywhere else, and it files nothing. It cannot tell whether a holding is a Personal Portfolio Investment Undertaking, which is charged at 60% — nothing in any broker export indicates that, and the page says so beside the figure it affects. Coverage was measured on one real portfolio: 103 of 104 instruments placed, 99.0%. That is evidence, and it is one sample. For personal use; please do not resell or redistribute the file.
🇪🇺 EU BUYERS — This is digital content, delivered immediately. By completing your purchase you ask for immediate delivery and acknowledge that you lose your 14-day right of withdrawal once the download starts.
📝 Designed by WendL Studio.