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 apandas.DataFrameready 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
Stop and Search
PSNI stop & search records from OpenDataNI; 199,661 records covering 2017/18–2024/25 with PACE reason flags, legislation, and demographic breakdowns.
from bolster.data_sources.psni import stop_and_search
df = stop_and_search.get_latest_stop_and_search()
$ bolster psni stop-and-search
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
Translink
Live and scheduled bus and rail departures, and vehicle positions, for the Translink NI public transport network.
from bolster.data_sources import translink
# Next departures from a stop (by name)
df = translink.get_departures_by_name("Europa Buscentre")
# Live vehicle positions
vehicles = translink.get_live_vehicles()
$ bolster translink departures "Europa Buscentre"
$ bolster translink vehicles
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
Data Source Development Guide — how to add a new data source module
API Reference — full API reference for all modules