MigrationWatchdog

Changelog

What changed on this site and when. Data refreshes are stamped on each page; corrections have their own log.

  • The crime page has been split into four. It carried foreign national offenders in prison, returns and deportations, immigration detention, and illegal working — four separate subjects on one URL, under a heading that described only the first of them, so a reader searching for how many people are in immigration detention landed on a page about offenders and had to scroll past the prison population. Returns, detention and illegal working now have their own pages and the crime page keeps the subject its title names. ⚠ The build’s own link checker caught two internal links pointing at headings that had moved, which is precisely what it was added for.
  • New: the nine immigration removal centres, and what the three bodies that scrutinise them have published about each. The ombudsman’s investigations, the inspectorate’s reports and the monitoring boards’ reports with the department’s replies were all already here as three separate lists, which meant the site could say how many inspection reports existed and not what had been found at any given centre. Seven centres have a page; Morton Hall and The Verne have nothing published against them by any of the three, so they appear on the index with their zeros and get no page of their own. These pages carry the fact and date of each ombudsman investigation and no link to it, because those reports are titled with the name of the person who died.
  • Monitoring boards report by site rather than by centre, and a site can contain more than one centre — eleven of the fourteen board documents here name no centre at all. This site has not guessed which centres sit under which site name, because that mapping is not in the data it holds. Each centre page says so, so that a blank is read as a limit of the record rather than as evidence that a centre goes unmonitored.
  • A correction, and it is one this site should have caught: the table of people who claimed asylum after entering on a visa was labelled “year ending December 2018”. The figures in it were for the year ending June 2026 — wrong by seven and a half years, printed twice on the asylum page, and carried into the downloadable files as the dataset’s period. The figures themselves were right. The period had been read from two table titles joined together, taking the first date that matched, and the neighbouring table’s title happens to begin “year ending December 2018 to the year ending June 2026”. It is now read from that table’s own title and nowhere else, and the build checks the two tables agree. See the corrections log.
  • New section on the appeals page about human rights appeals, which carry the highest allowed rate in the published table — 50% of 7,580 determined — and until now were three rows of a table with not one sentence attached to them. It sets out what the case type is, and then what the number does not mean, because that is where this figure is usually misread: determined is not decided in this period, cases are not people, and an appeal allowed at the first tier is not the end of the matter. It also says what this site does not hold — there is no breakdown beneath the case type, so no account of why the rate is what it is can be given from these statistics, and none is offered.
  • The asylum page now says what asylum support actually is: £49.18 per person per week, or £9.95 where the accommodation provides meals, which is the case in hotels, with the additional payments for pregnancy and young children and the one-off maternity payment. Each is quoted exactly as the department words it, with the date it was read, because these are rates set by statutory instrument and published as guidance — they change with no publication schedule and no revision notice. Beside them, the department’s own sentence on whether people may work, quoted in full rather than tightened. And three things nobody publishes, stated as such, including how many asylum seekers hold permission to work.
  • Grant rates by nationality run from 93% to 1% in the same table, and the site had been printing that column with nothing beside it. A reader who sees a spread that wide will explain it to themselves, so the page now names what sits behind it — country policy notes and country guidance case law, which differ by country and change over time — and then states plainly that this site holds the column and nothing under it. There is no dataset here linking any rate to any of that, so no explanation of any particular rate is offered.
  • Six nationalities gain their own page: Albania, Pakistan, India, Nigeria, Bangladesh and Brazil. These are nationalities the Home Office publishes asylum outcomes for but no illegal-entry series, so they had been excluded by a rule meant to prevent thin pages — which left Albania, the largest foreign national offender returns of any nationality, with no page at all. Each page states the absence of an arrivals series in its own words rather than showing a gap where a chart would be. Three further nationalities are still deliberately without a page: the department publishes nothing for them beyond a single row, and a page of three numbers is the thing that rule exists to prevent. The foreign-national prison figure remains off every one of these pages, which matters most on the one where it is largest.
  • The European comparison now states why it does not do the arithmetic a reader is doing while looking at it. Dividing each country’s figure by its population would produce a tidy table of rates whose numerators are collected on at least two different bases, and the countries are not ranked against the UK for the same reason — ordering them implies a precision these counts do not have.
  • Net migration is now published with the two numbers it is the difference between. It is a subtraction, not a count of arrivals, and it is the figure most often read as though it were one: the same ONS table gives 813,000 people arriving long-term and 642,000 leaving, and the difference is the 171,000 net figure that gets quoted alone. A fall in net migration can mean fewer people arriving, more people leaving, or both, and the net figure by itself does not say which. Both components had been collected and stored by this site for weeks and shown on no page. They appear only when the publisher’s own three numbers reconcile exactly, so the sentence cannot describe a subtraction that does not hold.
  • What actually ends a detention, as a share: removal accounted for 46% of the 21,517 detentions that ended in the year to June. The four reasons and the total are published in the same table and sum to it exactly, which is the only reason a share is constructed at all — this site does not build rates whose halves come from different places.
  • Organised immigration crime disruptions are published at three threat levels and only the total and the major subset were being drawn, so a rise made up entirely of minor disruptions read as a rise in disruption. All three levels are now shown, with the minor share of each quarter’s own total.
  • Four series that were being collected and never shown now appear: foreign national offender returns year by year (the site had been publishing the latest value of a twenty-year series and the series itself never), the three of four published return categories that were dropped in favour of one, and the Home Office’s own all-nationalities grant rate, which now sits at the foot of the small-boat table as the benchmark for the spread above it. Without it a reader had no denominator and was left to invent one.
  • Two counts gain the denominators that were sitting beside them. Leaving asylum accommodation accounts for 6.2% of all homelessness relief duties in England and 4.7% of prevention duties — both halves from the same table — where the page previously gave the asylum figures with nothing to size them against. And the written-questions page now says how many of the questions carried a date for the answer at all, rather than reporting how many met a deadline without saying how many had one.
  • Findings that were written into sentences are now worked out from the data, so they cannot quietly stop being true. The most exposed was on the detention page: “in the latest year, more people were bailed back into the community than were removed from the country” was typed in, and printed directly above the two figures that would have contradicted it. It is true today by about a thousand out of twenty-one thousand departures, which is one release away from being a published falsehood. Also now derived: whether the community caseload has risen or fallen (the old wording claimed it had “moved in both directions” whenever it had not risen for four quarters, which would have been flatly wrong for a series that only ever fell), whether enforced returns have risen from their low point, whether the hotel figure is below its peak or is itself the peak, and how many claim cohorts end up above their initial grant rate.
  • The reason the appeals page exists — that the Home Office’s own appeals table stopped updating — was a claim about another department’s behaviour, typed into two places and checked by nothing. The date is now read from the table’s own title every time the data is refreshed, so if the department starts publishing again, this site will say so instead of going on asserting that it has not.
  • Counts that describe the site’s own furniture are now counted rather than remembered: the number of accommodation contracts and suppliers (stated in six places), the number of European states in the comparison table, the number of quarters in a local-authority series, the number of rows shown in the hotel table, and how many sections of the site have no counterpart outside England. Each of these sat next to a figure that was already computed from the same object.
  • Three more spreadsheet readers now find their columns by what the headings say rather than by where they sit. This is the fault that broke two readers last week, and these three would have failed worse: there the row labels moved too, so nothing matched and the parser stopped; here the labels stay put and only the values move, so the site would have gone on publishing confidently under the right headings. One of them reads use-of-force incidents from a table whose neighbouring column is a percentage. Every figure they produce is byte-for-byte identical to before, which is how the change was checked, and the reader-level tests now include the exact shape that caused last week’s failure.
  • Three corrections, all of them about this site rather than about immigration. The data status page told readers that the build “refuses to ship a dataset that has gone past its cadence window” and that this site “fails its own build in that situation”. It does not: the check warns and the build continues. That was wrong from the day the page was published. It warns on purpose — a publisher releasing late is not an error here, and stopping every deployment until they publish would also stop the corrections that have nothing to do with them — but the page should have said so instead of claiming an enforcement it did not have. A page that overstates how strictly it checks itself is a worse fault on this site than a wrong statistic would be, because everything else here asks you to take the checking seriously. See the corrections log.
  • The same page could not have detected the failure it exists to detect. It measured each dataset’s age against the most recently refreshed dataset rather than against the calendar, so a dataset could only look overdue relative to the others. Had refreshing stopped altogether, every age would have frozen where it stood and the page would have gone on reporting that all thirty-two datasets were inside their windows, indefinitely. Ages are now measured against the calendar when the site is built, and the page states the date they were measured on rather than implying it is describing this moment. The JSON API reports the same basis and its version number moves to 1.1.0 to say so.
  • The about page said the site had twenty-three sections. It had twenty-nine, and the same figure was being served to answer engines. Every other count on that page was already read from the data; this one had been typed in. It is now read from the page registry.
  • The Home Office’s year-ending-June-2026 statistics are now published across the site. Asylum claims are 85,891 for the year to June, which the department’s own table compares with 108,585 for the year to June 2025 — a fall of 22,694, or 21%. People awaiting an initial decision are 40,168 as at 30 June; 93,293 were receiving support, of whom 16,021 were in hotels. Foreign national offenders subject to enforcement action and living in the community are 21,294 as at the end of 2026 Q2. Where a change is given here it is the publisher’s own year-on-year comparison, not this site differencing two overlapping twelve-month periods against each other, which would not mean what it appears to mean.
  • That release is five days later reaching this site than it should have been, because two of the readers that parse those tables broke on it — and it is worth saying exactly how, because the failures were the system working. The table of asylum claims by route renamed its heading from “Route of entry / Latest leave prior to claim” to “Route prior to claim”, and the reader matched that heading as an exact string. The table of foreign national offenders living in the community gained a new left-hand column of footnote markers, which pushed every quarter and every count one place to the right, and the reader was counting columns. Neither produced a wrong number: the first refused to run and the second produced an empty series that failed its own length check. Both now locate their columns by what the headings say rather than by where they sit, and the site’s cross-dataset check independently refused the partial update in the meantime — it caught that the hotel figures summed across local authorities no longer matched the national total, because one had moved to the new quarter and the other had not.
  • The Home Office has also revised the whole series for foreign national offenders living in the community. The figure for 2026 Q1 was 19,779 in the release this site published in August and is 20,027 in the new one, and every earlier quarter has moved up similarly. The figures here now follow the new edition. The older ones were not wrong — they were the previous edition, and each is labelled with the release it came from.

  • Two new feeds, for the two parts of this site where something genuinely happens and nobody announces it in one place. Independent scrutiny: committee reports and whether a government response is recorded against them, coroners’ reports to the Home Office, ombudsman investigations, detention inspections, monitoring board reports and the statistics regulator’s correspondence. And what ministers say: each quantified claim quoted verbatim from the Official Report, with this site’s own figure on the same subject beside it. The rules travel inside each item rather than being left behind on the page a reader never opened — the coroner and ombudsman items carry no name and no circumstance, and every ministerial claim carries the statement that a claim is not a statistic and that this site does not adjudicate between them.
  • The build now checks the site it has just built, not only the data that went into it: every internal link and page fragment resolves to something that exists, every structured-data answer appears in the visible text of its own page, and every page carries a social preview image. It found the last of those wrong on its first run. The entry below, published yesterday, says every page now carries one — in fact the fix had reached only the pages written by hand, and the 362 built from a template, every local authority, every region and every nationality, still had none. They do now. That entry is left as it was published; this is the correction to it. The claim was caught by the thing it was a claim about, which is the whole argument for checking the output rather than the intention.
  • Two parsers that each read unrelated publishers into one file have been split, so that one source failing can no longer take another down. The illegal-entry-routes tables now refresh independently of the asylum tables, and the three publishers behind the crime page — the Home Office returns tables, the Ministry of Justice prison population and the migration transparency data — now refresh independently of each other, and simultaneously rather than one after another. Every figure they produce is byte-for-byte identical to before, which is how the split was checked. Separately, the set of datasets the status page reports on is now verified against the data directory at build time, so a dataset cannot be added and quietly go unmonitored. And the check added yesterday after the spending-table correction — every explanatory note a parser writes must appear in the data that parser wrote — now stops the build instead of printing the problem and continuing past it, which is what it had been doing. Splitting the parsers also cut the number of notes it examined from 97 to 77 without failing anything, because the notes had moved into files its scan did not look at; it now follows them, and refuses to run at all if it cannot read one.

  • A correction: the caveat printed under the £25,000 spending table said the disclosures contained no payments to Clearsprings or Mears, while the table directly above it showed £220m paid to Clearsprings in March 2025. The note had been corrected in the code weeks ago but the parser was never re-run, so the fix never reached the published data. See the corrections log.
  • Every page now carries a social preview image. Fourteen of them had none — the metadata builder was setting an Open Graph block without an image, which replaced the site-wide one they would otherwise have inherited. The eight sections with their own bespoke card keep it.
  • Structured data on the two question-and-answer pages now uses the same sentence the page displays. It previously carried a paraphrase, which promised search engines an answer a reader could not find on the page.

  • Three things that make the data usable rather than just visible. A data status page publishes the freshness check the build already enforces — every dataset, its age and whether it is inside its cadence window — reading the same policy file the gate reads, so the page cannot disagree with the check it reports on. A versioned JSON API at /api/v1/ covers every dataset, the source register, every headline figure and the freshness check, all prerendered, so anyone can build on the data instead of scraping the pages. And a search over the record: every quantified ministerial claim and every answered written question, searched by what was actually said rather than by a summary.
  • Eleven nationalities now have their own page, where both the arrivals series and the asylum outcomes are published for them — detected arrivals year by year, claims, decisions, grant rate, people awaiting a decision, and small-boat claim outcomes. Deliberately absent from every one of them: the foreign-national prison figure. This site holds it and publishes it on the nationalities index with the caveat it needs, but a country-headed page carrying a prison count is the one thing here most likely to be screenshotted without that caveat, so the figure is not on those pages at all.
  • New page: who checks the immigration system. Six independent bodies scrutinise different parts of it, and this page carries what each has on the record — with the point that scrutiny is only worth anything if somebody answers it. Select committee reports now show the response deadline the parliamentary record gives and whether a response is recorded against each: of seven reports on asylum and immigration, two have a passed deadline with none recorded, including the Public Accounts Committee's analysis of the asylum system.
  • Coroners' Prevention of Future Deaths reports sent to the Home Office about the immigration system are now published, along with the Prisons and Probation Ombudsman's investigations into deaths in immigration detention, listed by establishment — including every removal centre with none, because an absence is a fact rather than a gap. Both publish the fact of an independent report, its recipient and a link, and neither publishes the name of anyone who died, the circumstances, the medical cause or the inquest conclusion. The state being formally told something must change is the accountability fact; a person who died is not an exhibit in it.

  • New page on the third-country route. The Migration and Economic Development Partnership with Rwanda ran from April 2022 until it ended in July 2024; the Home Office's own published breakdown records £715 million of spend to June 2024, and states that during more than two years in which the policy and partnership operated, only four volunteers and no asylum seekers were sent to Rwanda. The department's cost table is republished as printed, with the build asserting it reconciles in both directions. The page distinguishes the £220 million of scheduled payments avoided by ending the partnership from money recovered — the department says the payments already made are not recoverable — and does not argue about whether the policy would have worked, which is unknowable.
  • The costs page now shows all seven regional accommodation contracts — which supplier holds which region, and what each was originally estimated to cost against what it is now estimated to cost. The re-estimates are not evenly spread: the South contract has gone from £0.7bn to £7.0bn, and from 16% of the estimated value of all regions to 46% of it. Both columns are the National Audit Office's own and each sums exactly to the headline totals already published here, which is how they were checked.
  • New page: then and now. Each measure compared with ITSELF at the two ends of the series its publisher provides, with its peak — arrivals, claims, the backlog, accommodation, hotels, enforced and voluntary returns, detention entries, and net migration shown separately as context. The page states its own limits: nothing is compared across publishers or between a snapshot and a flow, every row gives the date its series starts, no percentage is shown where the base is under 1,000 because a five-figure percentage tells you less than the two numbers beside it, and two dated points cannot show why anything moved.
  • Figures in billions now render to one decimal place everywhere. Every source states them that way — the NAO writes £4.0 billion and £7.0 billion — and £4bn beside £0.7bn both lost the precision the publisher stated and read as a different order of accuracy.

  • New page answering the question this whole subject is usually argued about: how many people are in the UK illegally. Nobody publishes that number, and the Home Office says so in its own statistics user guide — quoted verbatim. The page sets out every figure that IS published, labels each a flow or a snapshot, and explains why they cannot be added into a population count, including the categories the guide says are missing by design: people who arrive undetected, who enter through the Common Travel Area, or who arrive lawfully and overstay.
  • Detention now shows how long it lasts, from the length-of-detention table in the release the site already reads: two thirds of completed detentions ended within a month and 1.8% ran past six months, with a long tail measured in years. The bands sum exactly to the publisher's own total, and the build asserts it.
  • Every local-authority page gains a section derived from the accommodation table alone — highest and lowest recorded quarters, rank then and now, and the accommodation mix against its nation — so pages outside England are no longer the thinnest on the site. Glasgow City is rank #1 in the UK and rendered 566 words against Maldon's 750 for one supported person; the gap was the England-only school and homelessness series, and the Scottish, Welsh and Northern Irish pages now say plainly which series do not cover them and why nothing has been substituted.
  • Trust pages brought up to date. The about page now maps the whole site, states the rules it works to — including the ones that have cost it findings — and says plainly what happens when it is wrong, with the corrections count read from the log rather than typed in. The sources page gains a methodology entry for every wired pipeline, naming the artefact each figure is read from, the step that is easy to get wrong, and what the parser refuses to do; where a registered source has no entry, it is now listed as such instead of left silent.
  • The glossary more than doubles, led by the distinction the enforcement figures turn on: a return is anyone leaving who had no right to remain, a removal is one the state carries out, and a deportation follows a deportation order. The crime page now links it at the point the five different return measures appear.
  • Three parliamentary sources that were live on the site but missing from the register — petitions, bills and Commons divisions — are now registered, so their staleness is monitored like everything else. Hotels moves next to Asylum in the navigation, and the pages that were reachable only from the footer are now linked from the sections they are about.
  • The downloads page is now a catalogue rather than a list: fifty datasets grouped into six subjects with an index at the top, instead of one flat table in the order they happened to be added.
  • Parliamentary questions: the page now carries the 200 most recently answered questions rather than a dozen, with the median time from tabling to answer, how many were answered by the date the record gives, the answering department, and who is asking — all computed over exactly the questions shown, and none of it a measure of any department's overall performance.
  • Four new official sources wired in. What ministers say (new page): quantified claims made in Parliament about immigration, quoted verbatim from Hansard and printed beside this site's own figure on the same subject — with the rule stated plainly that a claim is not a statistic and that this site does not adjudicate between them.
  • The statistics regulator's own correspondence with the Home Office now appears on the sources page and beside the hotel series, including the regulator's finding that an unscheduled release of an internal hotel figure breached the Code of Practice for Statistics.
  • The crime page adds the statutory monitoring boards' detention reports and, unusually, the Home Office's published written response to each one.
  • The costs page adds the accommodation providers' accounts filing record — and states why no turnover figure appears with it: Companies House serves those accounts as scanned images with no extractable text, and reading a revenue figure off a picture of a table is not something this site will do.
  • Three corrections published after a full content and code audit — the appeals comparison, a detention claim on the crime page, and petition signature labelling on region pages. See the corrections log.
  • The boundary page now states the rule this site actually follows on constructed rates: both figures officially published, both cited on the page, both measuring the same population over the same area — which is why a local accommodation rate qualifies and a per-population offending rate by nationality does not.
  • Findings that were written into prose are now computed from the data, so they cannot quietly become false when the next release lands. Sheffield, Barnsley and Gateshead regained their school-language panel, lost to superseded area codes.

  • Local-authority pages gain two new official series: households owed a homelessness duty after being required to leave Home Office asylum accommodation (England, per authority), and pupils in state-funded schools whose first language is other than English (published at upper-tier authority level, so district pages say so rather than borrowing a county figure).
  • Two more official series added: legal aid for immigration and asylum (completed Legal Help matters and their cost, by financial year), and independent inspections of immigration removal centres — the inspectorate's overall judgement published alongside the concerns it raised, never one without the other.
  • Spreadsheet reader hardened: empty self-closing rows in ODS files were being skipped, which shortened row counts. No published figure was affected — every parser here selects rows by content, and re-running them returned identical output — but row counts are now faithful and a self-test covers it.

  • Four corrections published (OIC four-quarter figure, £25k-disclosure provider finding, adult-male share denominator, Ipsos poll table) — see the corrections log for full detail.
  • The £25k spend series now loads both publication years (17 months, January 2025 to May 2026) and every sentence about it is computed from the data at render time.
  • Refresh hardening: one stale source can no longer block the other datasets' scheduled refresh; staleness checks compare against each release's own vintage instead of the calendar; parliamentary-question excerpts now always carry an ellipsis when truncated.
  • Corrections RSS item identifiers changed to stable per-entry ids — feed readers will see historic corrections re-delivered once.

  • New pages: /appeals (First-tier Tribunal receipts, outcomes, open caseload and the cohort analysis showing final grant rates), /nationalities (arrivals, claims and — separately — prison figures by nationality), /questions (answered written parliamentary questions), and 12 region pages under /local/region/.
  • Per-10,000 rates re-based from Census 2021 residents to ONS mid-year population estimates covering all four nations — logged as a corrections entry; Scotland and Northern Ireland pages gain rates.
  • /costs gains the £25k+ spend-transparency series (the disclosures contain no Clearsprings or Mears payments — the absence is the finding), Companies House filing links for the three accommodation providers, the detention cost-per-day series, and a panel on the net-fiscal figure nobody publishes.
  • /crime gains why-people-leave-detention, the published returns-of-small-boat-arrivals cohort, custody mix, illegal-economy sanctions, and the FNO release-reasons series the Home Office stopped publishing.
  • /asylum gains claims by route of entry, the visa-to-asylum pipeline, nationality table, age-assessment outcomes, an EU context panel (Eurostat) and recent parliamentary questions.
  • Breadcrumbs with structured data, per-section social cards, RSS feeds for corrections and changelog, a print stylesheet, glossary structured data, and cite-this-page blocks.

  • New pages: /asylum (backlog series, grant rates incl. small-boat claims by nationality, inadmissibility), /data (downloadable cleaned CSV/JSON), /corrections, /what-this-site-does-not-say, /glossary, /changelog.
  • New sections: safe & legal humanitarian routes on /arrivals; detention, organised immigration crime and the nationality × offence-group table on /crime; resettlement on every local-authority page.
  • Local-authority pages enriched: quarterly trend, per-10,000-residents rate, share of nation, hotel vs contingency split, rank neighbours.
  • Seven substantive corrections to previously published output — logged in full on the corrections page.
  • llms.txt, new llms-full.txt and the sitemap are now generated from the live data; accessibility pass (contrast, focus styles, skip link, table semantics).

  • Site launched and opened to indexing: home, arrivals, costs, crime & justice, integration, local impact (339 local-authority pages), sources, about.
  • Data pipelines connected to Home Office, Ministry of Justice, ONS/Nomis and NAO sources with the anti-fabrication build gate.

See also the corrections log.