@wonsukchoi/crondex 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -44
- package/catalog.json +8862 -1873
- package/jobs/automotive/ase-certification-expiry-check.yaml +36 -0
- package/jobs/automotive/csi-score-monitor.yaml +33 -0
- package/jobs/automotive/customer-pay-warranty-pay-mix-tracker.yaml +47 -0
- package/jobs/automotive/fi-product-attachment-rate-tracker.yaml +39 -0
- package/jobs/automotive/loaner-fleet-availability-check.yaml +40 -0
- package/jobs/automotive/manufacturer-recall-notice-check.yaml +39 -0
- package/jobs/automotive/parts-reorder-point-check.yaml +36 -0
- package/jobs/automotive/repair-cycle-time-trend-monitor.yaml +42 -0
- package/jobs/automotive/service-appointment-no-show-tracker.yaml +38 -0
- package/jobs/automotive/service-bay-utilization-check.yaml +38 -0
- package/jobs/automotive/shop-supply-reorder-check.yaml +31 -0
- package/jobs/automotive/trade-in-appraisal-variance-check.yaml +39 -0
- package/jobs/automotive/used-vehicle-inventory-aging-check.yaml +35 -0
- package/jobs/construction/critical-path-material-lead-time-review.yaml +43 -0
- package/jobs/construction/daily-jobsite-log-compliance-check.yaml +34 -0
- package/jobs/construction/equipment-utilization-cost-check.yaml +35 -0
- package/jobs/construction/heavy-equipment-inspection-compliance-check.yaml +34 -0
- package/jobs/construction/jobsite-safety-incident-near-miss-tracker.yaml +35 -0
- package/jobs/construction/lien-waiver-collection-tracker.yaml +27 -0
- package/jobs/construction/permit-application-approval-backlog-check.yaml +33 -0
- package/jobs/construction/project-budget-variance-check.yaml +34 -0
- package/jobs/construction/punch-list-completion-tracker.yaml +36 -0
- package/jobs/construction/retainage-holdback-release-tracker.yaml +33 -0
- package/jobs/construction/rfi-response-time-tracker.yaml +33 -0
- package/jobs/construction/subcontractor-pay-application-approval-tracker.yaml +35 -0
- package/jobs/construction/submittal-shop-drawing-review-check.yaml +45 -0
- package/jobs/construction/weather-delay-impact-log.yaml +44 -0
- package/jobs/ecommerce/affiliate-commission-payout-check.yaml +38 -0
- package/jobs/ecommerce/back-in-stock-notification-backlog-check.yaml +30 -0
- package/jobs/ecommerce/bundle-component-stock-mismatch-check.yaml +37 -0
- package/jobs/ecommerce/chargeback-fraud-risk-order-review.yaml +43 -0
- package/jobs/ecommerce/competitor-price-watch.yaml +60 -0
- package/jobs/ecommerce/economic-nexus-threshold-check.yaml +43 -0
- package/jobs/ecommerce/failed-payment-dunning-check.yaml +35 -0
- package/jobs/ecommerce/marketplace-listing-sync-drift-check.yaml +48 -0
- package/jobs/ecommerce/product-feed-health-check.yaml +35 -0
- package/jobs/ecommerce/purchase-order-overdue-check.yaml +32 -0
- package/jobs/ecommerce/storefront-ssl-domain-expiry-check.yaml +46 -0
- package/jobs/ecommerce/vip-tier-reclassification-check.yaml +55 -0
- package/jobs/ecommerce/wishlist-abandonment-check.yaml +37 -0
- package/jobs/education/chronic-absenteeism-tracker.yaml +34 -0
- package/jobs/education/department-budget-variance-check.yaml +37 -0
- package/jobs/education/enrollment-withdrawal-trend-tracker.yaml +39 -0
- package/jobs/education/facility-work-order-backlog-check.yaml +34 -0
- package/jobs/education/free-reduced-lunch-eligibility-renewal-check.yaml +36 -0
- package/jobs/education/iep-504-review-deadline-tracker.yaml +35 -0
- package/jobs/education/parent-teacher-conference-noshow-tracker.yaml +29 -0
- package/jobs/education/school-bus-route-ontime-check.yaml +40 -0
- package/jobs/education/standardized-test-registration-deadline-check.yaml +35 -0
- package/jobs/education/substitute-teacher-fill-rate-tracker.yaml +35 -0
- package/jobs/education/teacher-certification-expiry-tracker.yaml +35 -0
- package/jobs/education/textbook-inventory-shortage-check.yaml +32 -0
- package/jobs/finance/accounts-payable-aging-check.yaml +40 -0
- package/jobs/finance/bank-statement-reconciliation-check.yaml +40 -0
- package/jobs/finance/budget-vs-actual-variance-report.yaml +38 -0
- package/jobs/finance/contractor-1099-threshold-tracker.yaml +43 -0
- package/jobs/finance/credit-utilization-watch.yaml +40 -0
- package/jobs/finance/duplicate-payment-detection.yaml +43 -0
- package/jobs/finance/expense-report-compliance-check.yaml +46 -0
- package/jobs/finance/late-fee-interest-risk-check.yaml +43 -0
- package/jobs/finance/loan-covenant-compliance-check.yaml +37 -0
- package/jobs/finance/month-end-close-checklist-tracker.yaml +39 -0
- package/jobs/finance/multi-account-cash-position-rollup.yaml +45 -0
- package/jobs/finance/petty-cash-float-reconciliation.yaml +43 -0
- package/jobs/finance/quarterly-estimated-tax-calculator.yaml +66 -0
- package/jobs/finance/vendor-early-pay-discount-tracker.yaml +45 -0
- package/jobs/fleet/accident-incident-report-tracker.yaml +34 -0
- package/jobs/fleet/driver-mvr-review-tracker.yaml +34 -0
- package/jobs/fleet/driver-safety-score-monitor.yaml +39 -0
- package/jobs/fleet/ev-battery-health-check.yaml +36 -0
- package/jobs/fleet/fuel-efficiency-trend-monitor.yaml +33 -0
- package/jobs/fleet/geofence-violation-check.yaml +37 -0
- package/jobs/fleet/lease-return-condition-check.yaml +33 -0
- package/jobs/fleet/tire-wear-replacement-check.yaml +30 -0
- package/jobs/fleet/toll-violation-tracker.yaml +34 -0
- package/jobs/fleet/vehicle-pool-scheduling-conflict-check.yaml +37 -0
- package/jobs/fleet/vehicle-tco-tracker.yaml +41 -0
- package/jobs/fleet/vehicle-utilization-rate-check.yaml +37 -0
- package/jobs/growth/cohort-retention-curve-monitor.yaml +39 -0
- package/jobs/growth/customer-health-score-monitor.yaml +37 -0
- package/jobs/growth/dau-mau-engagement-ratio-check.yaml +39 -0
- package/jobs/growth/dormant-account-reactivation-check.yaml +39 -0
- package/jobs/growth/expansion-revenue-opportunity-tracker.yaml +44 -0
- package/jobs/growth/feature-adoption-rate-tracker.yaml +44 -0
- package/jobs/growth/nps-trend-tracker.yaml +40 -0
- package/jobs/growth/onboarding-funnel-dropoff-check.yaml +39 -0
- package/jobs/growth/paywall-upgrade-prompt-conversion-check.yaml +40 -0
- package/jobs/growth/product-qualified-lead-tracker.yaml +42 -0
- package/jobs/growth/referral-program-performance-tracker.yaml +35 -0
- package/jobs/growth/trial-to-paid-conversion-rate-tracker.yaml +48 -0
- package/jobs/growth/winback-reactivation-campaign-tracker.yaml +46 -0
- package/jobs/healthcare/appointment-slot-utilization-check.yaml +56 -0
- package/jobs/healthcare/claims-denial-resubmission-check.yaml +43 -0
- package/jobs/healthcare/clinical-supply-low-stock-check.yaml +30 -0
- package/jobs/healthcare/controlled-substance-inventory-reconciliation.yaml +42 -0
- package/jobs/healthcare/hipaa-access-log-audit.yaml +74 -0
- package/jobs/healthcare/patient-balance-collections-aging-check.yaml +41 -0
- package/jobs/healthcare/patient-immunization-schedule-check.yaml +41 -0
- package/jobs/healthcare/patient-portal-message-backlog-check.yaml +39 -0
- package/jobs/healthcare/patient-satisfaction-survey-tracking.yaml +59 -0
- package/jobs/healthcare/prescription-refill-request-backlog-check.yaml +38 -0
- package/jobs/healthcare/prior-authorization-expiry-check.yaml +53 -0
- package/jobs/healthcare/staff-cme-credit-tracking.yaml +41 -0
- package/jobs/healthcare/telehealth-session-issue-check.yaml +51 -0
- package/jobs/hospitality/adr-revpar-tracker.yaml +43 -0
- package/jobs/hospitality/cancellation-rate-spike-check.yaml +21 -0
- package/jobs/hospitality/group-booking-space-utilization-check.yaml +40 -0
- package/jobs/hospitality/guest-complaint-sla-tracker.yaml +34 -0
- package/jobs/hospitality/guest-satisfaction-score-monitor.yaml +41 -0
- package/jobs/hospitality/linen-inventory-turnover-check.yaml +35 -0
- package/jobs/hospitality/loyalty-points-reconciliation-check.yaml +33 -0
- package/jobs/hospitality/minibar-charge-reconciliation-check.yaml +38 -0
- package/jobs/hospitality/occupancy-forecast-variance-check.yaml +33 -0
- package/jobs/hospitality/ota-rate-parity-check.yaml +36 -0
- package/jobs/hospitality/overbooking-risk-alert.yaml +38 -0
- package/jobs/hospitality/room-maintenance-work-order-tracker.yaml +31 -0
- package/jobs/hospitality/upsell-upgrade-conversion-tracker.yaml +37 -0
- package/jobs/hr/aca-fte-threshold-monitor.yaml +44 -0
- package/jobs/hr/cobra-notification-deadline-tracker.yaml +47 -0
- package/jobs/hr/compliance-training-completion-check.yaml +41 -0
- package/jobs/hr/eeo1-filing-deadline-reminder.yaml +37 -0
- package/jobs/hr/handbook-acknowledgment-tracking.yaml +34 -0
- package/jobs/hr/headcount-budget-variance-check.yaml +37 -0
- package/jobs/hr/leave-of-absence-return-tracker.yaml +42 -0
- package/jobs/hr/org-chart-manager-drift-check.yaml +40 -0
- package/jobs/hr/pay-equity-band-outlier-check.yaml +58 -0
- package/jobs/hr/pto-year-end-use-it-or-lose-it-check.yaml +49 -0
- package/jobs/hr/retirement-plan-enrollment-deadline-check.yaml +40 -0
- package/jobs/hr/workers-comp-claim-status-check.yaml +42 -0
- package/jobs/insurance/adjuster-caseload-balance-check.yaml +45 -0
- package/jobs/insurance/agent-broker-license-expiry-tracker.yaml +40 -0
- package/jobs/insurance/cat-event-exposure-monitor.yaml +37 -0
- package/jobs/insurance/claims-aging-backlog-tracker.yaml +48 -0
- package/jobs/insurance/doi-filing-deadline-tracker.yaml +42 -0
- package/jobs/insurance/loss-ratio-by-line-monitor.yaml +43 -0
- package/jobs/insurance/policy-lapse-rate-monitor.yaml +41 -0
- package/jobs/insurance/premium-payment-delinquency-tracker.yaml +42 -0
- package/jobs/insurance/quote-to-bind-conversion-tracker.yaml +41 -0
- package/jobs/insurance/reinsurance-treaty-renewal-tracker.yaml +38 -0
- package/jobs/insurance/siu-fraud-referral-tracker.yaml +36 -0
- package/jobs/insurance/subrogation-recovery-tracker.yaml +41 -0
- package/jobs/insurance/underwriting-queue-sla-monitor.yaml +45 -0
- package/jobs/legal/conflict-of-interest-check-tracker.yaml +38 -0
- package/jobs/legal/corporate-minute-book-completeness-check.yaml +31 -0
- package/jobs/legal/data-privacy-request-deadline-tracker.yaml +61 -0
- package/jobs/legal/entity-authority-document-expiry-check.yaml +37 -0
- package/jobs/legal/legal-document-retention-purge-review.yaml +39 -0
- package/jobs/legal/litigation-hold-acknowledgment-tracker.yaml +40 -0
- package/jobs/legal/non-compete-expiry-tracker.yaml +37 -0
- package/jobs/legal/outside-counsel-invoice-budget-check.yaml +37 -0
- package/jobs/legal/settlement-payment-schedule-tracker.yaml +34 -0
- package/jobs/legal/timekeeper-billable-hours-compliance-check.yaml +39 -0
- package/jobs/legal/trademark-infringement-watch.yaml +43 -0
- package/jobs/legal/vendor-coi-expiry-tracker.yaml +37 -0
- package/jobs/logistics/3pl-performance-scorecard.yaml +45 -0
- package/jobs/logistics/bol-freight-class-accuracy-audit.yaml +33 -0
- package/jobs/logistics/cargo-insurance-claim-status-check.yaml +39 -0
- package/jobs/logistics/carrier-load-tender-acceptance-check.yaml +34 -0
- package/jobs/logistics/carrier-otd-performance-scorecard.yaml +41 -0
- package/jobs/logistics/carrier-rate-contract-renewal-check.yaml +35 -0
- package/jobs/logistics/cross-dock-dwell-time-watch.yaml +43 -0
- package/jobs/logistics/freight-invoice-rate-audit.yaml +38 -0
- package/jobs/logistics/fuel-surcharge-rate-monitor.yaml +40 -0
- package/jobs/logistics/international-shipment-documentation-check.yaml +36 -0
- package/jobs/logistics/linehaul-transit-time-variance-check.yaml +43 -0
- package/jobs/logistics/proof-of-delivery-reconciliation-check.yaml +38 -0
- package/jobs/logistics/route-load-optimization-check.yaml +32 -0
- package/jobs/manufacturing/changeover-time-tracker.yaml +29 -0
- package/jobs/manufacturing/critical-spare-parts-stock-check.yaml +29 -0
- package/jobs/manufacturing/first-pass-yield-report.yaml +37 -0
- package/jobs/manufacturing/lot-traceability-audit.yaml +37 -0
- package/jobs/manufacturing/non-conformance-report-backlog-check.yaml +34 -0
- package/jobs/manufacturing/oee-efficiency-check.yaml +37 -0
- package/jobs/manufacturing/osha-recordable-incident-audit.yaml +37 -0
- package/jobs/manufacturing/production-schedule-adherence-check.yaml +35 -0
- package/jobs/manufacturing/safety-certification-expiry-check.yaml +37 -0
- package/jobs/manufacturing/scrap-waste-rate-watch.yaml +33 -0
- package/jobs/manufacturing/shift-handoff-report.yaml +37 -0
- package/jobs/manufacturing/supplier-quality-ppm-watch.yaml +38 -0
- package/jobs/manufacturing/tooling-die-wear-check.yaml +31 -0
- package/jobs/manufacturing/work-order-backlog-check.yaml +37 -0
- package/jobs/marketing/ad-creative-fatigue-check.yaml +44 -0
- package/jobs/marketing/affiliate-partner-performance-check.yaml +38 -0
- package/jobs/marketing/attribution-discrepancy-check.yaml +42 -0
- package/jobs/marketing/brand-share-of-voice-check.yaml +43 -0
- package/jobs/marketing/campaign-roas-cpa-anomaly-check.yaml +41 -0
- package/jobs/marketing/competitor-ad-creative-watch.yaml +40 -0
- package/jobs/marketing/email-list-growth-rate-check.yaml +43 -0
- package/jobs/marketing/landing-page-conversion-drop-check.yaml +44 -0
- package/jobs/marketing/mql-to-sql-handoff-sla-check.yaml +29 -0
- package/jobs/marketing/mql-volume-pace-check.yaml +34 -0
- package/jobs/marketing/paid-search-negative-keyword-waste-check.yaml +37 -0
- package/jobs/marketing/press-release-pickup-tracking.yaml +32 -0
- package/jobs/marketing/webinar-registration-attendance-check.yaml +38 -0
- package/jobs/realestate/capital-reserve-fund-threshold-check.yaml +32 -0
- package/jobs/realestate/eviction-notice-deadline-tracker.yaml +37 -0
- package/jobs/realestate/landlord-insurance-claim-status-check.yaml +35 -0
- package/jobs/realestate/lease-renewal-offer-window-check.yaml +35 -0
- package/jobs/realestate/maintenance-request-sla-check.yaml +39 -0
- package/jobs/realestate/move-in-move-out-inspection-tracker.yaml +35 -0
- package/jobs/realestate/rent-increase-notice-deadline-check.yaml +54 -0
- package/jobs/realestate/rent-roll-vacancy-loss-report.yaml +32 -0
- package/jobs/realestate/rental-license-renewal-check.yaml +35 -0
- package/jobs/realestate/security-deposit-return-deadline-check.yaml +38 -0
- package/jobs/realestate/tenant-application-review-backlog-check.yaml +35 -0
- package/jobs/realestate/tenant-renters-insurance-compliance-check.yaml +35 -0
- package/jobs/realestate/utility-billback-reconciliation-check.yaml +41 -0
- package/jobs/restaurant/comp-void-anomaly-tracker.yaml +39 -0
- package/jobs/restaurant/daily-sales-flash-report.yaml +36 -0
- package/jobs/restaurant/delivery-platform-commission-reconciliation.yaml +33 -0
- package/jobs/restaurant/delivery-receiving-discrepancy-check.yaml +33 -0
- package/jobs/restaurant/food-handler-permit-expiry-tracker.yaml +33 -0
- package/jobs/restaurant/gift-card-liability-check.yaml +45 -0
- package/jobs/restaurant/kitchen-ticket-time-watch.yaml +38 -0
- package/jobs/restaurant/liquor-pour-cost-variance-check.yaml +34 -0
- package/jobs/restaurant/menu-86-frequency-tracker.yaml +39 -0
- package/jobs/restaurant/menu-item-profitability-check.yaml +33 -0
- package/jobs/restaurant/pos-end-of-day-reconciliation-check.yaml +31 -0
- package/jobs/restaurant/table-turnover-rate-tracker.yaml +36 -0
- package/jobs/restaurant/waitlist-conversion-check.yaml +37 -0
- package/jobs/retail/cash-office-deposit-variance-check.yaml +34 -0
- package/jobs/retail/competitor-price-monitoring-check.yaml +42 -0
- package/jobs/retail/damaged-merchandise-writeoff-tracker.yaml +41 -0
- package/jobs/retail/employee-discount-abuse-check.yaml +39 -0
- package/jobs/retail/layaway-special-order-pickup-tracker.yaml +33 -0
- package/jobs/retail/loyalty-enrollment-redemption-rate-tracker.yaml +37 -0
- package/jobs/retail/markdown-execution-audit-check.yaml +29 -0
- package/jobs/retail/planogram-compliance-audit-check.yaml +36 -0
- package/jobs/retail/pos-void-refund-anomaly-tracker.yaml +42 -0
- package/jobs/retail/price-tag-audit-accuracy-check.yaml +37 -0
- package/jobs/retail/sales-per-square-foot-tracker.yaml +36 -0
- package/jobs/retail/seasonal-staffing-coverage-check.yaml +35 -0
- package/jobs/retail/store-closing-checklist-compliance-check.yaml +32 -0
- package/jobs/retail/visual-merchandising-compliance-check.yaml +40 -0
- package/jobs/sales/champion-departure-watch.yaml +44 -0
- package/jobs/sales/closed-lost-reason-audit.yaml +42 -0
- package/jobs/sales/commission-payout-tracker.yaml +32 -0
- package/jobs/sales/contract-renewal-opportunity-tracker.yaml +28 -0
- package/jobs/sales/discount-approval-pending-check.yaml +31 -0
- package/jobs/sales/forecast-submission-compliance-check.yaml +42 -0
- package/jobs/sales/multi-year-renewal-escalation-tracker.yaml +31 -0
- package/jobs/sales/pipeline-hygiene-audit.yaml +26 -0
- package/jobs/sales/poc-trial-conversion-tracker.yaml +29 -0
- package/jobs/sales/referral-followup-tracker.yaml +40 -0
- package/jobs/sales/territory-coverage-gap-check.yaml +43 -0
- package/jobs/veterinary/appointment-no-show-rate-tracker.yaml +49 -0
- package/jobs/veterinary/boarding-kennel-capacity-utilization-check.yaml +39 -0
- package/jobs/veterinary/client-payment-plan-delinquency-check.yaml +36 -0
- package/jobs/veterinary/dvm-license-dea-registration-expiry-check.yaml +41 -0
- package/jobs/veterinary/microchip-registration-verification-check.yaml +40 -0
- package/jobs/veterinary/patient-record-completeness-audit.yaml +41 -0
- package/jobs/veterinary/pet-medication-refill-backlog-check.yaml +36 -0
- package/jobs/veterinary/puppy-kitten-vaccine-series-compliance-check.yaml +39 -0
- package/jobs/veterinary/senior-pet-wellness-recall-tracker.yaml +43 -0
- package/jobs/veterinary/spay-neuter-followup-compliance-check.yaml +35 -0
- package/jobs/veterinary/specialist-referral-followup-check.yaml +38 -0
- package/jobs/veterinary/surgical-schedule-utilization-check.yaml +36 -0
- package/jobs/veterinary/vet-staff-ce-credit-tracking.yaml +36 -0
- package/jobs/warehousing/conveyor-sortation-downtime-watch.yaml +48 -0
- package/jobs/warehousing/labor-productivity-rate-check.yaml +33 -0
- package/jobs/warehousing/mhe-preventive-maintenance-check.yaml +38 -0
- package/jobs/warehousing/order-fulfillment-sla-watch.yaml +42 -0
- package/jobs/warehousing/shift-headcount-coverage-check.yaml +33 -0
- package/jobs/warehousing/slotting-velocity-review-check.yaml +44 -0
- package/jobs/warehousing/warehouse-damage-writeoff-review.yaml +41 -0
- package/jobs/warehousing/warehouse-near-miss-incident-rate-watch.yaml +47 -0
- package/jobs/warehousing/warehouse-space-utilization-check.yaml +39 -0
- package/jobs/warehousing/wave-pick-batch-efficiency-check.yaml +33 -0
- package/jobs/warehousing/wms-integration-error-check.yaml +36 -0
- package/jobs/warehousing/yard-trailer-detention-watch.yaml +41 -0
- package/lib/category-descriptions.js +12 -12
- package/lib/duplicates-allowlist.js +15 -0
- package/package.json +2 -2
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: retirement-plan-enrollment-deadline-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Retirement Plan Enrollment Deadline Check
|
|
4
|
+
description: >
|
|
5
|
+
Flags employees who are eligible for the 401(k)/retirement plan but
|
|
6
|
+
haven't enrolled or waived as their enrollment deadline approaches. Use
|
|
7
|
+
this if someone has ever missed the window to make an active election
|
|
8
|
+
and got dropped into a default auto-enrollment deferral rate they didn't
|
|
9
|
+
actually want.
|
|
10
|
+
category: hr
|
|
11
|
+
tags: [hr, retirement, 401k, benefits, deadline]
|
|
12
|
+
schedule: "0 8 * * 1"
|
|
13
|
+
timezone: "America/New_York"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
$4 != "" {next}
|
|
19
|
+
{
|
|
20
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline due_epoch; close(cmd);
|
|
22
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
23
|
+
diff_days = (due_epoch - now_epoch) / 86400;
|
|
24
|
+
if (diff_days <= days) {
|
|
25
|
+
printf "ENROLLMENT DEADLINE: %s — eligible since %s, deadline %s (%d days), no election on file\n", $1, $2, $3, diff_days;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
' "{{retirement_tracking_csv_path}}"
|
|
29
|
+
variables:
|
|
30
|
+
retirement_tracking_csv_path:
|
|
31
|
+
default: "./retirement-plan-tracking.csv"
|
|
32
|
+
description: "Path to a CSV with columns: employee_name,eligibility_date (YYYY-MM-DD),enrollment_deadline (YYYY-MM-DD),election_status (enrolled/waived, blank if no election yet)."
|
|
33
|
+
warn_days_before:
|
|
34
|
+
default: 14
|
|
35
|
+
description: How many days before the enrollment deadline to start warning.
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: >
|
|
38
|
+
Many plans auto-enroll non-responders at a default deferral rate after
|
|
39
|
+
the deadline rather than defaulting to no contribution — confirm your
|
|
40
|
+
plan document's actual default behavior rather than assuming.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: workers-comp-claim-status-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Workers' Comp Claim Status Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks open workers' compensation claims with the carrier and flags ones
|
|
6
|
+
that have gone quiet or are approaching an expected return-to-work date
|
|
7
|
+
with no update. Use this if an injured employee's claim has ever
|
|
8
|
+
stalled with the carrier for weeks with nobody at the company noticing
|
|
9
|
+
or following up.
|
|
10
|
+
category: hr
|
|
11
|
+
tags: [hr, workers-comp, compliance, safety]
|
|
12
|
+
schedule: "0 9 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Check {{wc_carrier}} for open workers' compensation claims and
|
|
17
|
+
cross-reference against {{hris_system}} for each claimant's expected
|
|
18
|
+
return-to-work date, if any.
|
|
19
|
+
1. List each open claim: employee name, date of injury, days since last
|
|
20
|
+
status update, and expected return date (if set).
|
|
21
|
+
2. Flag any claim with no status update in the last {{stale_days}} days,
|
|
22
|
+
or with a return date within {{escalate_within_days}} days and no
|
|
23
|
+
recent update, as needing a follow-up call with the carrier.
|
|
24
|
+
3. If everything is progressing normally, say so in one line.
|
|
25
|
+
variables:
|
|
26
|
+
wc_carrier:
|
|
27
|
+
default: "your workers' compensation carrier/TPA"
|
|
28
|
+
description: Where claim status is tracked (the insurance carrier or third-party administrator portal).
|
|
29
|
+
hris_system:
|
|
30
|
+
default: "your HRIS"
|
|
31
|
+
description: Where employee return-to-work dates and leave status are recorded.
|
|
32
|
+
stale_days:
|
|
33
|
+
default: 14
|
|
34
|
+
description: Days with no status update before a claim is flagged as stalled.
|
|
35
|
+
escalate_within_days:
|
|
36
|
+
default: 7
|
|
37
|
+
description: Days before an expected return date at which a claim with no recent update becomes urgent.
|
|
38
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
39
|
+
notes: >
|
|
40
|
+
Read-only status check — actually contacting the carrier, adjusting
|
|
41
|
+
duties, or making return-to-work decisions is for HR/legal/safety to
|
|
42
|
+
handle. No generic script mode since carrier portals vary widely.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
id: adjuster-caseload-balance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Adjuster Caseload Balance Check
|
|
4
|
+
description: >
|
|
5
|
+
Counts open claims assigned per adjuster and flags anyone carrying a
|
|
6
|
+
caseload well above the team average, so work can be redistributed
|
|
7
|
+
before it hurts claim cycle time. Use this if one adjuster has ever
|
|
8
|
+
quietly ended up with double the caseload of everyone else on the team.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, claims, adjuster, caseload, operations]
|
|
11
|
+
schedule: "0 7 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v overload="{{overload_multiplier}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
count[$2]++;
|
|
19
|
+
total++;
|
|
20
|
+
n_adjusters[$2]=1;
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
n=0;
|
|
24
|
+
for (a in n_adjusters) n++;
|
|
25
|
+
avg = (n > 0) ? total / n : 0;
|
|
26
|
+
printf "CASELOAD SUMMARY: %d open claims across %d adjusters (avg %.1f)\n", total, n, avg;
|
|
27
|
+
for (a in count) {
|
|
28
|
+
if (avg > 0 && count[a] > avg * overload) {
|
|
29
|
+
printf "OVERLOADED: %s — %d open claims (avg %.1f)\n", a, count[a], avg;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
' "{{open_claims_by_adjuster_csv}}"
|
|
34
|
+
variables:
|
|
35
|
+
open_claims_by_adjuster_csv:
|
|
36
|
+
default: "./open-claims-by-adjuster.csv"
|
|
37
|
+
description: "Path to a CSV with columns: claim_number,adjuster_name — one row per open claim."
|
|
38
|
+
overload_multiplier:
|
|
39
|
+
default: 1.5
|
|
40
|
+
description: How many times the team average caseload counts as overloaded (e.g. 1.5 = 50% above average).
|
|
41
|
+
compatible_agents: [generic, claude, codex]
|
|
42
|
+
notes: >
|
|
43
|
+
Staffing-balance check across a claims team, distinct from
|
|
44
|
+
claims-aging-backlog-tracker which looks at claim age rather than
|
|
45
|
+
who's handling how many claims.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: agent-broker-license-expiry-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Agent/Broker License Expiry Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Checks producer (agent/broker) license and appointment expiration dates
|
|
6
|
+
across every state they're licensed in and flags anything expiring
|
|
7
|
+
soon. Use this if an agent has ever kept writing business in a state
|
|
8
|
+
after their license quietly lapsed.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, agent, broker, license, compliance]
|
|
11
|
+
schedule: "0 8 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
19
|
+
cmd | getline expiry_epoch; close(cmd);
|
|
20
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
21
|
+
diff_days = (expiry_epoch - now_epoch) / 86400;
|
|
22
|
+
if (diff_days <= days) {
|
|
23
|
+
status = (diff_days < 0) ? "EXPIRED" : "EXPIRING";
|
|
24
|
+
printf "%s: %s — %s license/appointment in %s expires %s (%d days)\n", status, $1, $2, $2, $3, diff_days;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{producer_licenses_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
producer_licenses_csv_path:
|
|
30
|
+
default: "./producer-licenses.csv"
|
|
31
|
+
description: "Path to a CSV with columns: producer_name,state,expiry_date (YYYY-MM-DD) — one row per state license/appointment."
|
|
32
|
+
warn_days_before:
|
|
33
|
+
default: 45
|
|
34
|
+
description: How many days before a license or appointment expiry to start warning.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: >
|
|
37
|
+
Tracks producer (selling agent/broker) licensing compliance across an
|
|
38
|
+
agency or MGA's distribution force — distinct from
|
|
39
|
+
certificate-of-insurance-request-check, which tracks COI requests, not
|
|
40
|
+
producer licensure.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: cat-event-exposure-monitor
|
|
2
|
+
version: 1
|
|
3
|
+
name: Catastrophe Event Exposure Monitor
|
|
4
|
+
description: >
|
|
5
|
+
Cross-references active policies against a catastrophe (hurricane,
|
|
6
|
+
wildfire, earthquake, flood) event footprint and estimates
|
|
7
|
+
policy-count and total insured value exposure inside the impact zone.
|
|
8
|
+
Use this if a CAT event has ever hit before anyone had a fast answer to
|
|
9
|
+
"how many policies do we have in that area, and what's our exposure."
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, catastrophe, cat, exposure, risk]
|
|
12
|
+
schedule: "0 */6 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Given the active/forecast catastrophe event: {{cat_event_description}},
|
|
17
|
+
and the policy exposure summary: {{policy_exposure_summary}}.
|
|
18
|
+
1. Estimate how many policies and how much total insured value fall
|
|
19
|
+
within or near the event's impact footprint.
|
|
20
|
+
2. Break this down by line of business (property, auto, etc.) if the
|
|
21
|
+
exposure data allows it.
|
|
22
|
+
3. Flag any single large-limit policy that falls inside the footprint
|
|
23
|
+
for individual review.
|
|
24
|
+
4. Note this is a rough triage estimate for readiness/response
|
|
25
|
+
planning, not a final claims or reserve figure.
|
|
26
|
+
variables:
|
|
27
|
+
cat_event_description:
|
|
28
|
+
default: "describe the catastrophe event and its current/forecast footprint here"
|
|
29
|
+
description: Name, type, and geographic footprint of the catastrophe event being tracked.
|
|
30
|
+
policy_exposure_summary:
|
|
31
|
+
default: "paste or summarize policy counts and insured values by geography here"
|
|
32
|
+
description: Summary of active policy counts and total insured value by geography/line of business.
|
|
33
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
34
|
+
notes: >
|
|
35
|
+
Pre/during-event exposure estimation for claims and reinsurance
|
|
36
|
+
readiness planning — distinct from claims-aging-backlog-tracker, which
|
|
37
|
+
tracks already-filed claims rather than pre-loss exposure.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
id: claims-aging-backlog-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Claims Aging & Backlog Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Buckets open claims by how long they've been open (0-30, 31-60, 61-90,
|
|
6
|
+
90+ days) and flags any bucket that's grown past target so a claims
|
|
7
|
+
manager can rebalance the queue. Use this if a backlog of aging claims
|
|
8
|
+
has ever crept up gradually until a regulator or auditor asked why so
|
|
9
|
+
many were still open past 90 days.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, claims, aging, backlog, operations]
|
|
12
|
+
schedule: "0 7 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
today=$(date +%s);
|
|
17
|
+
awk -F',' -v today="$today" -v cap90="{{max_90plus_pct}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
{
|
|
20
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline opened_epoch; close(cmd);
|
|
22
|
+
age_days = (today - opened_epoch) / 86400;
|
|
23
|
+
total++;
|
|
24
|
+
if (age_days <= 30) b30++;
|
|
25
|
+
else if (age_days <= 60) b60++;
|
|
26
|
+
else if (age_days <= 90) b90++;
|
|
27
|
+
else b90plus++;
|
|
28
|
+
}
|
|
29
|
+
END {
|
|
30
|
+
printf "AGING SUMMARY: 0-30d=%d 31-60d=%d 61-90d=%d 90d+=%d (total=%d)\n", b30, b60, b90, b90plus, total;
|
|
31
|
+
pct90plus = (total > 0) ? (b90plus / total) * 100 : 0;
|
|
32
|
+
if (pct90plus > cap90) {
|
|
33
|
+
printf "OVER TARGET: %.1f%% of open claims are 90+ days old (cap %d%%)\n", pct90plus, cap90;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
' "{{open_claims_csv_path}}"
|
|
37
|
+
variables:
|
|
38
|
+
open_claims_csv_path:
|
|
39
|
+
default: "./open-claims.csv"
|
|
40
|
+
description: "Path to a CSV with columns: claim_number,date_opened (YYYY-MM-DD)."
|
|
41
|
+
max_90plus_pct:
|
|
42
|
+
default: 10
|
|
43
|
+
description: Maximum acceptable percentage of open claims sitting at 90+ days before this counts as over target.
|
|
44
|
+
compatible_agents: [generic, claude, codex]
|
|
45
|
+
notes: >
|
|
46
|
+
Portfolio-level aging distribution for a claims team, distinct from
|
|
47
|
+
claim-status-check which follows up on individual stale claims for a
|
|
48
|
+
single policyholder.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: doi-filing-deadline-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: State DOI Regulatory Filing Deadline Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Warns before a state Department of Insurance filing deadline (rate
|
|
6
|
+
filings, annual statements, market conduct reports) so nothing gets
|
|
7
|
+
submitted late. Use this if a regulatory filing has ever gone out late
|
|
8
|
+
because the deadline lived only in one compliance person's memory.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, compliance, regulatory, doi, filing]
|
|
11
|
+
schedule: "0 8 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
$4 != "" {next}
|
|
18
|
+
{
|
|
19
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
20
|
+
cmd | getline due_epoch; close(cmd);
|
|
21
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
22
|
+
diff_days = (due_epoch - now_epoch) / 86400;
|
|
23
|
+
if (diff_days <= days) {
|
|
24
|
+
status = (diff_days < 0) ? "OVERDUE" : "DUE SOON";
|
|
25
|
+
printf "%s: %s — %s filing due %s (%d days)\n", status, $1, $2, $3, diff_days;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
' "{{doi_filings_csv_path}}"
|
|
29
|
+
variables:
|
|
30
|
+
doi_filings_csv_path:
|
|
31
|
+
default: "./doi-filings.csv"
|
|
32
|
+
description: "Path to a CSV with columns: state,filing_type,due_date (YYYY-MM-DD),filed_date (blank if not yet filed)."
|
|
33
|
+
warn_days_before:
|
|
34
|
+
default: 21
|
|
35
|
+
description: How many days before a filing deadline to start warning.
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: >
|
|
38
|
+
Regulatory filing deadlines owed to state insurance regulators —
|
|
39
|
+
distinct from legal's compliance-filing-deadline-reminder, which is a
|
|
40
|
+
generic cross-industry filing tracker; this one is scoped specifically
|
|
41
|
+
to insurance-department filings (rate filings, annual statements,
|
|
42
|
+
market conduct reports).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
id: loss-ratio-by-line-monitor
|
|
2
|
+
version: 1
|
|
3
|
+
name: Loss Ratio by Line of Business Monitor
|
|
4
|
+
description: >
|
|
5
|
+
Calculates the incurred loss ratio for each line of business and flags
|
|
6
|
+
any line running hotter than target, so underwriting or pricing can
|
|
7
|
+
react before a bad quarter turns into a bad year. Use this if a line's
|
|
8
|
+
loss ratio has ever drifted well past target for months before anyone
|
|
9
|
+
noticed in the numbers.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, loss-ratio, underwriting, finance]
|
|
12
|
+
schedule: "0 7 1 * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v target="{{target_loss_ratio_pct}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
earned[$1] += $2;
|
|
20
|
+
incurred[$1] += $3;
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
for (line in earned) {
|
|
24
|
+
if (earned[line] > 0) {
|
|
25
|
+
ratio = (incurred[line] / earned[line]) * 100;
|
|
26
|
+
flag = (ratio > target) ? " OVER TARGET" : "";
|
|
27
|
+
printf "%s: loss ratio %.1f%%%s (earned %.2f, incurred %.2f)\n", line, ratio, flag, earned[line], incurred[line];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
' "{{loss_ratio_csv_path}}"
|
|
32
|
+
variables:
|
|
33
|
+
loss_ratio_csv_path:
|
|
34
|
+
default: "./loss-ratio-by-line.csv"
|
|
35
|
+
description: "Path to a CSV with columns: line_of_business,earned_premium,incurred_losses — one row per period/line entry, aggregated across the current reporting period."
|
|
36
|
+
target_loss_ratio_pct:
|
|
37
|
+
default: 65
|
|
38
|
+
description: Target maximum loss ratio percentage per line of business before it's flagged.
|
|
39
|
+
compatible_agents: [generic, claude, codex]
|
|
40
|
+
notes: >
|
|
41
|
+
Financial performance monitoring by line of business for underwriting
|
|
42
|
+
and actuarial review — distinct from claims-aging-backlog-tracker,
|
|
43
|
+
which tracks claim handling speed rather than loss cost.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: policy-lapse-rate-monitor
|
|
2
|
+
version: 1
|
|
3
|
+
name: Policy Cancellation & Lapse Rate Monitor
|
|
4
|
+
description: >
|
|
5
|
+
Calculates the weekly policy cancellation/lapse rate and flags it when
|
|
6
|
+
it climbs past a healthy baseline, so retention teams can react before
|
|
7
|
+
a leaky book turns into a shrinking one. Use this if a rising lapse
|
|
8
|
+
rate has ever gone unnoticed until a quarterly report showed the book
|
|
9
|
+
had quietly shrunk.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, retention, lapse, cancellation, operations]
|
|
12
|
+
schedule: "0 7 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v baseline="{{baseline_lapse_pct}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
total++;
|
|
20
|
+
if ($2 == "cancelled" || $2 == "lapsed") lapsed++;
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
pct = (total > 0) ? (lapsed / total) * 100 : 0;
|
|
24
|
+
printf "LAPSE RATE: %.1f%% (%d of %d policies) — baseline %d%%\n", pct, lapsed, total, baseline;
|
|
25
|
+
if (pct > baseline) {
|
|
26
|
+
printf "ABOVE BASELINE: lapse rate exceeds the %d%% target\n", baseline;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
' "{{policy_status_csv_path}}"
|
|
30
|
+
variables:
|
|
31
|
+
policy_status_csv_path:
|
|
32
|
+
default: "./policy-status-weekly.csv"
|
|
33
|
+
description: "Path to a CSV with columns: policy_number,status (active/cancelled/lapsed) for the current reporting period's book."
|
|
34
|
+
baseline_lapse_pct:
|
|
35
|
+
default: 8
|
|
36
|
+
description: Baseline acceptable cancellation/lapse rate percentage before it's flagged as elevated.
|
|
37
|
+
compatible_agents: [generic, claude, codex]
|
|
38
|
+
notes: >
|
|
39
|
+
Book-wide retention health metric, distinct from
|
|
40
|
+
premium-payment-delinquency-tracker, which flags individual accounts
|
|
41
|
+
rather than the aggregate lapse trend.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: premium-payment-delinquency-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Premium Payment Delinquency Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Scans the book of business for policyholders past due on premium
|
|
6
|
+
payments and flags accounts approaching cancellation-for-nonpayment, so
|
|
7
|
+
collections or retention outreach can happen before a policy lapses.
|
|
8
|
+
Use this if delinquent accounts have ever piled up unnoticed until a
|
|
9
|
+
batch of policies cancelled all at once.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, premium, delinquency, collections, retention]
|
|
12
|
+
schedule: "0 7 * * 1-5"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
today=$(date +%s);
|
|
17
|
+
awk -F',' -v today="$today" -v cancel_days="{{cancellation_grace_days}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$3 != "unpaid" {next}
|
|
20
|
+
{
|
|
21
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
22
|
+
cmd | getline due_epoch; close(cmd);
|
|
23
|
+
past_due_days = (today - due_epoch) / 86400;
|
|
24
|
+
if (past_due_days > 0) {
|
|
25
|
+
remaining = cancel_days - past_due_days;
|
|
26
|
+
status = (remaining <= 0) ? "CANCELLATION ELIGIBLE" : sprintf("%d days until cancellation-eligible", remaining);
|
|
27
|
+
printf "DELINQUENT: %s — due %s, %d days past due — %s\n", $1, $2, past_due_days, status;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
' "{{book_of_business_csv_path}}"
|
|
31
|
+
variables:
|
|
32
|
+
book_of_business_csv_path:
|
|
33
|
+
default: "./premium-payment-status.csv"
|
|
34
|
+
description: "Path to a CSV with columns: policy_number,payment_due_date (YYYY-MM-DD),status (paid/unpaid)."
|
|
35
|
+
cancellation_grace_days:
|
|
36
|
+
default: 30
|
|
37
|
+
description: Days past due before a policy becomes eligible for cancellation-for-nonpayment.
|
|
38
|
+
compatible_agents: [generic, claude, codex]
|
|
39
|
+
notes: >
|
|
40
|
+
Book-wide delinquency and collections view across many policyholders,
|
|
41
|
+
distinct from premium-payment-due-reminder, which reminds a single
|
|
42
|
+
policyholder about their own upcoming payment before it's even late.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: quote-to-bind-conversion-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Quote-to-Bind Conversion Rate Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Calculates the quote-to-bind conversion rate over the trailing period
|
|
6
|
+
and flags it when it drops below target, so sales/underwriting leaders
|
|
7
|
+
catch a pricing or process problem while it's still small. Use this if
|
|
8
|
+
a falling close rate has ever gone unnoticed for a full quarter because
|
|
9
|
+
nobody was watching quotes lost, only policies written.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, sales, quoting, conversion, underwriting]
|
|
12
|
+
schedule: "0 7 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v target="{{target_conversion_pct}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
quotes++;
|
|
20
|
+
if ($2 == "bound") bound++;
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
pct = (quotes > 0) ? (bound / quotes) * 100 : 0;
|
|
24
|
+
printf "CONVERSION RATE: %.1f%% (%d of %d quotes bound) — target %d%%\n", pct, bound, quotes, target;
|
|
25
|
+
if (pct < target) {
|
|
26
|
+
printf "BELOW TARGET: conversion rate is under the %d%% target\n", target;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
' "{{quotes_csv_path}}"
|
|
30
|
+
variables:
|
|
31
|
+
quotes_csv_path:
|
|
32
|
+
default: "./quotes-weekly.csv"
|
|
33
|
+
description: "Path to a CSV with columns: quote_id,status (bound/lost/pending) for the trailing reporting period."
|
|
34
|
+
target_conversion_pct:
|
|
35
|
+
default: 25
|
|
36
|
+
description: Target minimum quote-to-bind conversion rate percentage before this is flagged as below target.
|
|
37
|
+
compatible_agents: [generic, claude, codex]
|
|
38
|
+
notes: >
|
|
39
|
+
Sales-funnel metric for new business production, distinct from
|
|
40
|
+
underwriting-queue-sla-monitor, which measures decision speed rather
|
|
41
|
+
than the rate at which quotes actually convert to bound policies.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: reinsurance-treaty-renewal-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Reinsurance Treaty Renewal Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Warns before a reinsurance treaty's renewal or non-renewal notice date
|
|
6
|
+
so terms can be renegotiated or the market re-shopped in time. Use this
|
|
7
|
+
if a treaty has ever auto-renewed on unfavorable terms because the
|
|
8
|
+
notice window quietly passed.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, reinsurance, treaty, renewal]
|
|
11
|
+
schedule: "0 8 1 * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
19
|
+
cmd | getline notice_epoch; close(cmd);
|
|
20
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
21
|
+
diff_days = (notice_epoch - now_epoch) / 86400;
|
|
22
|
+
if (diff_days <= days && diff_days >= 0) {
|
|
23
|
+
printf "NOTICE DEADLINE APPROACHING: %s (%s) — non-renewal notice due %s (%d days)\n", $1, $2, $3, diff_days;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
' "{{treaties_csv_path}}"
|
|
27
|
+
variables:
|
|
28
|
+
treaties_csv_path:
|
|
29
|
+
default: "./reinsurance-treaties.csv"
|
|
30
|
+
description: "Path to a CSV with columns: treaty_name,reinsurer,non_renewal_notice_date (YYYY-MM-DD)."
|
|
31
|
+
warn_days_before:
|
|
32
|
+
default: 60
|
|
33
|
+
description: How many days before the non-renewal notice deadline to start warning.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: >
|
|
36
|
+
Tracks the reinsurer-facing treaty notice deadline, not a primary
|
|
37
|
+
policy renewal — distinct in scope from policy-renewal-reminder, which
|
|
38
|
+
tracks retail/commercial policies sold to policyholders.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: siu-fraud-referral-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: SIU Fraud Referral Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Checks claims referred to the Special Investigations Unit for suspected
|
|
6
|
+
fraud and flags any referral that hasn't been triaged or closed within
|
|
7
|
+
the target window. Use this if a fraud-flagged claim has ever sat in an
|
|
8
|
+
SIU queue for months with no documented outcome.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, siu, fraud, claims, compliance]
|
|
11
|
+
schedule: "0 9 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Review the SIU referral log: {{siu_referrals_summary}}.
|
|
16
|
+
1. List each open referral: claim number, referral date, referral
|
|
17
|
+
reason, and current SIU status.
|
|
18
|
+
2. Flag any referral open longer than {{triage_sla_days}} days without
|
|
19
|
+
a documented triage decision (accept for investigation, decline,
|
|
20
|
+
refer to law enforcement, or close as unsubstantiated).
|
|
21
|
+
3. For referrals nearing a statutory reporting deadline, note that
|
|
22
|
+
explicitly so it doesn't get missed.
|
|
23
|
+
4. Do not draw conclusions about guilt — flag for human SIU review only.
|
|
24
|
+
variables:
|
|
25
|
+
siu_referrals_summary:
|
|
26
|
+
default: "paste or summarize the current SIU referral log here"
|
|
27
|
+
description: Summary or export of claims currently referred to the Special Investigations Unit.
|
|
28
|
+
triage_sla_days:
|
|
29
|
+
default: 15
|
|
30
|
+
description: Days a referral can sit without a documented triage decision before it's flagged.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: >
|
|
33
|
+
Fraud-investigation triage tracking, distinct from
|
|
34
|
+
claims-aging-backlog-tracker which tracks ordinary claim age rather
|
|
35
|
+
than SIU investigation status. Sensitive — restrict access to the SIU
|
|
36
|
+
team and legal/compliance.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: subrogation-recovery-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Subrogation Recovery Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Checks open subrogation files against at-fault third parties and flags
|
|
6
|
+
ones with no recovery activity in a while, so pursuit doesn't quietly
|
|
7
|
+
stall until the statute of limitations closes the door. Use this if a
|
|
8
|
+
recoverable claim has ever gone unpursued long enough to lose the
|
|
9
|
+
chance at reimbursement entirely.
|
|
10
|
+
category: insurance
|
|
11
|
+
tags: [insurance, subrogation, recovery, claims]
|
|
12
|
+
schedule: "0 9 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Review the open subrogation file list: {{subrogation_files_summary}}.
|
|
17
|
+
1. List each open file: claim number, at-fault party, recovery amount
|
|
18
|
+
sought, and date of last recovery activity.
|
|
19
|
+
2. Flag any file with no activity in more than {{stale_after_days}}
|
|
20
|
+
days as needing follow-up (demand letter, arbitration filing, or
|
|
21
|
+
status call to the at-fault carrier).
|
|
22
|
+
3. Separately flag any file approaching its statute-of-limitations
|
|
23
|
+
deadline within {{sol_warn_days}} days as urgent.
|
|
24
|
+
4. Draft a short follow-up note for each stale file, referencing the
|
|
25
|
+
claim number and recovery amount.
|
|
26
|
+
variables:
|
|
27
|
+
subrogation_files_summary:
|
|
28
|
+
default: "paste or summarize the current open subrogation file list here"
|
|
29
|
+
description: Summary or export of open subrogation recovery files.
|
|
30
|
+
stale_after_days:
|
|
31
|
+
default: 21
|
|
32
|
+
description: Days without recovery activity before a file is flagged as stale.
|
|
33
|
+
sol_warn_days:
|
|
34
|
+
default: 45
|
|
35
|
+
description: Days before a statute-of-limitations deadline to flag a file as urgent.
|
|
36
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
37
|
+
notes: >
|
|
38
|
+
Tracks pursuing reimbursement from an at-fault third party after a
|
|
39
|
+
claim is paid — a different direction and timeline from
|
|
40
|
+
claim-status-check, which tracks the insurer's own claim to the
|
|
41
|
+
policyholder before payment.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
id: underwriting-queue-sla-monitor
|
|
2
|
+
version: 1
|
|
3
|
+
name: Underwriting Queue SLA Monitor
|
|
4
|
+
description: >
|
|
5
|
+
Checks pending underwriting submissions against the target
|
|
6
|
+
turnaround-time SLA and flags any that are approaching or past it. Use
|
|
7
|
+
this if a broker submission has ever sat in an underwriter's queue for
|
|
8
|
+
weeks with no decision because nobody was watching the clock.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, underwriting, sla, queue]
|
|
11
|
+
schedule: "0 8 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
today=$(date +%s);
|
|
16
|
+
awk -F',' -v today="$today" -v sla="{{sla_days}}" -v warn="{{warn_days_before}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
$4 != "" {next}
|
|
19
|
+
{
|
|
20
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline submitted_epoch; close(cmd);
|
|
22
|
+
age_days = (today - submitted_epoch) / 86400;
|
|
23
|
+
remaining = sla - age_days;
|
|
24
|
+
if (remaining <= 0) {
|
|
25
|
+
printf "SLA BREACHED: %s (%s) submitted %s — %d days in queue, SLA is %d\n", $1, $3, $2, age_days, sla;
|
|
26
|
+
} else if (remaining <= warn) {
|
|
27
|
+
printf "SLA AT RISK: %s (%s) submitted %s — %d days remaining\n", $1, $3, $2, remaining;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
' "{{submissions_csv_path}}"
|
|
31
|
+
variables:
|
|
32
|
+
submissions_csv_path:
|
|
33
|
+
default: "./underwriting-submissions.csv"
|
|
34
|
+
description: "Path to a CSV with columns: submission_id,submitted_date (YYYY-MM-DD),underwriter,decision_date (blank if undecided)."
|
|
35
|
+
sla_days:
|
|
36
|
+
default: 10
|
|
37
|
+
description: Target number of business days to reach a decision from submission.
|
|
38
|
+
warn_days_before:
|
|
39
|
+
default: 2
|
|
40
|
+
description: Days before the SLA deadline to start flagging a submission as at-risk.
|
|
41
|
+
compatible_agents: [generic, claude, codex]
|
|
42
|
+
notes: >
|
|
43
|
+
Tracks new-business/renewal underwriting decision turnaround, distinct
|
|
44
|
+
from endorsement-request-followup-check which tracks mid-term policy
|
|
45
|
+
change requests after a policy is already bound.
|