For researchers and journalists
Data and downloads
Every release is published as a flat table and as the full snapshot the site itself renders from. Nothing here is behind a form. The index adds scoring, not measurement: each indicator comes from a UK official statistics producer under the Open Government Licence, and the source is named in every row.
Scores are stress readings from 0 to 100 where higher means more stress. If you are citing a figure, please cite both the British Resilience Index and the underlying publisher: see how to cite and the methodology. Every row carries the period it covers, which is not the same as when it was published: how old the data is measures that gap across the whole index.
By release
Every published release
Releases are immutable once published. Where a source later revises a figure, the revision appears in the next release and the original reading stays in the archive, so a citation of a past release remains reproducible. The one exception is a recorded correction: the archive then carries a revision number and a corrections list saying what changed and why, and the table below shows the revision.
Every movement column says what it is compared against. The domains CSV carries delta_basis: release means previous_score and delta compare with the archived previous release, unavailable means no archived comparator existed for that view and the two cells are empty, and data_step marks archives written before the September 2026 correction, whose delta compared each indicator's latest observation with the one before it rather than the previous release.
| Release | Score | Downloads |
|---|---|---|
| September 2026revision 4 | 51 | indicators CSVdomains CSVfull snapshot JSONreview |
| August 2026 | 52 | indicators CSVdomains CSVfull snapshot JSONreview |
| July 2026 | 51 | indicators CSVdomains CSVfull snapshot JSONreview |
| June 2026 | 52 | indicators CSVdomains CSVfull snapshot JSONreview |
The current release is September 2026, generated 11 September 2026, with a data cutoff of 25 August 2026. Also available as latest-index.json.
Reference files
Sources, history and robustness
- source-registry.json
Every registered source: publisher, dataset, type, reliability, update frequency and link.
- metric-history.json
The full back series behind every indicator, as published, one array per indicator.
- sensitivity.json
Monte Carlo results: the headline under 2,000 alternative weightings, aggregations and normalisations.
- release-history.json
One row per published release: score, band, movement and a link to the full snapshot.
- data-dictionary.json
What every column in the CSV downloads means, and its permitted values.
Data dictionary
What every column means
All scores are stress scores from 0 to 100 where HIGHER MEANS MORE STRESS. Bands by id (label): 0 to 24 stable (Stable), 25 to 49 strained (Strained), 50 to 74 fragile (Fragile), 75 to 89 critical (High stress), 90 to 100 near_midnight (Extreme stress). The top two labels were renamed in August 2026; the ids are permanent.
| Column | Meaning |
|---|---|
release_period | The release this row belongs to, for example 'August 2026'. |
metric_id | Stable identifier for the indicator. Safe to join on across releases. |
metric_name | Human readable indicator name. |
domain_id | Identifier of the domain the indicator sits in. |
domain_name | Human readable domain name. |
unit | Unit of latest_value as published by the source. |
latest_value | The indicator's value as published. Not rescaled. |
latest_period | The period the value covers, in the publisher's own wording. |
previous_value | The preceding observation, used for the trend component. |
direction_of_badness | higher_is_worse or lower_is_worse: which way stress runs. |
stress_score | 0 to 100 composite for this indicator. From the September 2026 release: two thirds level and one third trend, renormalised over the components that could be measured, so an indicator whose trend is not computable rests on its level alone. Releases up to and including August 2026: 60% level, 30% trend, 10% volatility, with an unmeasurable component contributing a neutral 50. Check release_period before recomputing. |
level_score | 0 to 100 level component. Published so the composite can be recomputed: two thirds of the blend from September 2026, 60% before. |
level_normalisation | percentile = ranked within the indicator's own verified history (needs at least 8 points); bounds = linear against best and worst observed bounds, used until that history exists. |
trend_score | 0 to 100 trend component. 50 is neutral. |
trend_basis | measured = computed from a real change; no_change = the latest reading equals the previous one, so the component is a measured 50; not_computable = the previous value is zero and no fractional change can be formed. From September 2026 a not_computable trend is dropped from the blend and the stress score rests on level alone; before then it contributed a neutral 50. |
volatility_score | 0 to 100 volatility component. 50 is neutral. Published on every indicator; part of the stress blend only up to August 2026. |
volatility_basis | measured = computed from at least four history points; insufficient_history = fewer than four, so the component is a neutral 50. |
confidence_score | 0 to 1 data quality score for the indicator's source. |
scored | true = enters domain and national scoring. false = a provisional placeholder with no published official figure, displayed for transparency and excluded from every score. |
verified | true = the value was transcribed or fetched from the named official source. |
geographic_coverage | The geography the indicator is published for: uk, gb, england, england_wales, scotland, wales, ni. A devolved measure is never blended into a UK figure to fill a gap. |
source_id | Identifier into the source registry (source-registry.json). |
source_organisation | The publishing body. |
source_url | The dataset or release page the figure comes from. |
weight_pct | The domain's weight in the national score, in percent. Weights sum to 100. |
score | Domain stress score: the median of its indicators' stress scores. |
average_score | The mean of the same indicators, published for comparison with the median. |
risk_band | Band label for the score. |
previous_score | The domain's score at the previous published release, read from that release's archive, when delta_basis is release. Empty when delta_basis is unavailable. For rows with delta_basis data_step it is the score of a synthetic previous snapshot, not an archived release. |
delta | Signed change in score. Positive means more stress. Read delta_basis: it is the change since the previous published release only when delta_basis is release. Empty when delta_basis is unavailable. |
delta_basis | release = compared with the archived previous published release. unavailable = no archived comparator existed for this view at that release, so previous_score and delta are empty. data_step = an archive written before the September 2026 correction, whose delta compared each indicator's latest observation with the one before it (a synthetic previous snapshot), not the previous release; the September 2026 archive was reissued as revision 2 on the release basis. |
metric_count | How many indicators the domain's score was computed from. |
Licence and reuse
Free to use, with attribution
The underlying figures are UK official statistics, released by their publishers under the Open Government Licence v3. The scoring, aggregation and written analysis are the British Resilience Index’s own. Reuse is welcome; attribution to both is expected.
The scoring engine is open source under the MIT licence, so any figure here can be recomputed from the published inputs rather than taken on trust.
Spotted something wrong? Corrections are published rather than quietly fixed: get in touch.