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. Vanguard's own customer profile data contract — used to validate the signup details every OpenDQV Cloud trial customer provides on first arrival at the trial dashboard. This is the dogfood contract. Vanguard validates its own customer data with the same engine, the same YAML schema, and the same enforcement semantics it sells to enterprise customers. Trial customers can read this YAML directly from the Contracts surface to see exactly which rules processed their data, and they can copy it as a starter template for their own customer-facing forms. Legal basis (UK/EU GDPR): Article 6(1)(f) — legitimate interest of the data controller (BGMS Consultants Limited, trading as OpenDQV Cloud) in processing business contact information of trial signups for product onboarding, customer success, and lawful B2B marketing communication. Customers may object at any time via the unsubscribe footer in any email or by writing to hello@opendqv.com. Data controller: BGMS Consultants Limited (UK, ICO-registered). Data processor: BGMS Consultants Limited (the engine runs on the customer's own dedicated cell in their assigned region, with no cross-region replication). Retention: until trial expiry + 7 days, or until the customer requests erasure under Article 17, whichever is sooner. Enterprise PAYG customers' profile data is retained for the duration of their active subscription plus 7 years per UK accounting record requirements (Companies Act 2006 s.388).
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| first_name_required | first_name | error | First name is required |
| first_name_length | first_name | error | First name cannot exceed 100 characters |
| last_name_required | last_name | error | Last name is required |
| last_name_length | last_name | error | Last name cannot exceed 100 characters |
| company_name_required | company_name | error | Company name is required |
| company_name_min_length | company_name | error | Company name must be at least 2 characters |
| company_name_max_length | company_name | error | Company name cannot exceed 200 characters |
| company_website_required | company_website | error | Company website is required |
| company_website_format | company_website | error | Company website must be a valid URL starting with http:// or https:// |
| role_title_required | role_title | error | Role title is required |
| role_title_max_length | role_title | error | Role title cannot exceed 100 characters |
| country_required | country | error | Country is required |
| country_format | country | error | Country must be a valid ISO 3166-1 alpha-2 code (e.g. GB, US, DE) |
| industry_required | industry | error | Industry is required |
| team_size_required | team_size | error | Team size is required |
| team_size_enum | team_size | error | Team size must be one of 1-10, 11-50, 51-200, 201-1000, 1000+ |
| data_quality_pain_required | data_quality_pain | error | Please tell us what brings you to OpenDQV Cloud — we read every answer. |
| data_quality_pain_min_length | data_quality_pain | error | A sentence or two is plenty. Our team prepares for your call based on what you share. |
| data_quality_pain_format | data_quality_pain | error | A few real words please — placeholder text doesn't help us help you. |
| data_quality_pain_length | data_quality_pain | warning | Please keep your answer under 1000 characters |
| phone_format | phone | warning | Phone number should be 7-20 digits with optional + prefix |
| linkedin_url_format | linkedin_url | warning | LinkedIn URL should look like https://linkedin.com/in/username |
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 →