Data Sources

Bolster provides standardised access to a range of Northern Ireland and UK government data sources. Each module follows the same conventions:

  • A top-level get_latest_*() function that downloads and returns a pandas.DataFrame ready for analysis.

  • Caching to ~/.cache/bolster/<source>/ to avoid repeated downloads.

  • A matching CLI command (bolster <command> --help).


NISRA

The NI Statistics and Research Agency publishes a wide range of official statistics for Northern Ireland. All NISRA modules live under bolster.data_sources.nisra.

Births

Monthly birth registrations from 2006 to present, broken down by sex and by registration vs. occurrence date.

from bolster.data_sources.nisra import births

df = births.get_latest_births(event_type="registration")
$ bolster nisra births

Deaths

Weekly death registrations with demographics, geography (Local Government Districts), and place-of-death breakdowns.

from bolster.data_sources.nisra import deaths

df = deaths.get_latest_deaths(dimension="demographics")
$ bolster nisra deaths

Marriages

Monthly marriage registrations.

from bolster.data_sources.nisra import marriages

df = marriages.get_latest_marriages()
$ bolster nisra marriages

Stillbirths

Monthly stillbirth registrations.

from bolster.data_sources.nisra import stillbirths

df = stillbirths.get_latest_stillbirths()
$ bolster nisra stillbirths

Population

Annual mid-year population estimates by age, sex, and Local Government District.

from bolster.data_sources.nisra import population

df = population.get_latest_population(area="Northern Ireland")
$ bolster nisra population

Population Projections

NI-level and LGD sub-area population projections (2024-based, 2024–2072).

from bolster.data_sources.nisra import population_projections

df = population_projections.get_latest_population_projections()
$ bolster nisra population-projections

Baby Names

Annual baby name registrations (1997–present) by sex and rank.

from bolster.data_sources.nisra import baby_names

df = baby_names.get_latest_baby_names(sex="female")
$ bolster nisra baby-names

Migration

Official and derived migration estimates — demographic components of population change including natural change, net migration, and cross-border flows.

from bolster.data_sources.nisra import migration

df = migration.get_latest_migration()
$ bolster nisra migration

Labour Market

Quarterly Labour Force Survey statistics: employment, economic inactivity, and unemployment rates for Northern Ireland.

from bolster.data_sources.nisra import labour_market

df = labour_market.get_latest_employment()
$ bolster nisra labour-market

Claimant Count

Monthly UC+JSA claimant count statistics from DfC/ONS. NI headline back to April 1997, with LGD and SOA breakdowns.

from bolster.data_sources.nisra import claimant_count

df = claimant_count.get_latest_claimant_count("headline")
$ bolster nisra claimant-count

Annual Survey of Hours and Earnings (ASHE)

Employee earnings statistics for Northern Ireland, covering median weekly and hourly earnings, real earnings growth, occupation/industry breakdowns, and gender pay distribution (Figures 1–18).

from bolster.data_sources.nisra import ashe

df = ashe.get_latest_ashe_timeseries("weekly")
$ bolster nisra ashe

Quarterly Employment Survey

Employee jobs by sector from Q1 1998 to present, seasonally adjusted and unadjusted.

from bolster.data_sources.nisra import quarterly_employment_survey

df = quarterly_employment_survey.get_latest_qes()
$ bolster nisra quarterly-employment-survey

Composite Economic Index (NICEI)

The headline experimental quarterly economic indicator for Northern Ireland.

from bolster.data_sources.nisra import composite_index

df = composite_index.get_latest_nicei()
$ bolster nisra composite-index

Index of Production / Services

Quarterly Index of Production (IOP) and Index of Services (IOS) for NI.

from bolster.data_sources.nisra import index_of_production, index_of_services

df_prod = index_of_production.get_latest_iop()
df_serv = index_of_services.get_latest_ios()
$ bolster nisra index-of-production
$ bolster nisra index-of-services

Construction Output

Quarterly construction output statistics — all work, new work, and repair & maintenance.

from bolster.data_sources.nisra import construction_output

df = construction_output.get_latest_construction_output()
$ bolster nisra construction-output

Business Register (IDBR)

NI Business Register (IDBR) — annual VAT/PAYE business counts by industry, legal status, and Local Government District.

from bolster.data_sources.nisra import business_register

df = business_register.get_latest_data()
$ bolster nisra business-register

Planning Statistics

NI Planning Activity Statistics — quarterly applications, approvals, and refusals by council.

from bolster.data_sources.nisra import planning_statistics

df = planning_statistics.get_latest_planning_statistics()
$ bolster nisra planning-statistics

Deprivation (NIMDM 2017)

NI Multiple Deprivation Measure 2017 — SOA-level overall and domain deprivation ranks for 890 Super Output Areas.

from bolster.data_sources.nisra import deprivation

df = deprivation.get_latest_data()
# Columns: soa_code, soa_name, mdm_rank, income_rank, employment_rank, ...
$ bolster nisra deprivation

Housing Stock

NI Housing Stock Statistics (DoF/LPS) — annual counts of residential properties by type (detached, semi-detached, terraced, flat) and Local Government District.

from bolster.data_sources.nisra import housing_stock

df = housing_stock.get_latest_data()
$ bolster nisra housing-stock

Wellbeing

Individual wellbeing statistics from the NI Wellbeing Dashboard — life satisfaction, happiness, anxiety, and loneliness.

from bolster.data_sources.nisra import wellbeing

df = wellbeing.get_latest_personal_wellbeing()
$ bolster nisra wellbeing

Public Confidence in Official Statistics

Public Awareness of and Trust in Official Statistics (PCOS) — awareness and trust indicators back to 2009.

from bolster.data_sources.nisra import public_confidence

df = public_confidence.get_latest_data()
$ bolster nisra public-confidence

Registrar General Quarterly Tables

Quarterly births, deaths, marriages, and LGD breakdowns.

from bolster.data_sources.nisra import registrar_general

data = registrar_general.get_quarterly_vital_statistics()
# data is a dict with keys: 'births', 'deaths', 'lgd'
$ bolster nisra registrar-general

Tourism — Occupancy

Monthly hotel and guest accommodation occupancy rates.

from bolster.data_sources.nisra.tourism import occupancy

df = occupancy.get_latest_hotel_occupancy()
$ bolster nisra occupancy

Tourism — Visitor Statistics

Quarterly visitor numbers and spend.

from bolster.data_sources.nisra.tourism import visitor_statistics

df = visitor_statistics.get_latest_visitor_statistics()
$ bolster nisra visitors

Department of Health NI (health_ni)

The Department of Health publishes health and social care statistics for Northern Ireland. All health_ni modules live under bolster.data_sources.health_ni.

Cancer Waiting Times

14-day, 31-day, and 62-day cancer referral-to-treatment waiting times by tumour type and HSC Trust. Data via PxStat.

from bolster.data_sources.health_ni import cancer_waiting_times

df = cancer_waiting_times.get_latest_62_day_by_tumour()
$ bolster nisra cancer-waiting-times

Diagnostic Waiting Times

Diagnostic waiting times by test type and HSC Trust. Data via PxStat DWT matrix.

from bolster.data_sources.health_ni import diagnostic_waiting_times

df = diagnostic_waiting_times.get_latest_diagnostic_waiting_times()
$ bolster nisra diagnostic-waiting-times

Elective Waiting Times

Inpatient/day-case and outpatient referrals waiting by weeks-waited band, specialty, and HSC Trust. Covers pre-encompass (legacy PAS) and encompass (new EPR system from December 2023) data series.

from bolster.data_sources.health_ni import elective_waiting_times

df = elective_waiting_times.get_latest_elective_waiting_times()
$ bolster nisra elective-waiting-times

Emergency Care Waiting Times

Monthly A&E attendance and 4-hour target performance by HSC Trust and hospital department.

from bolster.data_sources.health_ni import emergency_care_waiting_times

df = emergency_care_waiting_times.get_latest_data()
$ bolster nisra emergency-care

Disease Prevalence

NI disease register statistics at NI, LGD, HSCT, and GP-practice level. Covers 17 disease categories including hypertension, diabetes, and COPD.

from bolster.data_sources.health_ni import disease_prevalence

# NI-level summary
df = disease_prevalence.get_latest_disease_prevalence(level="ni")

# GP-practice level (~360 practices, ~17 financial years)
gp_df = disease_prevalence.get_latest_gp_prevalence()
$ bolster nisra disease-prevalence
$ bolster nisra disease-prevalence --level gp

Child Protection

NI child protection registrations, de-registrations, and case conference statistics from the Department of Health.

from bolster.data_sources.health_ni import child_protection

df = child_protection.get_latest_child_protection()
$ bolster nisra child-protection

PSNI

The Police Service of Northern Ireland publishes open-data releases covering crime, road safety, and police activity. All PSNI modules live under bolster.data_sources.psni.

Crime Statistics

Historical monthly crime statistics broken down by offence type, district command unit, and outcome. Note: the most recent 12-month period is not published in the open-data release; use get_historical_crime_statistics() for reliable data.

from bolster.data_sources.psni import crime_statistics

df = crime_statistics.get_historical_crime_statistics()
$ bolster psni crime

Road Traffic Collisions

Annual road traffic collision data with casualty severity and road type.

from bolster.data_sources.psni import road_traffic_collisions

df = road_traffic_collisions.get_latest_collisions()
$ bolster psni rtc

PACE Statistics

Annual PSNI PACE statistics — monthly stop & search by reason and quarterly arrests by gender and category, back to 2013/14.

from bolster.data_sources.psni import pace

df_searches = pace.get_latest_pace_stop_and_search()
df_arrests  = pace.get_latest_pace_arrests()
$ bolster psni pace

Police Ombudsman

Annual and quarterly Police Ombudsman complaint statistics — complaints by district, allegation type, and outcome back to 2000/01.

from bolster.data_sources.psni import police_ombudsman

df = police_ombudsman.get_latest_complaints()
$ bolster psni police-ombudsman

DVA — Driver and Vehicle Agency

Monthly test statistics from the NI Driver and Vehicle Agency.

from bolster.data_sources import dva

vehicles = dva.get_vehicle_test_statistics()
drivers  = dva.get_driver_test_statistics()
theory   = dva.get_theory_test_statistics()
$ bolster dva vehicle-tests
$ bolster dva driver-tests
$ bolster dva theory-tests

NI Water

Drinking water quality data for all NI supply zones.

from bolster.data_sources.ni_water import get_water_quality, get_water_quality_by_zone

df = get_water_quality()
zone = get_water_quality_by_zone("BALM")  # Belfast Malone
$ bolster water-quality --postcode "BT1 1AA"

NI Assembly (AIMS)

NI Assembly AIMS data — Members of the Legislative Assembly, oral/written questions, and assembly votes.

from bolster.data_sources import niassembly

members = niassembly.get_members()
questions = niassembly.get_questions(member_id=123)
votes = niassembly.get_votes()
$ bolster niassembly members
$ bolster niassembly questions
$ bolster niassembly votes

EONI — Electoral Office for Northern Ireland

NI Assembly election results (2016 and 2022).

from bolster.data_sources.eoni import get_results

df_2022 = get_results(2022)
df_2016 = get_results(2016)
$ bolster ni-elections 2022

NI House Price Index

Standardised house price index for Northern Ireland.

from bolster.data_sources.ni_house_price_index import build

df = build()
$ bolster ni-house-prices

Justice

Department of Justice, its sponsored bodies, and the NI Courts and Tribunals Service (NICTS).

Mortgage Possession Actions

Quarterly mortgage possession proceedings in the Chancery Division of the NI High Court: cases received, cases disposed, and the final orders made.

from bolster.data_sources.justice import mortgages

tables = mortgages.get_latest_data()
received = tables["received"]
$ bolster justice mortgages
$ bolster justice mortgages --table disposed

Quarterly Court Business Figures

Provisional case receipts, disposals, and outstanding workload across all ten NICTS court datasets — Court of Appeal (criminal and civil), the three High Court divisions, Crown, County, Magistrates’, Children Order proceedings, and judicial sitting days. Annual totals from 2017 plus quarterly figures for the most recent years, returned as a single tidy long frame.

from bolster.data_sources.justice import nicts_quarterly

# Every court, every period
df = nicts_quarterly.get_latest_data()

# A single court
crown = nicts_quarterly.get_crown_court()

# What court keys are available?
nicts_quarterly.list_courts()
$ bolster justice nicts-quarterly --list-courts
$ bolster justice nicts-quarterly --court crown_court
$ bolster justice nicts-quarterly --annual --format json

PBNI Caseload

Probation Board for Northern Ireland caseload statistics — annual (31 March snapshot, five years of history) and quarterly bulletins covering the people under probation supervision, their orders, demographics, risk assessments, and registered victims.

from bolster.data_sources.justice import pbni_caseload

df = pbni_caseload.get_annual_caseload()

# Any published breakdown
orders = pbni_caseload.get_latest_data("order_type", frequency="quarterly")
pbni_caseload.list_dimensions("quarterly")
$ bolster justice pbni-caseload --summary
$ bolster justice pbni-caseload --frequency quarterly --dimension order_type


ONS — Office for National Statistics

ONS UK-wide statistical releases relevant to Northern Ireland.

CPI / CPIH / RPI Inflation

Annual rates and price indices for CPI, CPIH, and RPI from ONS.

from bolster.data_sources import ons_cpi

df = ons_cpi.get_latest_cpi()
$ bolster ons-cpi

Bank of England

Bank of England official Bank Rate (base rate) from 1694 to present.

from bolster.data_sources import boe_base_rate

df = boe_base_rate.get_latest_base_rate()
$ bolster boe-base-rate

Companies House

UK Companies House public data — basic company details and registered companies connected to a given address.

from bolster.data_sources.companies_house import query_basic_company_data

details = query_basic_company_data("12345678")
$ bolster companies-house --query "Farset Labs"

Gender Pay Gap

UK Gender Pay Gap reporting data from 2017 to present (all employers with 250+ employees).

from bolster.data_sources import gender_pay_gap

df = gender_pay_gap.get_gender_pay_gap_data()
$ bolster gender-pay-gap

Met Office

UK precipitation maps from the Met Office DataPoint API.

Requires the environment variable MET_OFFICE_API_KEY.

from bolster.data_sources.metoffice import get_uk_precipitation

img = get_uk_precipitation(order_name="my-order")
$ bolster get-precipitation --order-name "my-order"

Wikipedia

Structured data from NI-related Wikipedia tables (e.g. the NI Executive composition table).

from bolster.data_sources.wikipedia import get_ni_executive_basic_table

df = get_ni_executive_basic_table()
$ bolster ni-executive

Discovering New Publications

NISRA publishes new datasets regularly. Use the RSS feed integration to discover publications before they are implemented as modules:

$ bolster nisra feed --limit 20

Or programmatically:

from bolster.utils.rss import get_nisra_statistics_feed

feed = get_nisra_statistics_feed(limit=20)
for entry in feed.entries:
    print(entry.published.date(), entry.title)

See Also