insurance.verticals
One row per insurance vertical (life, trauma, health, business-motor, etc.). All other tables filter by vertical_id.
Rows: 22
Definition
CREATE TABLE insurance.verticals ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), slug text UNIQUE NOT NULL, -- 'life', 'trauma', 'business-motor' name text NOT NULL, -- 'Life Insurance' primary_site text, -- canonical Pangaea site for the vertical facts_jsonschema jsonb, -- per-vertical schema for wording_facts.facts created_at timestamptz DEFAULT now() );
Notes
- • Every vertical has a generated set of filtered views: insurance.{base}_insurers, insurance.{base}_products, insurance.{base}_wordings, insurance.{base}_policy_clauses, insurance.{base}_wording_facts, insurance.{base}_policy_diffs.
- • base = slug with hyphens replaced by underscores.
Example query
-- list all verticals with at least one wording select v.slug, v.name, count(w.id) as wording_count from insurance.verticals v left join insurance.products p on p.vertical_id = v.id left join insurance.wordings w on w.product_id = p.id group by v.slug, v.name order by wording_count desc;