{
  "schemaVersion": "handlefirst.procedure-contract/v1",
  "procedureId": "rejected-home-claim",
  "title": "Complaint about a rejected home insurance claim",
  "jurisdiction": {
    "id": "nl",
    "label": "Netherlands",
    "isPlaceholder": true
  },
  "canonical": {
    "human": "/complaints/rejected-home-claim",
    "json": "/complaints/rejected-home-claim.json",
    "markdown": "/complaints/rejected-home-claim.md"
  },
  "discovery": {
    "status": "simulated",
    "notice": "Demonstration simulation: this assistant has been given access to Kustwal's published procedure contract. General-purpose AI assistants do not universally discover WebMCP endpoints, hidden files or new websites automatically."
  },
  "governance": {
    "issuer": {
      "name": "Kustwal Verzekeringen",
      "environmentLabel": "Kustwal Verzekeringen · Demonstration Environment"
    },
    "status": "approved-demonstration",
    "statusLabel": "Approved demonstration contract",
    "version": "1.2",
    "attribution": "Official complaint procedure, version 1.2. Published and maintained with HandleFirst.",
    "effectiveDate": "2026-06-01",
    "approvalRoles": [
      "Customer Relations",
      "Compliance"
    ],
    "publicProvenance": [
      {
        "id": "applicable-obligations",
        "label": "Applicable obligations",
        "summary": "The formal obligations that apply to complaint handling. They fix what a complaint file has to identify: who is complaining, which decision is questioned, and what is asked of the insurer."
      },
      {
        "id": "approved-policy",
        "label": "Approved complaints policy",
        "summary": "The complaints policy approved by Customer Relations and Compliance. It sets the channel a complaint arrives through, the notice that goes above a prepared complaint, and the rule that Kustwal accepts a complaint even when a document is missing."
      },
      {
        "id": "handling-practice",
        "label": "Handling practice",
        "summary": "What complaints handlers need in order to start work without a follow up question. Reviewed with each version of this contract. Individual complaints are never published and never leave the case system."
      }
    ]
  },
  "scope": {
    "appliesTo": "A complaint about a rejected home insurance claim, or about the way that claim was handled.",
    "doesNotDecide": [
      "whether the policy covers the damage",
      "whether the claim decision was right",
      "who is responsible for the damage",
      "what compensation, if any, is due",
      "what your legal rights are"
    ],
    "boundaryNotice": "This procedure helps you submit a complaint. It does not assess your policy coverage, decide your claim or provide legal advice."
  },
  "submissionChannel": {
    "id": "existing-complaints-channel",
    "label": "The Kustwal complaints channel",
    "description": "Complaints reach the complaints team at the complaints mailbox. This channel is unchanged. A complaint prepared with this procedure arrives the same way as any other complaint.",
    "formPath": "/complaints",
    "email": "complaints@kustwal.example",
    "acknowledgement": "The complaints team confirms receipt of every complaint that reaches this channel."
  },
  "requiredFields": [
    {
      "id": "policy-reference",
      "label": "Policy reference",
      "purpose": "It identifies the policy the complaint is about, so the complaint reaches the right file.",
      "question": "What is your policy reference?",
      "kind": "text",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "pattern": "^[A-Z]{2}-[0-9]{4}$",
        "message": "A policy reference is two letters, a hyphen and four digits."
      }
    },
    {
      "id": "claim-reference",
      "label": "Claim reference",
      "purpose": "It links the complaint to the claim that was decided.",
      "question": "What is the reference of the claim that was rejected?",
      "kind": "text",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "pattern": "^[A-Z]{2}-[0-9]{4}-[0-9]{5}$",
        "message": "A claim reference is two letters, the year and five digits."
      }
    },
    {
      "id": "claim-type",
      "label": "Claim type",
      "purpose": "It tells the complaints team which kind of claim was decided.",
      "question": "What kind of claim was it?",
      "kind": "text",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "message": "Please give the claim type as it appears on your claim."
      }
    },
    {
      "id": "current-situation",
      "label": "Current situation",
      "purpose": "It states where the claim stands now, so the complaint starts from the right point.",
      "question": "What is the current situation with your claim?",
      "kind": "text",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "message": "Please say in one line where the claim stands now."
      }
    },
    {
      "id": "requested-route",
      "label": "Requested route",
      "purpose": "It records that you are making a formal complaint rather than a new claim.",
      "question": "Do you want to make a formal complaint about this decision?",
      "kind": "text",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "message": "Please say whether you want to make a formal complaint."
      }
    },
    {
      "id": "contact-email",
      "label": "Contact email",
      "purpose": "It is the address the complaints team replies to.",
      "question": "What email address should Kustwal reply to?",
      "kind": "email",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": true,
        "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
        "message": "Please give an email address the complaints team can reply to."
      }
    },
    {
      "id": "decision-date",
      "label": "Date of the rejection decision",
      "purpose": "It fixes which decision the complaint is about.",
      "question": "What date is on the rejection decision?",
      "kind": "date",
      "askOnlyIfMissing": true,
      "validation": {
        "blocksSubmission": false,
        "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
        "message": "Please give the date as year, month and day. If you are not sure of the exact date, an approximate date is enough."
      }
    },
    {
      "id": "dissatisfaction",
      "label": "What you are dissatisfied with",
      "purpose": "It is the substance of the complaint: the part the complaints team has to answer.",
      "question": "What part of the decision or claim handling are you dissatisfied with?",
      "kind": "long-text",
      "askOnlyIfMissing": false,
      "validation": {
        "blocksSubmission": true,
        "minLength": 20,
        "maxLength": 2000,
        "message": "Please describe in your own words what you are dissatisfied with."
      }
    },
    {
      "id": "requested-resolution",
      "label": "What you would like to happen",
      "purpose": "It tells the complaints team what you are asking for.",
      "question": "What would you like Kustwal to do next?",
      "kind": "choice",
      "askOnlyIfMissing": false,
      "options": [
        {
          "id": "reconsideration",
          "label": "Reconsider the claim decision"
        },
        {
          "id": "explanation",
          "label": "Explain the decision"
        },
        {
          "id": "correction",
          "label": "Correct something in the claim file"
        },
        {
          "id": "complaints-handler-contact",
          "label": "Contact from a complaints handler"
        }
      ],
      "validation": {
        "blocksSubmission": false,
        "message": "Please choose the option that fits best."
      }
    }
  ],
  "evidenceRequirements": [
    {
      "id": "decision-letter",
      "label": "The rejection letter",
      "purpose": "It shows exactly what was decided and on what date.",
      "question": "Please upload the decision letter, if you have it.",
      "necessity": "optional-but-useful",
      "acceptedFormats": [
        "PDF",
        "JPG",
        "PNG"
      ],
      "maxItems": 3
    },
    {
      "id": "earlier-correspondence",
      "label": "Earlier correspondence",
      "purpose": "It shows what has already been discussed, so nothing is asked of you twice.",
      "question": "Please add earlier letters or emails about this claim, if you have any.",
      "necessity": "optional-but-useful",
      "acceptedFormats": [
        "PDF",
        "JPG",
        "PNG"
      ],
      "maxItems": 5
    },
    {
      "id": "loss-evidence",
      "label": "Photographs, invoices or other loss evidence",
      "purpose": "It shows what was already sent with the claim, so the complaints team looks at the same material you did.",
      "question": "Please add photographs or invoices you already sent, if that is useful.",
      "necessity": "optional-but-useful",
      "acceptedFormats": [
        "PDF",
        "JPG",
        "PNG"
      ],
      "maxItems": 10
    }
  ],
  "maySubmitAnyway": {
    "citizenMaySubmitWithoutEveryItem": true,
    "neverBlocksASubmission": true,
    "statement": "You can make a complaint even when you cannot supply every document. Your contact email and a description of what you are dissatisfied with are enough to start.",
    "followUpNotice": "If something is missing, the complaints team may come back to you with a question. A missing item never stops you from making a complaint."
  },
  "factSources": [
    {
      "id": "policy-records",
      "label": "From your policy records"
    },
    {
      "id": "citizen",
      "label": "Provided by you"
    }
  ],
  "drafting": {
    "allowedSections": [
      {
        "id": "policy-reference",
        "order": 1,
        "heading": "Policy reference",
        "sourceFieldIds": [
          "policy-reference"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "claim-reference",
        "order": 2,
        "heading": "Claim reference",
        "sourceFieldIds": [
          "claim-reference"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "decision-date",
        "order": 3,
        "heading": "Date of the decision",
        "sourceFieldIds": [
          "decision-date"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "factual-summary",
        "order": 4,
        "heading": "What the claim was about",
        "sourceFieldIds": [
          "claim-type",
          "current-situation"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "dissatisfaction",
        "order": 5,
        "heading": "What I am dissatisfied with",
        "sourceFieldIds": [
          "dissatisfaction"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "evidence-list",
        "order": 6,
        "heading": "Attached evidence",
        "sourceFieldIds": [],
        "sourceEvidenceIds": [
          "decision-letter",
          "earlier-correspondence",
          "loss-evidence"
        ]
      },
      {
        "id": "requested-resolution",
        "order": 7,
        "heading": "What I would like to happen",
        "sourceFieldIds": [
          "requested-resolution"
        ],
        "sourceEvidenceIds": []
      },
      {
        "id": "contact-details",
        "order": 8,
        "heading": "Contact details",
        "sourceFieldIds": [
          "contact-email"
        ],
        "sourceEvidenceIds": []
      }
    ],
    "omittedContent": [
      {
        "id": "coverage-conclusion",
        "label": "Conclusions about policy coverage",
        "reason": "What the policy covers is decided in the claim, not in the complaint. The complaint says what happened and what you are asking for.",
        "indicativePhrases": [
          "is covered",
          "is not covered",
          "must be covered",
          "should be covered",
          "policy covers",
          "coverage applies",
          "falls under the policy"
        ]
      },
      {
        "id": "liability-assessment",
        "label": "Assessments of liability",
        "reason": "A complaint does not settle who is responsible for the damage.",
        "indicativePhrases": [
          "is liable",
          "are liable",
          "liability for",
          "at fault",
          "your fault",
          "responsible for the damage"
        ]
      },
      {
        "id": "fraud-assessment",
        "label": "Fraud assessments",
        "reason": "Nothing in a prepared complaint raises or answers a fraud question.",
        "indicativePhrases": [
          "fraud",
          "fraudulent",
          "dishonest",
          "misrepresentation"
        ]
      },
      {
        "id": "unlawfulness-or-bad-faith",
        "label": "Claims that the insurer acted unlawfully or in bad faith",
        "reason": "A complaint describes what happened and what you want looked at again. It does not accuse.",
        "indicativePhrases": [
          "unlawful",
          "illegal",
          "bad faith",
          "acted in breach",
          "breach of contract",
          "in violation of",
          "negligent"
        ]
      },
      {
        "id": "invented-facts-or-law",
        "label": "Invented facts, dates, rights, regulations or case law",
        "reason": "Everything in the complaint comes from what you supplied. Nothing is filled in for you.",
        "indicativePhrases": [
          "pursuant to article",
          "under article",
          "case law",
          "the court ruled",
          "jurisprudence",
          "ecli:",
          "regulation (eu)",
          "directive 20"
        ]
      },
      {
        "id": "escalation-threat",
        "label": "Threats of escalation",
        "reason": "Asking for the decision to be looked at again is enough.",
        "indicativePhrases": [
          "legal action",
          "take you to court",
          "court proceedings",
          "i will sue",
          "my lawyer",
          "ombudsman",
          "report you to"
        ]
      },
      {
        "id": "compensation-calculation",
        "label": "Compensation calculations",
        "reason": "A complaint does not price the damage.",
        "indicativePhrases": [
          "compensation of",
          "damages of",
          "total amount due",
          "interest at",
          "i demand payment",
          "pay me the sum"
        ]
      },
      {
        "id": "legal-boilerplate",
        "label": "Generic legal boilerplate",
        "reason": "Standard clauses add length and nothing else.",
        "indicativePhrases": [
          "without prejudice",
          "reserve all rights",
          "all rights reserved",
          "formally demand",
          "applicable law",
          "notwithstanding",
          "whereas the"
        ]
      }
    ],
    "reviewNotice": "Illustrative procedural guidance, not legal advice. Please review this complaint before sending."
  },
  "changeHistory": [
    {
      "version": "1.0",
      "date": "2025-11-03",
      "note": "First published version of the complaints procedure for rejected home insurance claims."
    },
    {
      "version": "1.1",
      "date": "2026-02-16",
      "note": "Added the plain language purpose to every requirement. Recorded that evidence is useful but never required."
    },
    {
      "version": "1.2",
      "date": "2026-06-01",
      "note": "Added the machine readable and agent readable representations. Recorded the rule that a complaint is accepted when a document is missing."
    }
  ]
}
