immigration.fyiCase Law Finder

Casework

Asylum Interview ReviewerAuditorBundle BuilderCW Form CompletionCase Law FinderCase SummaryChronology DrafterCompilerCountry ScheduleDate ConversionsDocument CompareDocument NotepadEvidence ExhibitorEvidence: MatrixFilerGenogram GeneratorGov.UK Archive CheckImage AnnotatorPassage PickerResearch

Case Law Finder

Index

Find a judgment

Brackets optional. The (IAC) / (Admin) qualifier is what tells UKUT from EWHC apart.

What this is

Case Law Finder turns one neutral citation into the matching deep links on the three free public sources, Find Case Law (The National Archives), BAILII, and Tribunals Decisions: so you can open the judgment without hand-building URLs or searching.

How to use it

  1. Pick the court, type the year and the number: e.g. UKUT (IAC), 2020, 46.
  2. Or paste a citation like [2020] UKUT 46 (IAC) (or a Tribunals Decisions slug 2018-ukut-430) into the paste box and the fields fill themselves.
  3. Use Open to launch a source in a new tab, or Copy to grab the URL.

What it covers

Immigration-focused: UK Supreme Court, Privy Council, Court of Appeal (Civil), High Court (Administrative), Upper Tribunal (IAC), plus search links for CJEU and ECtHR. Only the Upper Tribunal (IAC) appears on Tribunals Decisions; the First-tier Tribunal is excluded because its reported determinations have no stable public deep-link home.

Build-only: nothing is fetched

The tool constructs URLs from known conventions; it never contacts the sites (a local page can’t, and BAILII blocks automated requests). A 404 just means that court isn’t hosted by that service.

Specification
# CASELAW-FINDER-SPEC

**Tool:** `caselaw-finder.html` Β· GMIAU Shell Β· Knowledge section
**Status:** v0.1 (2026-05-22)
**One-liner:** Enter a court + year + number (or paste a neutral citation) and get the
correct deep links to the same judgment on **Find Case Law** (The National Archives),
**BAILII**, and **Tribunals Decisions**, built-only, fully offline, nothing fetched.

---

## 1. Purpose & scope

Immigration caseworkers cite authorities by neutral citation (`[2020] UKUT 46 (IAC)`).
Each of the three free public sources lays its URLs out differently. This tool turns one
citation into the three canonical URLs so you can open the judgment without hand-building
paths or searching.

**Build-only.** The tool never fetches anything: a `file://` page can't (CORS), and BAILII
bot-walls automated requests anyway (see the retired Case Collector finding). It constructs
candidate URLs from known conventions and gives Open / Copy buttons. A built link that 404s
means that court isn't hosted by that service, not a tool bug.

Coverage is **immigration-focused**, not comprehensive UK. Courts below the supported set
(EWCA Crim, EWHC KB/Ch/Fam, UKUT AAC/LC/TCC, EWCOP, NI, Scotland) are out of scope for v0.1.

## 2. Inputs

Two interchangeable input modes, both feeding the same three fields:

| Field | Control | Notes |
|---------|--------------------|-------|
| Court | dropdown (`<select>`) | one of the Β§3 registry IDs |
| Year | number / text | 4 digits, `1990`–current year+1 |
| Number | number / text | the neutral-citation number (NOT a BAILII sequential id) |

**Citation paste box**, paste `[2020] UKUT 46 (IAC)` (brackets optional) or a Tribunals
Decisions slug `2018-ukut-430`; the parser (Β§4) fills Court/Year/Number and re-renders.

## 3. Court registry (the single source of truth)

Each court maps to a builder per service. A builder returns a URL **or** `null`
("not hosted here" shown as a muted dash, never a fabricated link).

| ID | Label | Citation form | National Archives | BAILII | Tribunals Decisions |
|---------------|----------------|------------------------|--------------------------|-------------------------------------|------------------------------|
| `uksc` | UK Supreme Court | `[Y] UKSC N` | `/uksc/Y/N` | `/uk/cases/UKSC/Y/N.html` |, |
| `ukpc` | Privy Council | `[Y] UKPC N` | `/ukpc/Y/N` | `/uk/cases/UKPC/Y/N.html` |, |
| `ewca-civ` | Court of Appeal (Civil) | `[Y] EWCA Civ N` | `/ewca/civ/Y/N` | `/ew/cases/EWCA/Civ/Y/N.html` |, |
| `ewhc-admin` | High Court (Administrative) | `[Y] EWHC N (Admin)` | `/ewhc/admin/Y/N` | `/ew/cases/EWHC/Admin/Y/N.html` |, |
| `ukut-iac` | Upper Tribunal (IAC) | `[Y] UKUT N (IAC)` | `/ukut/iac/Y/N` | `/uk/cases/UKUT/IAC/Y/N.html` | `/utiac/Y-ukut-N` |
| `cjeu` | CJEU | (case no., e.g. `C-66/16`) |, | search portal |: **search mode** (Β§5) |
| `ecthr` | ECtHR | (application no.) |, | search portal |: **search mode** (Β§5) |

Bases:
- National Archives: `https://caselaw.nationalarchives.gov.uk`
- BAILII: `https://www.bailii.org`
- Tribunals Decisions: `https://tribunalsdecisions.service.gov.uk`

**Excluded on purpose:** FtT(IAC), reported FtT determinations have no stable public
deep-link home (largely unreported; Tribunals Decisions hosts the *Upper* Tribunal). Adding
it would only emit dead links. Revisit if a stable pattern emerges.

## 4. Citation parser

Case-insensitive, whitespace-tolerant. First matching rule wins; on no match, leave fields
untouched and show a hint.

```
[Y] UKSC N uksc
[Y] UKPC N ukpc
[Y] EWCA Civ N ewca-civ
[Y] EWHC N (Admin) ewhc-admin
[Y] UKUT N (IAC) ukut-iac
Y-ukut-N (slug) ukut-iac
```

`Y` = 4-digit year, `N` = digits. Square brackets optional. The `(IAC)`/`(Admin)`
qualifier is required to disambiguate UKUT/EWHC from sibling chambers/divisions.

## 5. Search-mode courts (CJEU / ECtHR)

Their identifiers (CJEU `C-66/16`; ECtHR application numbers) don't fit court/year/number,
so these two emit **prefilled search links** on the authoritative portal instead of deep links:

- CJEU `https://curia.europa.eu/juris/liste.jsf?num=<input>` (+ a BAILII EUECJ search link)
- ECtHR HUDOC search `https://hudoc.echr.coe.int/eng#{"fulltext":["<input>"]}` (URL-encoded)

In search mode the "Number" field becomes a free-text "Case / application no." box and the
Year field is hidden.

## 6. Output

One result card per service (NA, BAILII, Tribunals Decisions), each with:
- the built URL (monospace, copy button),
- an **Open** button (`target="_blank" rel="noopener"`),
- or a muted ", not hosted on this service" line when the builder returns `null`.

Plus a **reconstructed neutral citation** line at the top (copyable), formatted per Β§3.

## 7. GMIAU Shell conformance

- Header ` Case Law Finder` title + ` Index` back-link (`../index.html`, `data-index-link`).
- Tabs in canonical order: Guide Β· Finder Β· Config Β· Settings. Per STYLE-GUIDE
 Β§2B the **Finder** (primary tool tab) is default-active even though Guide is listed first
 (`window.IFYI_PRIMARY_TAB = 'finder'`). Guide + Config hidden via the shared
 `ifyi_hide_guide_tab` / `ifyi_hide_config_tab` keys (both Β§2C CSS hooks present).
- **Config tab** holds tool-local prefs (all `localStorage`, per browser):
 - `ifyi_caselaw_default_court`, which court the Finder dropdown starts on (Upper
 Tribunal (IAC) is the immigration default).
 - `ifyi_caselaw_src_na` / `_bailii` / `_td`, per-source show/hide; hidden sources are
 dropped from the results. The CJEU/ECtHR official portal row is always shown.
- `@@IFYI_THEME@@` + `@@IFYI_SETTINGS@@` sentinels; both canonical themes
 (GMIAU Light / GMIAU Dark); mandatory themed scrollbars; Β§4A full-width panels.
- `@@SPEC:CASELAW-FINDER-SPEC@@` sentinel in a Guide `<details>` so the built tool carries
 this spec.

## 8. Privacy

No case data touches the tool, only public court identifiers. Nothing leaves the browser;
no network calls. Safe to ship in the public Codeberg Pages suite (tools.immigration.fyi).

## 9. Test fixtures

`gmiau-testing/caselaw-finder/cases.json`, citation expected three URLs, covering each
registry court + a Tribunals-Decisions slug parse + a search-mode court.

Free and open source, hosted in the EU by Codeberg. Designed for immigration and asylum casework. Use at your own risk., Nothing leaves your browser; this page only builds links for you. Always confirm the citation against the judgment itself.

Default court

Saved in this browser (ifyi_caselaw_default_court). Upper Tribunal (IAC) is the usual immigration default.

Sources shown

Hidden sources are dropped from the results. Saved per browser (ifyi_caselaw_src_*). The official portal for CJEU / ECtHR is always shown.

App font

App appearance

Tab visibility

Syncs across every GMIAU Shell tool via ifyi_hide_guide_tab + ifyi_hide_config_tab.

No server: this page only builds public court links; nothing leaves your browser
© immigration.fyi · Free and open source · Hosted in the EU by Codeberg · Safe, secure and offline