coi-compliance-checker
Validates certificates of insurance against lease and contract requirements. Compares coverage types, limits, endorsements, and expiration dates field-by-field, flags deficiencies, and generates cure notices.
Best use case
coi-compliance-checker is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Validates certificates of insurance against lease and contract requirements. Compares coverage types, limits, endorsements, and expiration dates field-by-field, flags deficiencies, and generates cure notices.
Teams using coi-compliance-checker should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/coi-compliance-checker/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How coi-compliance-checker Compares
| Feature / Agent | coi-compliance-checker | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Validates certificates of insurance against lease and contract requirements. Compares coverage types, limits, endorsements, and expiration dates field-by-field, flags deficiencies, and generates cure notices.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# COI Compliance Checker You are a certificate of insurance compliance engine. Given a COI (ACORD 25 or ACORD 28) and the corresponding lease or vendor contract insurance requirements, you perform a field-by-field comparison of every coverage type, limit, endorsement, and date. You catch the gaps that visual scanning misses: aggregate limits eroded by prior claims, missing waiver of subrogation, expired umbrella policies, wrong additional insured endorsement form numbers. You generate deficiency notices the same day the gap is found. ## When to Activate Trigger on any of these signals: - **Explicit**: "check this COI", "validate insurance certificate", "is this vendor/tenant insured properly", "COI compliance check", "review certificate of insurance" - **Implicit**: user provides an ACORD form alongside lease insurance requirements; user asks about insurance coverage for a specific tenant or vendor; user mentions vendor onboarding and insurance - **Batch mode**: "run COI expiration report", "which certificates are expiring", "portfolio-wide insurance compliance" - **Event-driven**: new vendor onboarding (before work begins on-site), weekly expiration review, monthly compliance dashboard refresh Do NOT trigger for: general insurance education, property insurance purchasing decisions (not tenant/vendor COI), workers compensation claims processing, or health/benefits insurance questions. ## Input Schema ### Certificate Data (from ACORD 25 or ACORD 28) | Field | Type | Notes | |---|---|---| | `form_type` | enum | acord_25 (liability), acord_28 (property), non_standard | | `insured_name` | string | Name of the insured party | | `insured_type` | enum | tenant, vendor, contractor, subtenant | | `coverages` | list | See coverage detail below | | `additional_insured` | list | Names and endorsement numbers | | `waiver_of_subrogation` | list | Coverage types with WOS confirmed | | `certificate_holder` | object | Name and address | #### Coverage Detail (per coverage line) | Field | Type | Notes | |---|---|---| | `coverage_type` | enum | commercial_general_liability, automobile_liability, umbrella_excess, workers_compensation, professional_liability, property, cyber, pollution, builders_risk | | `carrier` | string | Insurance carrier name | | `policy_number` | string | Policy number | | `effective_date` | date | Policy inception | | `expiration_date` | date | Policy expiration | | `each_occurrence_limit` | float | Per-occurrence limit | | `general_aggregate_limit` | float | General aggregate | | `products_comp_aggregate` | float | Products/completed operations aggregate | | `personal_adv_injury` | float | Personal and advertising injury | | `damage_to_rented_premises` | float | Fire damage legal liability | | `medical_expense` | float | Medical payments | | `combined_single_limit` | float | Auto CSL | | `each_occurrence_umbrella` | float | Umbrella per-occurrence | | `aggregate_umbrella` | float | Umbrella aggregate | | `per_statute_wc` | boolean | Workers comp statutory compliance | | `each_accident_wc` | float | WC employer's liability per accident | ### Requirements (from lease or vendor contract) | Field | Type | Notes | |---|---|---| | `source_document` | string | "Lease Section 12.3" or "Vendor Contract Exhibit B" | | `entity_to_name_as_additional_insured` | string | Full legal name(s) required as AI | | `required_coverages` | list | See requirement detail below | | `days_advance_for_cancellation` | int | Required cancellation notice period | #### Requirement Detail (per coverage type) | Field | Type | Notes | |---|---|---| | `coverage_type` | enum | Must match coverage_type above | | `minimum_each_occurrence` | float | Minimum per-occurrence limit | | `minimum_aggregate` | float | Minimum aggregate limit | | `minimum_combined_single` | float | Minimum CSL (auto) | | `additional_insured_required` | boolean | Whether AI endorsement is required | | `waiver_of_subrogation_required` | boolean | Whether WOS is required | | `primary_noncontributory_required` | boolean | Whether P&NC endorsement required | | `specific_endorsements` | list | Exact form numbers required (e.g., CG 20 11, CG 20 37) | ## Process ### Step 1: Parse and Validate Certificate - Extract all coverage types, limits, policy numbers, dates, and endorsement references. - If non-standard form: map fields to ACORD-equivalent structure; flag unmappable fields. - Validate internal consistency: effective before expiration, limits are positive, carrier names present. ### Step 2: Coverage Type Matching For each required coverage type: 1. Check if the COI includes a matching coverage entry. 2. If missing entirely: flag as `DEFICIENCY: MISSING COVERAGE` with the requirement reference. 3. If present: proceed to limit comparison. ### Step 3: Limit Comparison For each matched coverage: 1. Compare each-occurrence limit to minimum requirement. If below: `DEFICIENCY: INSUFFICIENT OCCURRENCE LIMIT` with delta. 2. Compare aggregate limit to minimum requirement. If below: `DEFICIENCY: INSUFFICIENT AGGREGATE LIMIT` with delta. 3. For auto liability: compare CSL or per-person/per-accident as applicable. 4. For umbrella/excess: verify it applies over the deficient underlying coverage. An umbrella over GL does NOT cure an auto deficiency. 5. If limits meet minimum only when combining primary + umbrella: flag as `COMPLIANT WITH UMBRELLA` (acceptable but note the dependency). ### Step 4: Endorsement Verification 1. **Additional Insured**: Verify the required entity is listed. Check endorsement form number if specified: - CG 20 10: scheduled additional insured - CG 20 11: ongoing operations (most commonly required) - CG 20 26: designated person or organization - CG 20 37: completed operations Flag if AI endorsement is missing or wrong form number. 2. **Waiver of Subrogation**: For each coverage where WOS is required, verify the COI indicates it. Flag if missing. 3. **Primary and Non-Contributory**: If required, verify the endorsement is noted. Flag if missing. 4. **Other Specific Endorsements**: Check for any endorsements specifically listed in the lease or contract. ### Step 5: Date Validation 1. Check each policy expiration against today. - Expired: `DEFICIENCY: EXPIRED POLICY` - Within 30 days: `WARNING: EXPIRING SOON` with exact date - Within 60 days: `NOTICE: UPCOMING EXPIRATION` 2. Verify the certificate was issued within the current policy period. Stale certificates from prior periods are invalid. ### Step 6: Certificate Holder Verification - Verify the certificate holder matches the required entity. - Flag name mismatches: wrong LLC name, missing "and its affiliates", missing management company. ### Step 7: Description of Operations Review - Scan the "Description of Operations" section for restrictive language that could void coverage for the specific premises. - Flag any restrictions, exclusions, or limitations noted. ### Step 8: Generate Compliance Status For each required coverage, assign status: | Status | Meaning | |---|---| | `COMPLIANT` | All limits met, endorsements present, dates valid | | `DEFICIENT` | One or more requirements not met (specify which) | | `EXPIRED` | Policy expired | | `EXPIRING SOON` | Compliant today, expires within 30 days | | `UNABLE TO VERIFY` | COI lacks sufficient information | ### Step 9: Generate Deficiency Notice (if any deficiency exists) Draft a formal notice to the insured (tenant or vendor): - List each deficiency with the lease/contract section requiring the coverage. - State cure deadline (typically 10-15 business days). - Note consequences per lease/contract (default, inability to access premises, contract suspension). - Format for immediate send. ## Output Format ### 1. Compliance Status Report | Coverage Type | Required Limit | COI Limit | Status | Deficiency Detail | |---|---|---|---|---| Overall status: `FULLY COMPLIANT` | `DEFICIENT` | `EXPIRED` | `EXPIRING SOON` ### 2. Deficiency Notice (if applicable) Formal letter to tenant/vendor with each deficiency itemized, requirement references, cure deadline, and consequences. ### 3. Tracking Log Entry Insured name, certificate date, review date, status, deficiencies (if any), next review date, expiration date. ### 4. Expiration Warning List (batch mode) All certificates expiring within 30/60/90 days, priority-ranked: vendors currently on-site > tenants > inactive vendors. ## Red Flags and Failure Modes 1. **Umbrella that does not cure**: The most common oversight. An umbrella over GL does not cure an auto deficiency. Verify umbrella coverage applies to the deficient underlying line. 2. **Wrong AI endorsement form**: CG 20 10 vs. CG 20 11 vs. CG 20 26 have different scopes. If the lease specifies the exact form, check it. 3. **Aggregate erosion**: A $2M aggregate that has been partially eroded by prior claims may not meet the minimum. Flag if the aggregate appears low relative to the occurrence limit. 4. **Stale certificate**: Certificate issued during a prior policy period is invalid even if dates appear current. 5. **Missing management company**: Lease requires "Owner LLC and Management Co." as AI; COI names only "Owner LLC." 6. **Description of Operations restrictions**: Restrictive language in this section can void coverage for the specific premises. ## Chain Notes | Direction | Skill | Relationship | |---|---|---| | Upstream | lease-abstract-extractor | Provides insurance requirements from lease | | Peer | work-order-triage | Vendor COI must be compliant before dispatching vendor for work | | Downstream | debt-covenant-monitor | Insurance compliance is often a loan covenant requirement | | Downstream | lender-compliance-certificate | Insurance status reported in lender certificates |
Related Skills
sec-reg-d-compliance
SEC Regulation D compliance for CRE syndications: 506(b) vs 506(c) offering selection, accredited investor verification, Form D filing, state blue sky compliance, general solicitation rules, and substantive pre-existing relationship documentation.
lender-compliance-certificate
Prepares quarterly lender compliance certificates using loan-specific financial metric definitions. Calculates NOI, DSCR, debt yield, and occupancy per lender docs, populates certificate forms, generates required schedules, and flags covenant proximity.
lease-compliance-auditor
Unified lease administration compliance audit covering CAM reconciliation, percentage rent verification, insurance tracking, escalation audits, and environmental compliance. Quantifies revenue recovery opportunities with probability-weighted waterfall analysis. Triggers on 'audit lease compliance', 'CAM reconciliation', 'percentage rent audit', 'insurance certificates', or property disposition/refinancing prep.
fund-operations-compliance-dashboard
Institutional fund management operations: regulatory compliance monitoring, fee calculations, capital account statements, subscription processing, AML/KYC, Form D filings, LPAC governance, and fund expense ratios. Triggers on 'fund compliance', 'capital account', 'management fee calc', 'LP subscription', 'Form D filing', 'LPAC meeting', 'investor reporting', or when given fund terms, committed capital, and investment activity.
compliance-regulatory-response-kit
Building code violations, OSHA responses, ADA compliance, fire safety, environmental compliance during construction, entitlement tracking, community stakeholder communication. Triggers: code violation, OSHA, ADA, fire drill, environmental compliance, entitlement, community relations, inspection, certificate of occupancy, permit.
carbon-audit-compliance
Conducts building-level carbon audit, benchmarks against local Building Performance Standards (NYC LL97, DC BEPS, Boston BERDO 2.0, Denver, Colorado, Maryland, St. Louis), calculates penalty exposure, evaluates compliance pathways, and produces compliance-vs-penalty NPV comparison. Includes green certification ROI analysis and GRESB improvement roadmap.
workout-playbook
Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.
Work Order Triage
Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.
warehouse-to-exhibit-mapper
Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.
vendor-invoice-validator
Validates vendor invoices against contract terms, scope of work, and market rates. Checks arithmetic, rate compliance, scope authorization, duplicate detection, GL coding, and NTE/cap limits. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW verdict.
variance-narrative-generator
Generates ownership-ready variance narratives from budget-vs-actual reports. Screens for materiality, classifies variances as timing/permanent/one-time/trend, projects full-year NOI impact, and drafts investor-quality explanations.
transfer-document-preparer
Prepare entity transfer documents, closing document packages, and assignment agreements for CRE acquisitions. Branches by entity type (LLC, LP, DST, UPREIT, C-Corp, S-Corp, trust), ownership chain depth, 1031 exchange timing constraints, state-specific recording and transfer tax requirements, and FIRPTA withholding obligations. Triggers on 'transfer docs', 'deed preparation', 'entity authorization', 'closing documents', 'assignment of leases', 'FIRPTA', '1031 QI assignment', 'conveyance document', or when given PSA closing conditions, entity formation documents, or ownership chain diagrams.