The problem paper · v1

It's not a tax problem.
It's a system problem.

Åland, Faroe, Canaries, Greenland, Northern Ireland: the places where international standards disagree with themselves. This is the pedagogy: where commerce systems break, why standards diverge, and what it takes to make the stack tell the truth.

18 min read · Updated 2026-04-27 · Sources: ISO · WIPO · EU VAT · UPU · BCP-47 · CLDR
Chapter 01 ViDA

The deadline that makes this not optional.

Today the EU has 27 different VAT systems. A digital platform operating across the bloc juggles dozens of local registrations, half a dozen national e-invoice formats (Italy's SDI, France's Chorus Pro, Poland's KSeF and others), and uneven rules about whether the platform or the seller collects the tax. The cost: roughly €93 billion of lost VAT each year, high compliance overhead, and an uneven playing field. On 11 March 2025 the Council of the EU adopted ViDA, three directives and one regulation that rebuild this plumbing as a single, machine-readable system. Transposition is staggered: first national measures due 31 December 2026, substantive rules between 2028 and 2030.

Three things change. By 1 July 2028 a single VAT registration covers cross-border B2C and own-stock movements across all 27 states; the existing OSS portal extends to absorb them. From 1 July 2028 (mandatory by 1 January 2030), short-term accommodation and passenger-transport platforms become the deemed VAT supplier, collecting the tax themselves regardless of what the host or driver does. From 1 July 2030, every intra-EU B2B invoice must be issued as a structured e-invoice on the EN 16931 standard and reported to tax authorities in near-real time.

All three pillars assume something the existing stack does not deliver: that any commerce system can answer, deterministically and per address, which VAT regime applies. Today it cannot. Åland, the Canaries, Ceuta, Melilla, Mount Athos, Büsingen, Heligoland, Livigno and Campione sit inside the EU customs union and outside the VAT area, or under bespoke regimes. A single OSS registration is meaningless if the country selector still resolves Mariehamn to Finland. EN 16931 reporting is meaningless if the territory field on the invoice is wrong. Platform deemed-supplier rules are meaningless if the platform cannot tell where the rental is. ViDA is the deadline. TLL is the substrate it assumes.

  1. Mar 2025 ViDA adopted
  2. Dec 2026 first national transposition deadline
PILLAR 01 1 Jul 2028

Single VAT registration

OSS extends to own-goods movements and domestic B2C, removing the need for multiple national VAT registrations.

TLL Deterministic resolution of "is this address in the EU VAT area" per order, without which OSS misroutes EU-territory edge cases.

PILLAR 02 1 Jul 2028 → 1 Jan 2030

Platform economy

Short-term accommodation and passenger-transport platforms become the deemed VAT supplier on facilitated supplies. Member states may apply the rule from 1 July 2028; it is mandatory across the EU from 1 January 2030.

TLL Per-listing territory resolution distinct from sovereign state. A Las Palmas booking is not Spain for VAT; an Åland flat is not Finland.

PILLAR 03 1 Jul 2030

Digital reporting & e-invoicing

Intra-Community supplies must be invoiced on EN 16931 and reported in near-real-time to national tax authorities.

TLL The territory field on the invoice has to be right at issuance. TLL provides the canonical code, the regime classification, and the source citation per line.

The chapters that follow are the engineering ground truth ViDA's deadline now requires.

Chapter 02 The break

Where the systems break.

Picture a Helsinki-based commerce stack. The customer lives at a Mariehamn address. To the validator, Mariehamn is in FI. The postcode begins with 22, valid for Finland Proper. The stack proceeds as if nothing special has happened. By the time the parcel sits in a Helsinki sorting facility with no customs paperwork, it is already four decisions too late.

The failure isn't a single bug. It's a chain of compounding small confusions, each inherited from a different upstream standard, each invisible at the layer above.

01 / ADDRESS
!

Form validates FI

Country selector only knows about sovereign states. AX is either missing or aliased to Finland.

✕ wrong territory from the start
02 / CHECKOUT
!

Regional ruleset = FI

Catalog filters, shipping rules, and content availability all resolve against Finland's profile.

✕ wrong SKUs shown, wrong freight
03 / PAYMENT
!

VAT 25.5% applied

Finnish domestic rate. But Åland sits outside the EU VAT area: the correct regime is 0% with a customs doc.

✕ over-charged, wrong invoice
04 / LOGISTICS
!

Routed as domestic

Carrier selects FI→FI. Parcel arrives without declaration and is held or returned.

✕ SLA miss, refund, bad review

None of these systems is individually broken. Each is doing exactly what it was told. The problem is the seam: there is no shared representation of what AX means as it travels from address validator to tax engine to logistics router.

Chapter 03 Divergence

Same standards, different rules.

"Special territory" is not a category. It's a statistical accident of four separate regulatory regimes barely acknowledging each other. Two territories can look identical on paper and behave completely differently in a checkout flow. Here are the four territories most systems get wrong.

Territory Customs union VAT area Currency Geo-block? Status
Åland AX inside EU outside EU VAT EUR FI treatment hybrid
Faroe Islands FO outside EU own MVG 25% DKK DK not inherited external
Canary Islands IC inside EU IGIC, not VAT EUR varies hybrid
Northern Ireland XI dual: UK + EU goods UK VAT + EU goods GBP GB-NIR specific hybrid

Every row is a different failure mode. The Canaries look like Spain, tax differently. Faroe looks like Denmark, isn't Denmark at all. Åland is the extreme case: inside the customs union and outside the VAT area at the same time. One model cannot contain this. That's why TLL publishes structured profiles, not a country list.

Chapter 04 The triple conflict

The triple conflict.

Three canonical international standards claim jurisdiction over the question "what is this territory?" For Åland, and territories like it, they don't agree. They don't even refer to the same thing.

ISO 3166-1
alpha-2
AX
Independent entity
Lists Åland as a distinct territory for postal and country-code purposes. Used by address validators, domains, and geo-IP.
ISO 3166-2
subdivision
FI-01
Finnish region
Treats Åland as a first-level subdivision of Finland. Used by HR systems, GIS data, and regional tax tables.
WIPO ST.3
IP office
AX
Coded, not autonomous
AX appears in WIPO ST.3, but Åland is not a Madrid Protocol or PCT contracting party in its own right. IP filings, licensing registries, and rights-region logic file via Finland; the code exists, the jurisdiction does not.

Which one is right? All three. None is wrong. They answer different questions, and commerce systems quietly mix their answers, sometimes within the same transaction. TLL's job is to reconcile them: one canonical identity per territory, with aliases to every standard, and provenance on every field.

The problem isn't that Åland is unusual. The problem is that every standard models it as if the others didn't exist.

TLL design notes, 2026
Chapter 05 Language

Language is not the country.

BCP-47 locales encode language and region as separate axes: sv-AX, fo-FO, kl-GL. In practice, content stacks pick the dominant language of the resolved sovereign state. The result is a Mariehamn customer reading Finnish UI on a Swedish-only territory, or a Tórshavn customer reading Danish where Faroese is official.

This isn't a translation gap. It is a category error: the stack believes language follows the country code, but in hybrid territories the constitutional language and the country's primary language disagree. The fallback path quietly hides the disagreement.

Territory Official language Correct BCP-47 What systems pick
Åland AX Swedish (only) sv-AX fi-FI
Swedish is the sole official language under the Autonomy Act. Most stacks ship Finnish content because IP geo-resolves to FI.
Faroe Islands FO Faroese, Danish fo-FO da-DK
fo locale tag exists in CLDR but is rarely tested. Translation pipelines fall back to Danish or English.
Greenland GL Kalaallisut, Danish kl-GL da-DK
Kalaallisut (kl) is sole official language since 2009. Almost no commercial content is localised; CLDR coverage is partial.
Canary Islands IC Spanish es-IC es-ES
Language inheritance is correct: both speak Spanish. The real divergence is fiscal: IC uses IGIC instead of mainland IVA and sits outside the EU VAT area, so tax and customer-service routing must keep IC ≠ ES.
Northern Ireland XI English (Irish, Ulster Scots recognised) en-GB en-GB
Locale matches GB, but the Windsor Framework splits product and goods compliance (CE marking, EU goods rules) GB ≠ XI. Statutory consumer rights under CRA 2015 still apply UK-wide; the divergence is in product templates, not returns or warranty law.

Locale resolution is not just a UI concern. Customer service routing, legal templates, returns labels, accessibility audits, and SEO hreflang tags all branch on the same broken signal. Fixing them in five places is five chances for them to drift apart again.

Chapter 06 Licensing

Rights regions diverge from tax regions.

Every digital good carries a licence. Every licence has a territory. None of those territories were drawn with VAT in mind. The Finnish music catalogue, the Spanish app store storefront, the British software EULA: they each draw the line at a different place than the customs union, and at a different place again than the VAT area.

Regime AX FO GL IC XI
App Store / Google Play storefront Finland storefront Faroe Islands storefront (Apple); Denmark on Google Play Greenland storefront (Apple); Denmark on Google Play Spain storefront United Kingdom storefront
Storefront determines pricing tier, currency, available titles, and applicable consumer-rights regime.
Music / video rights region Inherits FI catalogue Limited DK catalogue Limited DK catalogue Inherits ES catalogue Inherits GB catalogue
Rights are licensed by sovereign state. Hybrid territories receive the licensor country's catalogue regardless of language or tax treatment.
Software EULA / export classification EU customs territory, outside EU VAT area Outside EU entirely Outside EU entirely EU customs territory, outside EU VAT area (IGIC) Windsor Framework: GB services rules + EU goods rules
Export-control regimes (dual-use, sanctioned-party screening) and EULA territory clauses each draw the line in a different place.
WIPO ST.3 (IP filings) Not assigned, file via FI (PRH) Separate FO trademark registry; DK marks do not extend Not assigned, file via DK Not assigned, file via ES Not assigned; UKIPO covers NI (comparable UK rights for pre-Brexit EUTMs)
IP rights generally inherit from sovereign state, except FO which maintains its own trademark regime under the 2015 Faroese Trademark Act (Lóg um vørumerki); FO became a Madrid Protocol designating party on 13 April 2016.
Geo-IP / DRM enforcement Resolves to FI Resolves to FO or DK Resolves to GL or DK Resolves to ES Resolves to GB (occasionally IE for cross-border ISPs)
Geo-IP databases follow ISP allocation, not legal jurisdiction. Streaming, betting, and financial services enforce on this signal.

A Spotify subscriber in Mariehamn pays a Finnish-tier price for a Finnish-licensed catalogue, but the transaction itself sits outside the EU VAT area. A Faroese app developer publishes through Apple's Danish entity, but settles tax against MVG, not Danish moms. A trade mark filed for FI is enforceable in AX but the customs treatment of the parcel that infringes it isn't. The licence, the storefront, the geo-IP block, and the tax line all answer "where is this customer", and they answer differently.

For the engineering team, the consequence is mundane and severe: the same user record needs five different territory fields, one per regime, and they must be kept consistent. That is the field TLL exists to populate.

Chapter 07 Transit

The parcel crosses a border the country does not.

The country code on the address says one thing. The customs document says another. The carrier's routing table says a third. For five territories, the disagreement is structural: the parcel crosses a regulatory border even when the geopolitical map says it never left.

Helsinki → Mariehamn AX
~270 km · ferry · customs: Required (tax border)
CN22/CN23T2F
Carrier Posti (FI domestic postage, non-domestic customs)
Routed as FI→FI domestic. Held at Mariehamn until declaration is filed retroactively or returned to sender.
Frankfurt → Tórshavn FO
~1 625 km · air + sea · customs: Full export
CN23Commercial invoiceEAD
Carrier Posta (FO designated operator, under DK in UPU)
Treated as DK destination by carrier portals. DK customs nominally clears the parcel but FO collects MVG on receipt.
Madrid → Las Palmas IC
1 770 km · domestic flight · customs: AEAT DUA
DUACommercial invoice
Carrier Correos (ES domestic postage, IGIC at delivery)
Looks domestic on the label, but ES→IC leaves the EU VAT area: recipient owes IGIC and AIEM on arrival, and neither OSS (intra-EU distance sales) nor IOSS (low-value imports into the VAT area) covers the sale.
Copenhagen → Nuuk GL
3 530 km · air · customs: Full export
CN23Commercial invoice
Carrier TUSASS / Royal Arctic Line
Outside EU customs union. DDP terms require a Greenland customs broker, not a Danish one.
London → Belfast XI
520 km · sea or air · customs: Windsor Framework
Trader Support ServiceCommodity codeXI EORI
Carrier Royal Mail / parcel networks (GB-NI lane specific)
Goods moving GB → XI need an XI EORI and the green/red lane decision. Some products (e.g. plants, animal-origin) are hard-restricted.

Each row is a different combination of customs union membership, postal-operator independence, and carrier classification. Helsinki to Mariehamn is a ~270 km ferry inside one country and one customs union, but outside one VAT area; the parcel crosses a tax border and needs a T2F (internal Union, fiscal) transit document and a postal customs declaration even though both endpoints share the same flag. London to Belfast is inside one state but the goods may move under EU rules. The carrier's "domestic" flag is the wrong abstraction and has been for a decade.

Chapter 08 The reframe

It's not a tax problem. It's a system problem.

Every team that encounters this thinks they've found a tax bug. They haven't. The VAT rate is the most visible consequence, but by the time VAT is computed the damage is already many upstream decisions deep. The address was wrong. The locale was wrong. The licence territory was wrong. The carrier classification was wrong. The currency was right but the invoice template wasn't. Only then does the tax engine get a bad question, and answer it accurately.

Patching the tax engine is the seductive trap. It fixes exactly one symptom. The address validator still can't express AX; the logistics carrier still routes domestic; the content region still shows Finnish SKUs; the licensing layer still serves the wrong catalogue; the locale negotiator still picks fi-FI. The next ticket is three sprints away.

What's missing is not a table of exceptions. It is a protocol, a shared, versioned representation of territorial truth that every layer in the stack can read.

TLL is that protocol. A structured profile per territory. Nine layers: identity, customs, tax, currency, language, licensing, postal, geographic, regulatory. Source-cited fields. Stable endpoints that answer decision questions, not lookup questions. The stack stops guessing.

Chapter 09 The solution

TLL solves this.

One protocol. One canonical profile per territory. Every layer reads the same answer.

What it is

A versioned territory protocol

  • One canonical profile per territory
  • Reconciles ISO, UPU, WIPO, EU, national rules
  • Source citation on every field
  • Immutable versions, dated diffs
What it covers

Nine layers, one model

  • Identity & aliases
  • Customs & VAT status
  • Language & locale
  • Licensing & rights region
  • Postal, currency, regulatory
How you use it

One lookup, every layer

  • Address validator accepts AX directly
  • Tax engine reads VAT-area boolean
  • Logistics branches on customs frontier
  • Content resolves constitutional language
What it gives you

Sell to more customers, fewer tickets

  • Reach hybrid-territory customers competitors block
  • Cut support load from tax, address, and routing errors
  • Audit trails write themselves
  • Hybrid territories become ordinary rows
Sell to more customers, with fewer tickets

TLL solves this.

One protocol, one decision, source-cited and versioned. Reach the hybrid-territory customers competitors block, and stop bleeding support hours on tax, address, and routing errors.