Transparent by design

How Civic calculates its results.

Civic returns documented factual aggregations, not risk, safety, desirability or recommendation scores. Method changes are versioned, tested and recorded.

Postcode and location

Postcodes are uppercased, whitespace-normalised and validated before an exact ONS Postcode Directory lookup. Returned coordinates are the WGS84 postcode centroid. LSOA, MSOA, ward, local authority, Westminster parliamentary constituency, built-up area and the 2021 rural/urban classification come from the same loaded ONSPD row. Every geography reports its ONSPD source version. No geocoding inference or LLM is used.

Fire incidents

Incidents are selected when their published point falls within the bounded radius of the postcode centroid and requested rolling period. Fire and dwelling-fire totals use LFB incident-group and property-category fields; the annual series groups by calendar year.

Fire appliance response

First-appliance response uses joined mobilisation rows where pump order is one and the publisher supplies an attendance duration. Median and 90th percentile are PostgreSQL continuous percentiles.

Five-year results retain row-level lineage and cite each incident and mobilisation release represented in the calculation.

Recorded crime

Postcodes resolve to LSOA. The latest total covers the 12 source months ending at the latest complete month; the comparison is the preceding 12 months. Year-over-year change is (latest − previous) / previous × 100 and is null when the previous total is zero. The per-1,000 rate is latest total / Census 2021 population × 1,000. Its TS001 denominator and 2021 vintage are returned explicitly. A missing denominator produces a null rate without a raw-count fallback. Classification regimes remain explicit.

Census 2021

Civic imports ONS TS001 population, TS007B broad age bands, TS017 household count, TS021 ethnicity, TS030 religion, TS037 general health, TS038 disability, TS044 accommodation type, TS045 car availability, TS054 tenure, TS066 economic activity and TS067 highest qualification from Nomis for every 2021 London LSOA. Counts retain the Census Day 21 March 2021 vintage. ONS statistical disclosure control means totals from separate tables can differ slightly; Civic returns each published table value and does not reconcile them into a score or estimate.

Road safety

STATS19 collisions are selected by published point, radius and collision date. Severity follows the Department for Transport codes.

Environmental context

Long-term flood context intersects the ONS postcode centroid with the Environment Agency RoFRS polygons after exact clipping to a dissolved official GLA borough boundary. Civic preserves the published High, Medium, Low or Very low label and does not derive a risk score. not_mapped is not “no risk”.

Current Environment Agency warnings are paged from the live API and included only where the official warning-area polygon contains the centroid. TfL PTAL returns the published 2023 level and Access Index for the containing 100 metre WebCAT cell. A centroid is not an address or entrance, and TfL says PTAL is strategic-planning information rather than a journey planner.

Defra Round 4 road, rail and airport Lden/Lnight rasters are returned as five-decibel model bands. They cover major sources and agglomerations, so not_mapped does not mean quiet. An unloaded model source is reported separately as dataset_unavailable. LAEI 2022 provides annual-mean NO₂, PM₂.₅ and PM₁₀ values for the containing 20 metre model cell. UK and WHO reference values are cited facts; Civic adds no pass/fail label or score.

BGS indicative radon uses the highest published potential class in the 1 km grid square containing the postcode centroid. It is not a property-specific result, survey or definitive risk assessment, and is never converted into another Civic label or score.

EPC floor area and observed price per area

EPC lookup uses a canonical postcode plus deterministic address normalisation and reports ambiguous candidates. The latest published certificate is returned by default. Opted-out records are absent, and address data retains the publisher’s separate EPB copyright notice.

Price per square metre and foot includes a sale only when its complete normalised Price Paid address exactly matches the EPC address. It uses the latest published positive floor area; no missing area is inferred. Because EPC and sale dates can differ, these are observed ratios rather than valuations or forecasts.

Other property and area context

IMD 2025 ranks and deciles are returned unchanged for the containing LSOA. Council-tax results are authority band-charge tables and never an inferred property band. Ofcom fixed broadband is a postcode aggregate, while mobile remains a separately dated local-authority aggregate; neither is address availability or measured speed. Tribunal results are publisher links matched by address text and do not establish title, occupier or liability.

ONS FYE 2023 income returns four independently modelled mean household measures and their 95% confidence intervals for the containing 2021 MSOA. It is not a household, property-value or affordability estimate. OS Open UPRN returns only the coordinate published for a numeric UPRN; it does not supply or infer an address or property attributes.

Property sales and UK HPI

The borough UK HPI series retains the publisher’s property-type, buyer-status, funding-status and new/existing-property dimensions for each month alongside the headline series. These remain separately labelled official statistics and are not combined into a valuation, rank or trend recommendation.

Private rents

ONS Price Index of Private Rents figures are returned only at their published local-authority geography. The latest response contains the all, one, two, three and four-or-more bedroom averages, indices and annual changes, plus at most 24 loaded months of the all-bedroom series. PIPR covers achieved rents across new and existing tenancies; it is not an asking-rent series.

The PRMS distribution is the final publication for October 2022 to September 2023 and remains explicitly dated historical context. Civic Data does not interpolate, estimate a property rent, calculate a yield or derive ward, district or postcode figures. LHA is omitted because a current authoritative open BRMA boundary was not verified; borough boundaries are not substituted.

Food hygiene and nearby points

find_nearby resolves the postcode to its ONS centroid and applies a bounded 100–5000 metre straight-line search over the selected point category. Food hygiene records come from the FSA’s nightly local authority extracts for all 33 London authorities. Records without usable published coordinates are excluded from spatial results and counted as rejected during import; Civic never invents a location.

Rating values, dates, pending status and published component scores are retained as official facts. Results sort only by distance and external ID. A rating describes standards at the inspection or visit date, not food quality, and is never converted into a Civic score.

Schools, performance and Ofsted outcomes

Open London establishments are selected from the DfE daily GIAS bulk download. DfE British National Grid coordinates are transformed to WGS84. Ofsted’s monthly latest-inspections data and the latest loaded DfE institution-level performance year are joined only by URN. Cohort, Progress 8 and its confidence interval, Attainment 8, English and maths, EBacc and destination measures remain separate from inspection outcomes; suppressed values stay null. Civic never derives an overall school score.

Ofsted inspection dates and frameworks

The inspection and publication dates returned with each outcome are the fields Ofsted publishes. A school with no published judgement remains explicitly not yet inspected. Ratings from incompatible frameworks are never silently merged.

CQC-regulated care locations

CQC’s location, service/population-group and domain ratings are grouped without aggregation. Its bulk ratings file supplies report publication dates but not inspection dates, so Civic returns inspection_date: null rather than relabelling a different date. Provider distances use the ONS centroid of the published postcode.

NHS ODS GP practices

Active GP-practice codes, names, status, address and contact facts come from the nightly ODS predefined report. Location is the ONS centroid of the published organisation postcode; no provider rating is inferred.

NHS ODS pharmacies

Active ODS pharmacy/dispensary records are restricted to the official RO182 PHARMACY role, excluding appliance contractors. Location uses the organisation postcode centroid and no quality figure is calculated.

Transport, dentists and greenspace

Active NHS ODS dental practices use the organisation-postcode centroid. NaPTAN RLY and MET stop types map strictly to rail and metro stations; active BCT rows supply bus stops. TfL BikePoint keeps dock capacity but excludes live availability. OS Open Greenspace uses each site polygon’s centroid, so distance is not distance to the boundary or an access point.

Planning

Planning Data entities must intersect the ONSPD postcode centroid. Empty results do not prove an absence of constraints. Successful responses are cached for 24 hours; an upstream failure degrades only the planning section.

Planning Data is a live_query source. upstream_checked_at records the latest official API attempt, while last_successful_upstream_response_at advances only after a successful response. Cache hits advance neither.

Planning applications

Planning London Datahub applications are imported separately from planning constraints. Civic resolves the input postcode, measures from its ONS centroid to each published application centroid and filters on the application valid_date. Radius is limited to 100–5,000 metres, date ranges are limited to ten years and results are capped at 500 with the full matched count disclosed.

The GLA’s status, decision, decision date, application type and description are preserved without prediction or scoring. Only records with a usable centroid and valid date can appear in the spatial tool. Data can be revised and the GLA cannot warrant its quality or accuracy. Applications are submitted proposals; constraints are designations. Neither result is planning or legal advice.

Ward and district profiles

Current wards use best-fit LSOA assignment for Census, recorded crime and road collisions. Fire incidents and Price Paid sales map through their published postcode to the current ONSPD ward. The property block covers standard transactions in the latest loaded 12-month window and reports count, median and quartiles only; it is not a valuation.

Postcode districts are derived from the outward part of live ONSPD postcode strings, not polygons. Districts crossing Greater London are retained with a partial coverage marker and figures for the London part only. Fire and sales map directly from postcodes; LSOA data uses best-fit assignment. Neither wards nor districts are ranked, scored or recommended.

Composed profiles

Postcode profiles reuse the point-based atomic tools. Ward, local-authority, MSOA and postcode-district profiles are stored aggregates keyed by their canonical identifier. Their Census, Crime and road joins use each LSOA’s modal live-ONSPD-postcode membership. Fire uses the published borough for local authorities and maps incident postcodes into current wards/MSOAs, avoiding mixed historic ward codes. Redacted or unresolved incident postcodes cannot be assigned there. Point-only Planning constraints are not sampled at an arbitrary representative point.

Comparisons accept two to five identifiers only when every identifier has the same type. Rates use the Census denominator and are null when it is unavailable; raw counts are not substituted.

Explicit history

get_history returns monthly Fire, Crime or road-collision counts for a postcode, ward, local authority, MSOA or postcode district. Coverage bounds come from the actual loaded source rows. Requests outside those bounds return the bounds and no clipped series. Crime points retain their published classification system and incompatible systems are never summed together.