Resources
Templates & tools

Survey data dictionary: the eight structured export tables

The stable-key, referentially-joined tables every accepted survey produces — the schema behind a Power BI-ready feed.

6 min readUpdated June 2026

A stock condition survey is only as useful as the data it leaves behind. ClearView AMS emits every accepted survey as eight flat tables with stable string keys, so the same record reconciles across the PDF report and the structured export — and loads cleanly into a warehouse or BI tool with no manual interpretation.

One source, two outputs

The PDF report and this export are generated from the same accepted record. Every issue ID in the report matches its export row — there is no second, divergent copy of the truth.

The eight tables

TableGrain / primary keyRepresentative fieldsJoins on
property_surveyOne row per survey · surveyIduprn, propertyReference, surveyorId, schemaVersion, questionSetVersion, status, startedAt, submittedAt, intelligence summarysurveyId
access_attemptOne row per access attemptsurveyId, outcome (gained / no_access), reasonCode, attemptedAt, surveyorsurveyId
component_observationOne row per component instance · componentRecordIdsurveyId, componentType, instanceLabel, conditionRating, remainingLifeYears, renewalYear, unableToAssessReasonsurveyId, componentRecordId
issue_recordOne row per issue · issueIdsurveyId, uprn, propertyReference, issueType, hazardCategory (Cat 1/2), location, action, priority, reasonCode, componentRecordId, questionIdsurveyId, issueId, componentRecordId
photo_evidenceOne row per photo · photoIdparentEntityType, parentEntityId, capturedAt, uploadedAt, user, device, captionphotoId, parentEntityId
qa_eventOne row per QA decisionsurveyId, decision (accept / reject), comment, reviewer, decidedAtsurveyId
sync_eventOne row per sync eventsurveyId, type (response / photo / partial / failed / conflict), occurredAtsurveyId
lookup_versionOne row per controlled vocabulary versionlookupVersionId, schemaVersion, questionSetVersion, lookupslookupVersionId

Each table is keyed by a stable string ID and joins on the keys below.

Why stable keys matter

Stable string identifiers mean a component, issue or photo can be traced from capture, through QA, into the report and the export, and onward into a warehouse — without re-keying or fuzzy matching. It is the difference between a data dump and a feed you can build dashboards on.

  • issue_record.componentRecordId links each defect to the exact component it was found on.
  • issue_record.questionId links a defect back to the question that raised it (e.g. a missing CO alarm).
  • photo_evidence.parentEntityId binds every photo to its question, component, issue or access event — never a loose gallery.
  • lookup_version pins the controlled vocabularies that were valid at survey time, so historic records stay interpretable.

Power BI / warehouse ready

Exported as an XLSX workbook (a sheet per table) and per-table CSV. Referential joins are preserved, so it lands in a data warehouse without manual interpretation.

Sources & further reading

  1. 1. Stock condition data and asset management good practice Chartered Institute of Housing
  2. 2. Regulatory reporting and data quality expectations Regulator of Social Housing (GOV.UK)

Turn the guidance into evidence

See how ClearView AMS captures the data behind every obligation — offline, evidence-led, and reconciled end to end.