OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Real estate property listing validation for UK residential and commercial property pipelines. Enforces UK postcode format, RICS property type taxonomy, Energy Performance Certificate (EPC) rating validation (A-G scale, mandatory for all residential lettings under the Energy Efficiency (Private Rented Property) (England and Wales) Regulations 2015 and for sales since 2008), council tax band validation (England/Wales A-H), legal tenure classification (freehold/ leasehold/shared ownership), and listing lifecycle status. Prevents uncompliant property records from entering Rightmove/Zoopla feed APIs, RICS valuation databases, and HM Land Registry submission pipelines.
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| property_id_required | property_id | error | property_id is required |
| address_required | address | error | address is required |
| postcode_required | postcode | error | postcode is required |
| postcode_format | postcode | error | postcode must be a valid UK postcode |
| property_type_required | property_type | error | property_type is required |
| property_type_values | property_type | error | property_type must be a standard RICS/portal type: detached, semi_detached, terraced, end_of_terrace, flat, maisonette, studio, bungalow, detached_bungalow, semi_detached_bungalow, cottage, townhouse, commercial, land, farm, houseboat, park_home |
| bedrooms_range | bedrooms | error | bedrooms must be between 0 and 100 |
| asking_price_min | asking_price | error | asking_price must be > 0 — a zero asking price is a listing error or system-integration fault and would be queried by portal feed QA (Rightmove / Zoopla) before publication |
| listing_date_format | listing_date | error | listing_date must be a valid date (YYYY-MM-DD) |
| listing_status_values | listing_status | warning | listing_status must be one of: for_sale, under_offer, sold_stc, exchanged, completed, withdrawn, to_let, let_agreed, let |
| tenure_values | tenure | warning | tenure must be one of: freehold, leasehold, shared_ownership, commonhold, feudal, unknown (leasehold requires remaining term disclosure under NTSELAT material information guidance) |
| epc_rating_required | epc_rating | warning | epc_rating should be provided |
| epc_rating_values | epc_rating | warning | epc_rating must be A, B, C, D, E, F, G, exempt, or not_required — F/G rated properties cannot be let under MEES Regulations 2018 |
| council_tax_band_values | council_tax_band | warning | council_tax_band must be A through H (England/Wales) or A through I (Scotland), or unknown |
| agent_id_required | agent_id | error | agent_id is required |
Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →