Policy & Contract Management KPIs & Reporting
KPI Summary
| KPI ID | KPI Name | Formula (Conceptual) | Target | Data Source | Frequency |
|---|---|---|---|---|---|
| KPI-PCM-001 | Contract Coverage Rate | (Claims with matching active contract ÷ Total claims) × 100 | ≥ 95% | contracts, billing_claims |
Monthly / Qtr |
| KPI-PCM-002 | Fee Schedule Currency | (Active fee schedules updated in last 12 months ÷ Total active fee schedules) × 100 | 100% | contract_fee_schedules |
Monthly |
| KPI-PCM-003 | Avg Reimbursement vs. Contracted Rate | AVG(actual_payment ÷ contracted_rate) × 100 per payer | ≥ 98% | reimbursement_rates, billing_claims |
Monthly / Qtr |
| KPI-PCM-004 | Underpayment Recovery Rate | (Recovered underpayments ÷ Identified underpayments) × 100 | ≥ 85% | reimbursement_rates, billing_claims |
Monthly / Qtr |
| KPI-PCM-005 | Contract Expiry Compliance | (Contracts renewed before expiry ÷ Total expiring contracts) × 100 | 100% | contracts |
Monthly |
| KPI-PCM-006 | Prior Auth Denial Rate by Payer | (Denied prior auth requests ÷ Total prior auth requests) × 100 per payer | ≤ 15% | prior_auth_requests |
Monthly |
| KPI-PCM-007 | Average Days to Payer Payment | AVG(payment_date − claim_submission_date) per payer | ≤ contracts.payment_terms_days |
billing_claims, contracts |
Monthly |
| KPI-PCM-008 | Payer Mix Distribution | (Encounters per payer_class ÷ Total encounters) × 100 | Monitored | encounters, payers |
Monthly / Qtr |
Note:
billing_claims,prior_auth_requests, andencountersare owned by Billing & Claims / Scheduling modules and referenced here.
KPI Definitions
KPI-PCM-001: Contract Coverage Rate
Description
Percentage of submitted claims that are linked to an active, valid contract at the time of service. Measures how well payer contracts are configured and applied, directly impacting denial risk and underpayments.
Calculation Formula (SQL)
Assumptions:
billing_claims(Billing module) with:claim_id,payer_id,facility_id,service_date,total_claims_flag(or simply all rows)contracts(this module) with:contract_id,payer_id,facility_id,effective_date,expiry_date,status
-- Period parameters: :start_date, :end_date
SELECT
bc.payer_id,
COUNT(*) AS total_claims,
COUNT(
CASE
WHEN c.contract_id IS NOT NULL
AND c.status = 'active'
AND bc.service_date BETWEEN c.effective_date AND COALESCE(c.expiry_date, '2999-12-31')
THEN 1
END
) AS claims_with_active_contract,
COUNT(
CASE
WHEN c.contract_id IS NOT NULL
AND c.status = 'active'
AND bc.service_date BETWEEN c.effective_date AND COALESCE(c.expiry_date, '2999-12-31')
THEN 1
END
) * 100.0 / NULLIF(COUNT(*), 0) AS contract_coverage_rate_pct
FROM billing_claims bc
LEFT JOIN contracts c
ON c.payer_id = bc.payer_id
AND c.facility_id = bc.facility_id
AND bc.service_date BETWEEN c.effective_date AND COALESCE(c.expiry_date, '2999-12-31')
WHERE bc.service_date BETWEEN :start_date AND :end_date
GROUP BY bc.payer_id;
Target / Benchmark
| Metric | Target | Source / Rationale |
|---|---|---|
| Contract Coverage Rate | ≥ 95% | Internal RCM best practice to minimise out-of-contract billing and payer disputes. |
Data Sources
contractscontract_id,payer_id,facility_id,effective_date,expiry_date,statusbilling_claims(Billing module)claim_id,payer_id,facility_id,service_date,claim_status
Dimensions / Filters
- Time: month, quarter, year
- Facility (
facility_id) - Department (
department_idfrom encounters/claims) - Payer (
payer_id) - Contract type (
contracts.contract_type)
Visualization
- Primary: Bar chart by payer (contract coverage rate %).
- Secondary: Line chart trend by month (overall rate).
Alert Thresholds
- Warning: < 97% overall for the month.
- Critical: < 95% overall OR any single high-volume payer < 90%.
- Notifications:
- RCM Manager
- Contract Manager
- Billing Manager (cc)
KPI-PCM-002: Fee Schedule Currency
Description
Percentage of active fee schedules that have been updated within the last 12 months. Ensures alignment with latest DHA/DOH tariffs and contract amendments, reducing underbilling and compliance risk.
Calculation Formula (SQL)
Assumptions:
contract_fee_scheduleswith:fee_schedule_id,status,effective_date,expiry_date,last_updated_at
-- As of reference date :as_of_date
WITH active_schedules AS (
SELECT *
FROM contract_fee_schedules
WHERE status = 'active'
AND effective_date <= :as_of_date
AND COALESCE(expiry_date, '2999-12-31') >= :as_of_date
)
SELECT
COUNT(*) AS total_active_fee_schedules,
COUNT(
CASE
WHEN last_updated_at >= (:as_of_date - INTERVAL '12 months')
THEN 1
END
) AS active_updated_within_12m,
COUNT(
CASE
WHEN last_updated_at >= (:as_of_date - INTERVAL '12 months')
THEN 1
END
) * 100.0 / NULLIF(COUNT(*), 0) AS fee_schedule_currency_pct
FROM active_schedules;
Target / Benchmark
| Metric | Target | Source / Rationale |
|---|---|---|
| Fee Schedule Currency | 100% | Internal policy aligned with DHA/DOH annual tariff updates and payer renegotiations. |
Data Sources
contract_fee_schedulesfee_schedule_id,contract_id,status,effective_date,expiry_date,last_updated_at
Dimensions / Filters
- Payer
- Facility
- Contract type
- Tariff source (DHA, DOH, custom) if stored as
base_tariff
Visualization
- Gauge for overall percentage.
- Table listing non-current fee schedules (with last updated date) for action.
Alert Thresholds
- Warning: Any active schedule not updated in last 12 months.
- Critical: Any DHA/DOH-linked schedule not updated within 3 months of official tariff release.
- Notifications:
- Fee Schedule Analyst
- RCM Manager
KPI-PCM-003: Average Reimbursement vs. Contracted Rate
Description
Average ratio of actual reimbursement to contracted rate per CPT code and payer, expressed as a percentage. Measures whether payers are paying as per contract and whether billing is capturing contracted value.
Calculation Formula (SQL)
Assumptions:
reimbursement_rates(this module, aggregated periodically) with:rate_id,payer_id,contract_id,cpt_code,expected_rate,actual_avg_rate,period_start,period_end- Alternatively, direct from
billing_claim_lines(Billing module) if needed.
SELECT
rr.payer_id,
rr.contract_id,
AVG(
CASE
WHEN rr.expected_rate > 0
THEN rr.actual_avg_rate / rr.expected_rate * 100.0
END
) AS avg_reimbursement_vs_contracted_pct
FROM reimbursement_rates rr
WHERE rr.period_start >= :start_date
AND rr.period_end <= :end_date
GROUP BY rr.payer_id, rr.contract_id;
Target / Benchmark
| Metric | Target | Rationale |
|---|---|---|
| Avg Reimbursement vs. Contracted Rate | ≥ 98% | Allows minor adjudication differences; flags systemic underpay. |
Data Sources
reimbursement_ratespayer_id,contract_id,cpt_code,expected_rate,actual_avg_rate,variance_pct,period_start,period_end- Optional drill-down:
billing_claim_lines(Billing module) withallowed_amount,paid_amount,cpt_code,contracted_rate.
Dimensions / Filters
- Time: month, quarter, year
- Payer
- Contract
- CPT code / service category
- Facility
Visualization
- Bar chart by payer (average %).
- Heatmap: payer vs. service category (colour = % of contracted rate).
- Table for top negative variances.
Alert Thresholds
- Warning: Any payer average < 98% for the period.
- Critical: Any payer average < 95% OR any high-volume CPT with < 90%.
- Notifications:
- RCM Manager
- Finance Director
- Contract Manager (for flagged payers)
KPI-PCM-004: Underpayment Recovery Rate
Description
Percentage of identified underpayments that have been successfully recovered from payers. Indicates effectiveness of underpayment detection and follow-up processes.
Calculation Formula (SQL)
Assumptions:
reimbursement_ratesor anunderpaymentstable; here we assume anunderpaymentsview:
underpayments (logical):
payer_id,contract_id,claim_id,identified_underpayment_amount,recovered_amount
SELECT
u.payer_id,
SUM(u.identified_underpayment_amount) AS total_identified_underpayments,
SUM(u.recovered_amount) AS total_recovered_underpayments,
SUM(u.recovered_amount) * 100.0 / NULLIF(SUM(u.identified_underpayment_amount), 0)
AS underpayment_recovery_rate_pct
FROM underpayments u
WHERE u.identification_date BETWEEN :start_date AND :end_date
GROUP BY u.payer_id;
If underpayments is not a physical table, it can be derived from reimbursement_rates where variance_pct < 0.
Target / Benchmark
| Metric | Target | Rationale |
|---|---|---|
| Underpayment Recovery Rate | ≥ 85% | Internal RCM performance target for UAE market. |
Data Sources
- Derived from:
reimbursement_rates.variance_pct,expected_rate,actual_avg_ratebilling_claims/billing_payments(Billing module) for detailed amounts.
Dimensions / Filters
- Time period
- Payer
- Contract
- Service category
- Facility
Visualization
- Bar chart by payer (recovery rate %).
- Line chart trend of total identified vs. recovered amounts.
Alert Thresholds
- Warning: Overall recovery rate < 85% for last quarter.
- Critical: Any payer with > AED 100,000 outstanding underpayments older than 90 days.
- Notifications:
- RCM Manager
- Finance Director
- Collections / AR team
KPI-PCM-005: Contract Expiry Compliance
Description
Percentage of contracts that are renewed (or terminated with replacement) before their expiry date. Prevents gaps in coverage and out-of-contract billing.
Calculation Formula (SQL)
Assumptions:
contractswith:contract_id,payer_id,facility_id,effective_date,expiry_date,statuscontract_amendmentsfor renewals ORcontracts.parent_contract_idfor new versions.
We define:
expiring_contracts: contracts withexpiry_datein period andstatusin ('active','pending_renewal').renewed_before_expiry: expiring contracts that have:- a child contract (
parent_contract_id = contract_id) witheffective_date <= expiry_date, OR status = 'renewed'andapproved_date <= expiry_date.
WITH expiring AS (
SELECT c.contract_id, c.payer_id, c.facility_id, c.expiry_date
FROM contracts c
WHERE c.expiry_date BETWEEN :start_date AND :end_date
AND c.status IN ('active', 'pending_renewal')
),
renewed AS (
SELECT DISTINCT e.contract_id
FROM expiring e
LEFT JOIN contracts c_new
ON c_new.parent_contract_id = e.contract_id
AND c_new.effective_date <= e.expiry_date
LEFT JOIN contracts c_self
ON c_self.contract_id = e.contract_id
AND c_self.status = 'renewed'
AND c_self.approved_date <= e.expiry_date
WHERE c_new.contract_id IS NOT NULL
OR c_self.contract_id IS NOT NULL
)
SELECT
COUNT(*) AS total_expiring_contracts,
COUNT(r.contract_id) AS contracts_renewed_before_expiry,
COUNT(r.contract_id) * 100.0 / NULLIF(COUNT(*), 0) AS contract_expiry_compliance_pct
FROM expiring e
LEFT JOIN renewed r
ON r.contract_id = e.contract_id;
Target / Benchmark
| Metric | Target | Rationale |
|---|---|---|
| Contract Expiry Compliance | 100% | Internal governance standard for payer relationships. |
Data Sources
contractscontract_id,payer_id,facility_id,effective_date,expiry_date,status,approved_date,parent_contract_idcontract_amendments(for detailed renewal/amendment tracking)
Dimensions / Filters
- Time period (based on
expiry_date) - Payer
- Facility
- Contract type
Visualization
- Gauge for overall compliance.
- Table of contracts expiring in next 90/60/30 days with status.
Alert Thresholds
- Warning: Any contract within 60 days of expiry without renewal in progress.
- Critical: Any contract expired without replacement.
- Notifications:
- Contract Manager
- RCM Manager
- Finance Director (for high-revenue payers)
KPI-PCM-006: Prior Auth Denial Rate by Payer
Description
Percentage of prior authorization requests that are denied by each payer. High rates may indicate misaligned coverage rules, documentation issues, or contract problems.
Calculation Formula (SQL)
Assumptions:
prior_auth_requests(Billing / Utilization Management module) with:auth_id,payer_id,plan_id,service_category,cpt_code,request_date,status(e.g., 'approved','denied','pending','cancelled')
SELECT
par.payer_id,
COUNT(*) AS total_prior_auth_requests,
COUNT(CASE WHEN par.status = 'denied' THEN 1 END) AS denied_prior_auth_requests,
COUNT(CASE WHEN par.status = 'denied' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0)
AS prior_auth_denial_rate_pct
FROM prior_auth_requests par
WHERE par.request_date BETWEEN :start_date AND :end_date
GROUP BY par.payer_id;
Target / Benchmark
| Metric | Target | Rationale |
|---|---|---|
| Prior Auth Denial Rate/Payer | ≤ 15% | Internal target; above this suggests need for rule/contract review. |
Data Sources
prior_auth_requestsauth_id,payer_id,plan_id,service_category,cpt_code,request_date,status
Dimensions / Filters
- Time period
- Payer
- Plan
- Service category
- Facility / department
- Ordering provider (via linked encounter/order)
Visualization
- Bar chart: denial rate by payer.
- Drill-down table: top denied CPT/service categories per payer.
Alert Thresholds
- Warning: Any payer with denial rate between 15–20%.
- Critical: Any payer with denial rate > 20% or sudden increase > 5 percentage points month-on-month.
- Notifications:
- Utilization Management Lead
- Contract Analyst
- RCM Manager
KPI-PCM-007: Average Days to Payer Payment
Description
Average number of days from claim submission to payment receipt per payer, compared against contractual payment terms. Indicates payer performance and cash flow impact.
Calculation Formula (SQL)
Assumptions:
billing_claimswith:claim_id,payer_id,submission_date,payment_date,claim_statuscontractswith:payer_id,facility_id,payment_terms_days,status
SELECT
bc.payer_id,
AVG(DATE_PART('day', bc.payment_date::timestamp - bc.submission_date::timestamp)) AS avg_days_to_payment,
MIN(c.payment_terms_days) AS contractual_payment_terms_days,
AVG(DATE_PART('day', bc.payment_date::timestamp - bc.submission_date::timestamp))
- MIN(c.payment_terms_days) AS avg_days_over_terms
FROM billing_claims bc
LEFT JOIN contracts c
ON c.payer_id = bc.payer_id
AND c.status = 'active'
AND bc.service_date BETWEEN c.effective_date AND COALESCE(c.expiry_date, '2999-12-31')
WHERE bc.submission_date BETWEEN :start_date AND :end_date
AND bc.payment_date IS NOT NULL
GROUP BY bc.payer_id;
Target / Benchmark
| Metric | Target | Rationale |
|---|---|---|
| Avg Days to Payer Payment | ≤ payment_terms_days per contract |
Contractual compliance and cash flow health. |
Data Sources
billing_claimsclaim_id,payer_id,service_date,submission_date,payment_date,claim_statuscontractspayer_id,facility_id,payment_terms_days,effective_date,expiry_date,status
Dimensions / Filters
- Time period
- Payer
- Facility
- Claim type (inpatient/outpatient)
- Department
Visualization
- Bar chart: average days to payment vs. contractual terms per payer.
- Line chart: trend of average days to payment over time.
Alert Thresholds
- Warning: Avg days to payment exceeds terms by > 5 days for any payer.
- Critical: Avg days to payment exceeds terms by > 10 days or > 30 days absolute.
- Notifications:
- RCM Manager
- Finance Director
- AR / Collections team
KPI-PCM-008: Payer Mix Distribution
Description
Distribution of encounters by payer class (e.g., government, private, self-pay, international). Used for strategic planning, contract prioritisation, and forecasting.
Calculation Formula (SQL)
Assumptions:
encounters(Scheduling module) with:encounter_id,encounter_date,payer_idpayers(this module) with:payer_id,payer_class(e.g., 'government', 'private', 'self-pay', 'international')
SELECT
p.payer_class,
COUNT(*) AS encounters_count,
COUNT(*) * 100.0 / NULLIF(SUM(COUNT(*)) OVER (), 0) AS payer_mix_pct
FROM encounters e
JOIN payers p
ON p.payer_id = e.payer_id
WHERE e.encounter_date BETWEEN :start_date AND :end_date
GROUP BY p.payer_class;
Target / Benchmark
- No fixed numeric target; monitored for trends and strategic decisions (e.g., DOH/DHA payer mix, THIQA/SAADA share).
Data Sources
encountersencounter_id,encounter_date,payer_id,facility_id,department_idpayerspayer_id,payer_class,payer_type
Dimensions / Filters
- Time period
- Facility
- Department
- Payer class
- Payer
Visualization
- Pie chart or stacked bar chart by payer class.
- Trend line: payer class share over time.
Alert Thresholds
- No hard alerts; optional:
- Warning: Sudden change > 5 percentage points in any payer class share month-on-month.
- Notifications:
- Finance Director
- Strategy / Business Development
- RCM Manager
Standard Reports
| Report ID | Report Name | Purpose | Audience | Frequency | Format |
|---|---|---|---|---|---|
| RPT-PCM-001 | Payer Performance Scorecard | Consolidated view of KPIs (coverage, reimbursement variance, days to pay, denials). | RCM Manager, Finance Director | Monthly / Qtr | Interactive dashboard + PDF |
| RPT-PCM-002 | Contract Expiry & Renewal Tracker | Track contracts nearing expiry and renewal status; support KPI-PCM-005. | Contract Manager, RCM Manager | Weekly | Dashboard + Excel export |
| RPT-PCM-003 | Fee Schedule Currency Report | Identify fee schedules not updated within last 12 months; support KPI-PCM-002. | Fee Schedule Analyst, RCM | Monthly | Dashboard + CSV |
| RPT-PCM-004 | Underpayment & Recovery Analysis | Detail underpayments by payer, CPT, and recovery status; support KPI-PCM-004. | RCM Manager, AR Team | Monthly | PDF + Excel |
| RPT-PCM-005 | Prior Auth Denial Analysis | Analyse prior auth denial rates by payer, service, and reason; support KPI-PCM-006. | Utilization Mgmt, Contract Team | Monthly | Dashboard + CSV |
| RPT-PCM-006 | Contract Compliance vs. Payment Terms | Compare actual days to payment vs. contractual terms; support KPI-PCM-007. | Finance Director, RCM | Monthly | Dashboard + PDF |
| RPT-PCM-007 | Payer Mix & Volume Trend | Show encounter and claim volumes by payer class and payer; support KPI-PCM-008. | Finance, Strategy, RCM | Monthly / Qtr | Dashboard + Excel |
| RPT-PCM-008 | Payer Master & Network Status | Overview of payer master, network tier, eClaim status, and active contracts. | System Admin, RCM, Billing | On-demand | HTML + CSV |
| RPT-PCM-009 | Contract Version & Amendment History | Audit trail of contract versions and amendments for legal/compliance review. | Legal, Compliance, RCM | On-demand |
Dashboard Wireframe
High-level HTML wireframe for Payer Performance Dashboard (SCR-PCM-007) integrating key KPIs.
Show HTML code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Payer Performance Dashboard</title>
</head>
<body style="font-family: Arial, sans-serif; margin: 0; padding: 0; background:#f5f5f5;">
<!-- Top Bar -->
<header style="background:#004b8d; color:#fff; padding:10px 20px;">
<h1 style="margin:0; font-size:20px;">Payer Performance Dashboard</h1>
<div style="margin-top:5px; font-size:12px;">
<span>Module: Policy & Contract Management</span>
</div>
</header>
<!-- Filters -->
<section style="background:#ffffff; padding:10px 20px; border-bottom:1px solid #ddd;">
<form style="display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end;">
<div>
<label for="date_from" style="display:block; font-size:12px;">From</label>
<input type="date" id="date_from" style="padding:4px; font-size:12px;">
</div>
<div>
<label for="date_to" style="display:block; font-size:12px;">To</label>
<input type="date" id="date_to" style="padding:4px; font-size:12px;">
</div>
<div>
<label for="facility" style="display:block; font-size:12px;">Facility</label>
<select id="facility" style="padding:4px; font-size:12px; min-width:140px;">
<option>All Facilities</option>
<option>Dubai General Hospital</option>
<option>Abu Dhabi Medical Center</option>
</select>
</div>
<div>
<label for="payer" style="display:block; font-size:12px;">Payer</label>
<select id="payer" style="padding:4px; font-size:12px; min-width:140px;">
<option>All Payers</option>
<option>Daman</option>
<option>THIQA</option>
<option>Oman Insurance</option>
</select>
</div>
<div>
<label for="payer_class" style="display:block; font-size:12px;">Payer Class</label>
<select id="payer_class" style="padding:4px; font-size:12px; min-width:120px;">
<option>All</option>
<option>Government</option>
<option>Private</option>
<option>Self-pay</option>
<option>International</option>
</select>
</div>
<div>
<button type="button" style="padding:6px 12px; font-size:12px; background:#004b8d; color:#fff; border:none; cursor:pointer;">Apply</button>
</div>
</form>
</section>
<!-- KPI Cards -->
<section style="padding:15px 20px;">
<div style="display:flex; flex-wrap:wrap; gap:10px;">
<div style="flex:1 1 180px; background:#ffffff; border-radius:4px; padding:10px; border-top:3px solid #2e7d32;">
<div style="font-size:11px; color:#666;">Contract Coverage Rate</div>
<div style="font-size:22px; font-weight:bold;">96.8%</div>
<div style="font-size:11px; color:#2e7d32;">Target ≥ 95%</div>
</div>
<div style="flex:1 1 180px; background:#ffffff; border-radius:4px; padding:10px; border-top:3px solid #2e7d32;">
<div style="font-size:11px; color:#666;">Fee Schedule Currency</div>
<div style="font-size:22px; font-weight:bold;">100%</div>
<div style="font-size:11px; color:#2e7d32;">All active schedules < 12 months</div>
</div>
<div style="flex:1 1 180px; background:#ffffff; border-radius:4px; padding:10px; border-top:3px solid #f9a825;">
<div style="font-size:11px; color:#666;">Avg Reimbursement vs. Contract</div>
<div style="font-size:22px; font-weight:bold;">97.2%</div>
<div style="font-size:11px; color:#f9a825;">Target ≥ 98%</div>
</div>
<div style="flex:1 1 180px; background:#ffffff; border-radius:4px; padding:10px; border-top:3px solid #c62828;">
<div style="font-size:11px; color:#666;">Underpayment Recovery Rate</div>
<div style="font-size:22px; font-weight:bold;">82.5%</div>
<div style="font-size:11px; color:#c62828;">Target ≥ 85%</div>
</div>
</div>
</section>
<!-- Charts Row 1 -->
<section style="padding:0 20px 15px 20px;">
<div style="display:flex; flex-wrap:wrap; gap:10px;">
<div style="flex:2 1 320px; background:#ffffff; border-radius:4px; padding:10px;">
<h2 style="margin:0 0 5px 0; font-size:14px;">Payer Performance vs. Contract</h2>
<div style="font-size:11px; color:#666; margin-bottom:5px;">Bar chart: Avg reimbursement vs. contracted rate by payer</div>
<div style="height:200px; border:1px dashed #ccc; text-align:center; font-size:11px; color:#999; line-height:200px;">
[Bar Chart Placeholder]
</div>
</div>
<div style="flex:1 1 260px; background:#ffffff; border-radius:4px; padding:10px;">
<h2 style="margin:0 0 5px 0; font-size:14px;">Payer Mix Distribution</h2>
<div style="font-size:11px; color:#666; margin-bottom:5px;">Pie chart: encounters by payer class</div>
<div style="height:200px; border:1px dashed #ccc; text-align:center; font-size:11px; color:#999; line-height:200px;">
[Pie Chart Placeholder]
</div>
</div>
</div>
</section>
<!-- Charts Row 2 -->
<section style="padding:0 20px 15px 20px;">
<div style="display:flex; flex-wrap:wrap; gap:10px;">
<div style="flex:1 1 260px; background:#ffffff; border-radius:4px; padding:10px;">
<h2 style="margin:0 0 5px 0; font-size:14px;">Avg Days to Payment</h2>
<div style="font-size:11px; color:#666; margin-bottom:5px;">Bar chart: actual vs. contractual terms by payer</div>
<div style="height:180px; border:1px dashed #ccc; text-align:center; font-size:11px; color:#999; line-height:180px;">
[Bar Chart Placeholder]
</div>
</div>
<div style="flex:1 1 260px; background:#ffffff; border-radius:4px; padding:10px;">
<h2 style="margin:0 0 5px 0; font-size:14px;">Prior Auth Denial Rate</h2>
<div style="font-size:11px; color:#666; margin-bottom:5px;">Bar chart: denial rate by payer</div>
<div style="height:180px; border:1px dashed #ccc; text-align:center; font-size:11px; color:#999; line-height:180px;">
[Bar Chart Placeholder]
</div>
</div>
<div style="flex:1 1 260px; background:#ffffff; border-radius:4px; padding:10px;">
<h2 style="margin:0 0 5px 0; font-size:14px;">Contract Expiry Compliance</h2>
<div style="font-size:11px; color:#666; margin-bottom:5px;">Gauge + list of expiring contracts</div>
<div style="height:180px; border:1px dashed #ccc; text-align:center; font-size:11px; color:#999; line-height:180px;">
[Gauge / List Placeholder]
</div>
</div>
</div>
</section>
<!-- Detail Table -->
<section style="padding:0 20px 20px 20px;">
<div style="background:#ffffff; border-radius:4px; padding:10px;">
<div style="display:flex; justify-content:space-between; align-items:center;">
<h2 style="margin:0; font-size:14px;">Payer Scorecard Detail</h2>
<button type="button" style="padding:4px 10px; font-size:11px; background:#004b8d; color:#fff; border:none; cursor:pointer;">Export to Excel</button>
</div>
<div style="margin-top:8px; max-height:220px; overflow:auto;">
<table style="width:100%; border-collapse:collapse; font-size:11px;">
<thead>
<tr style="background:#f0f0f0;">
<th style="border:1px solid #ddd; padding:4px;">Payer</th>
<th style="border:1px solid #ddd; padding:4px;">Payer Class</th>
<th style="border:1px solid #ddd; padding:4px;">Contract Coverage</th>
<th style="border:1px solid #ddd; padding:4px;">Reimb vs. Contract</th>
<th style="border:1px solid #ddd; padding:4px;">Underpayment Recovery</th>
<th style="border:1px solid #ddd; padding:4px;">Avg Days to Pay</th>
<th style="border:1px solid #ddd; padding:4px;">Prior Auth Denial</th>
<th style="border:1px solid #ddd; padding:4px;">Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid #ddd; padding:4px;">Daman</td>
<td style="border:1px solid #ddd; padding:4px;">Private</td>
<td style="border:1px solid #ddd; padding:4px;">98.5%</td>
<td style="border:1px solid #ddd; padding:4px;">99.1%</td>
<td style="border:1px solid #ddd; padding:4px;">88.0%</td>
<td style="border:1px solid #ddd; padding:4px;">28 (≤ 30)</td>
<td style="border:1px solid #ddd; padding:4px;">12.3%</td>
<td style="border:1px solid #ddd; padding:4px;">
<a href="#" style="font-size:11px;">View Contract</a> |
<a href="#" style="font-size:11px;">Open Scorecard</a>
</td>
</tr>
<tr>
<td style="border:1px solid #ddd; padding:4px;">THIQA</td>
<td style="border:1px solid #ddd; padding:4px;">Government</td>
<td style="border:1px solid #ddd; padding:4px;">97.2%</td>
<td style="border:1px solid #ddd; padding:4px;">96.8%</td>
<td style="border:1px solid #ddd; padding:4px;">80.5%</td>
<td style="border:1px solid #ddd; padding:4px;">35 (> 30)</td>
<td style="border:1px solid #ddd; padding:4px;">18.9%</td>
<td style="border:1px solid #ddd; padding:4px;">
<a href="#" style="font-size:11px;">Flag for Review</a>
</td>
</tr>
<!-- Additional payer rows -->
</tbody>
</table>
</div>
</div>
</section>
</body>
</html>
Regulatory Reports
Although Policy & Contract Management is primarily an internal RCM function, it must support UAE regulatory and HIE-related reporting by ensuring payer, contract, and tariff data are accurate and auditable.
MOH (Federal) – Relevant Reporting Support
- Controlled Tariff & Contract Reference Support
- Provide master data extracts (payers, contracts, fee schedules) to support MOH audits of pricing and reimbursement practices.
- Fields: payer identity, contract type, rate methodology, linkage to MOH-approved tariffs where applicable.
-
Format: CSV/Excel export from
payers,contracts,contract_fee_schedules,fee_schedule_items. -
National Statistics Alignment
- Ensure payer classification (government/private/self-pay/international) aligns with MOH statistical categories for national health accounts.
DOH (Abu Dhabi) / DHA (Dubai) – Statistical & Claims Submissions
While eClaims/eClaimLink submissions are handled by Billing & Claims, this module must provide:
-
Tariff Alignment Report (DHA/DOH)
- Confirms that contracts referencing DHA/DOH tariffs use the latest published versions. - Data:contract_fee_schedules.base_tariff,fee_schedule_items.cpt_code,facility_rate,effective_date. - Used to demonstrate compliance during DOH/DHA inspections. -
Payer Network & Plan Registry Consistency - Report comparing internal payer/plan codes with DHA/DOH payer registries and network tiers. - Data:
payers.payer_class,payers.dha_license,payers.doh_license,insurance_plans.plan_code,payer_networks.network_tier. -
eClaims/eClaimLink Configuration Audit - Export of payer connectivity and submission requirements to support DHA eClaimLink and DOH eClaims configuration reviews. - Data:
payers.eclaim_routing, submission timelines, required fields.
UAE PDPL (Federal Decree-Law No. 45/2021) – Data Protection & Audit
Policy & Contract Management must support PDPL compliance by:
- Access & Change Audit Report
- Track who viewed or modified payer, contract, and fee schedule records.
- Data:
audit_log(module-wide), includinguser_id,action,entity_type,entity_id,timestamp,before_value,after_value. -
Used for PDPL audit trails and internal investigations.
-
Data Minimisation & Retention Reports
- Identify contracts and payer records beyond retention periods defined by facility policy and UAE law.
-
Support anonymisation or archival of historical financial data where appropriate.
-
Role-Based Access Review
- Report mapping users/roles (e.g., Contract Manager, Fee Schedule Analyst, Finance Director) to permissions (view/edit contracts, fee schedules).
- Ensures least-privilege access in line with PDPL and ADHICS/DHA security standards.
NABIDH / Malaffi – HIE Compliance Metrics
Although payer data is not directly exchanged via NABIDH/Malaffi, this module indirectly supports:
- Coverage Rule Consistency for Shared Care
- Reporting on coverage and prior auth rules that affect cross-facility services (e.g., imaging, high-cost procedures).
-
Ensures that eligibility and coverage logic used by CPOE and Patient Access is consistent with payer contracts, reducing claim rejections for HIE-enabled care.
-
Facility-Level Contract Availability
- For multi-facility groups participating in NABIDH/Malaffi, report which facilities are in-network for each payer and service category.
- Data:
payer_networks.facility_id,network_tier,status.
These reports should be exportable in CSV/Excel and accessible to Compliance, RCM, and IT Security teams.
Ad-Hoc Reporting
Available Data Fields for Custom Queries
Key entities available for ad-hoc reporting (via internal reporting database or BI layer):
- Payers (
payers) payer_id,payer_name_en,payer_name_ar,payer_type,payer_class,tpa_namedha_license,doh_license,eclaim_routing,is_active-
Contact fields:
contact_email,contact_phone -
Insurance Plans (
insurance_plans) plan_id,payer_id,plan_name_en,plan_name_ar,plan_codeplan_type,network_type,coverage_levelannual_maximum,copay_percentage,deductible-
effective_date,expiry_date,is_active -
Contracts (
contracts) contract_id,payer_id,facility_id,contract_typeeffective_date,expiry_date,auto_renewrate_methodology,payment_terms_days,statusapproved_by,approved_date,version,parent_contract_id-
document_path -
Contract Fee Schedules (
contract_fee_schedules) fee_schedule_id,contract_id,schedule_namebase_tariff(DHA/DOH/custom),effective_date,expiry_date,status-
created_by,created_at,last_updated_at -
Fee Schedule Items (
fee_schedule_items) item_id,fee_schedule_id,cpt_code,description-
facility_rate,professional_rate,modifier,rate_type,is_active -
Coverage Rules (
coverage_rules) rule_id,payer_id,plan_id,rule_typecpt_codes,icd10_codes,age_min,age_max,genderfrequency_limit,frequency_period,requires_prior_auth-
effective_date,is_active -
Prior Auth Rules (
prior_auth_rules) rule_id,payer_id,plan_id,service_categorycpt_code_range,auth_required,auth_methodturnaround_days,valid_duration_days-
documentation_required,is_active -
Payer Networks (
payer_networks) network_id,payer_id,facility_id,network_tiereffective_date,expiry_date,in_network_rate_modifier-
out_of_network_rate_modifier,status -
Reimbursement Rates (
reimbursement_rates) rate_id,payer_id,contract_id,cpt_codeexpected_rate,actual_avg_rate,variance_pct-
period_start,period_end,claim_count -
Contract Amendments (
contract_amendments) amendment_id,contract_id,amendment_typedescription,effective_date,old_value,new_valueapproved_by,approved_date
These can be joined with shared entities:
facilities.facility_iddepartments.department_idusers.user_idbilling_claims,billing_claim_lines,prior_auth_requests,encounters(from other modules).
Export Formats
For all standard and ad-hoc reports:
- CSV: For data analysis and integration with external tools.
- Excel (XLSX): For finance and management users (pivot tables, charts).
- PDF: For formal reporting, sign-off, and audit documentation.
- HTML: For interactive dashboards within the HIS.
Exports must:
- Respect UAE PDPL:
- Only include necessary fields.
- Enforce role-based access (e.g., Finance Director can see financial details; Billing Specialist may have restricted access).
- Be logged in an audit trail (who exported what, when, and with which filters).
Scheduled Report Delivery
The module should support scheduling of key reports:
- Scheduling Options
- Frequency: daily, weekly, monthly, quarterly.
- Time of day (e.g., 02:00 UAE time).
-
Recipients: internal users (via in-system notifications) and optionally email (subject to PDPL and facility policy).
-
Examples
- Monthly Payer Performance Scorecard emailed to Finance Director and RCM Manager.
- Weekly Contract Expiry & Renewal Tracker notification to Contract Manager.
-
Monthly Fee Schedule Currency Report to Fee Schedule Analyst.
-
Security & Compliance
- Email delivery should avoid sensitive patient-level data; this module is primarily financial/contractual, but still subject to PDPL.
- Links to secure dashboards preferred over attachments where possible.
- All schedules and deliveries logged for audit (user, report, filters, recipients).
This specification provides the development team with concrete KPI definitions, SQL patterns, reporting inventory, dashboard layout, and regulatory context required to implement the Policy & Contract Management KPIs & reporting layer in the UAE environment.