Starter contract

real_estate_property

15 rules · plain YAML · starts in observation mode

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.

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
property_id_requiredproperty_iderrorproperty_id is required
address_requiredaddresserroraddress is required
postcode_requiredpostcodeerrorpostcode is required
postcode_formatpostcodeerrorpostcode must be a valid UK postcode
property_type_requiredproperty_typeerrorproperty_type is required
property_type_valuesproperty_typeerrorproperty_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_rangebedroomserrorbedrooms must be between 0 and 100
asking_price_minasking_priceerrorasking_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_formatlisting_dateerrorlisting_date must be a valid date (YYYY-MM-DD)
listing_status_valueslisting_statuswarninglisting_status must be one of: for_sale, under_offer, sold_stc, exchanged, completed, withdrawn, to_let, let_agreed, let
tenure_valuestenurewarningtenure must be one of: freehold, leasehold, shared_ownership, commonhold, feudal, unknown (leasehold requires remaining term disclosure under NTSELAT material information guidance)
epc_rating_requiredepc_ratingwarningepc_rating should be provided
epc_rating_valuesepc_ratingwarningepc_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_valuescouncil_tax_bandwarningcouncil_tax_band must be A through H (England/Wales) or A through I (Scotland), or unknown
agent_id_requiredagent_iderroragent_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 →