Northstar Payer Operations Skill
Overview
Use this skill when solving Northstar Health Plan payer operations tasks — prior authorizations, appeals, payment integrity corrections, peer-to-peer summaries, and margin queue analysis. The environment is a shared read-only payer operations portal with REST endpoints and a SQL interface.
Environment Setup
The task will provide a base URL and a bearer token. Use these to interact with the environment:
- All REST endpoints require header
Authorization: Bearer <token>
- The SQL endpoint is
POST /sql/query with JSON body {"sql": "<statement>"} — note the key is sql, not query
- When neither REST nor SQL is specified, prefer the business REST endpoints first; they return pre-joined, comprehensive results
Data Access Strategy
Step 1: Use business REST endpoints first
Start with GET /api/cases/{target_id} — this returns a rich, pre-joined payload containing the case record, member details, provider info, plan context, request lines, criteria results (with fact traceability), documents (with facts), authorizations, claims with claim lines, appeals, drug trials, P2P events, and assistance screens all in a single call.
Step 2: Supplement with focused lookups
GET /api/policies/{policy_id} — returns policy criteria with approval_required flags and result_if_missing defaults
GET /api/rate-schedules — returns all benchmark rates for repricing; filter by plan_type, service_domain, cpt_code, modifier, and effective date range
GET /api/appeals — returns all appeals with deadlines, paths, and packet status
POST /sql/query — use only when data isn't available through REST (e.g., service_margin table queries); key name is sql, always SELECT * with specific WHERE filters
Step 3: Reconcile records to the task date
Always filter records to those effective as of the task's reporting date. For benchmarks and policies, check effective_start and effective_end ranges. For documents, prefer is_current = 1.
Business Domain Patterns
Source Precedence Rules
Every determination uses one of six source-precedence rules. Match the rule to the task type:
| Rule |
When to apply |
current_clinical_records_over_stale_export |
Current clinical docs (eval, POC) supersede older exports or unrelated episode records. Use for prior auth, UM nurse review. |
payer_appeal_before_manufacturer_assistance |
Appeal packet items are evaluated before assistance program items. Use for pharmacy appeals with manufacturer assistance screens. |
effective_benchmark_by_plan_modifier_and_date |
Current benchmark schedules (matching plan type, CPT, modifier, and effective date) override stale/legacy schedules. Use for payment integrity repricing. |
new_patient_specific_p2p_information |
P2P events may supply new patient-specific info that changes a review; generic provider arguments do not. Use for P2P summaries and MD review closures. |
margin_threshold_then_charge_sensitivity |
Below-threshold margin issues (revenue/cost < threshold) take priority, then charge-sensitive rows are flagged separately. Use for finance margin queue analysis. |
appeal_deadline_then_clinical_then_payment_integrity |
Multi-priority queue ordering: deadlines first, then clinical urgency, then payment integrity items. Use for mixed queue triage. |
Basis Audit Construction
Every answer includes a basis_audit with four components:
source_precedence — select the applicable rule from the table above
controlling_record_ids — the environment record IDs that directly control the determination (e.g., the authorization record, current clinical documents, effective benchmarks, P2P event, the below-threshold row)
exception_record_ids — records that explain gaps, exclusions, denials, missing information, or route priority (e.g., stale documents, undocumented trial records, criteria that are not met, stale benchmarks, charge-sensitive rows that aren't below threshold)
precedence_record_order — concatenate controlling IDs first (in priority order), then exception IDs. Within exceptions: criteria/route gaps before stale/excluded records
Criteria Evaluation
- Policy criteria carry an
approval_required flag — only criteria with approval_required = 1 gate approval; those with approval_required = 0 are informative
- Each criterion has a
result_if_missing that dictates what happens when it fails: pend (hold for info), deny, or correct
- Map each criterion to one of:
met, not_met, partial, unclear, not_applicable
- Track which document facts support each criterion via
evidence_fact_ids
- Unresolved criteria: when a task asks for
unresolved_criteria, include criteria that are not_met and require resolution — not criteria whose status is genuinely unknown
- For multi-criterion policies, the most restrictive unmet criterion determines the final status
Document Triage
- Evidence documents (
evidence_documents): current clinical/eval/POC documents that directly support the determination — list in ascending document_id order
- Excluded documents (
excluded_documents): stale exports, unrelated episodes, or documents whose is_current = 0 — list in ascending document_id order
- For claims/repricing: the EOB/remittance document and its facts identify the stale schedule used
Packet Assessment (Appeals)
- Required packet items listed in appeal notes define the minimum for a complete filing
- Compare required items against documents present in the case
- Separate appeal evidence gaps (listed first in
missing_packet_items) from assistance information gaps (listed after)
- Documented vs undocumented failures: check
drug_trials — documented = 1 means evidence exists; documented = 0 with notes like "fill missing" means the failure is insufficiently evidenced
Task-Type Quick Reference
Prior Authorization (UM Nurse Review)
- Review case, member/plan status, request lines, policy criteria, clinical documents, and authorization status
- Criteria driving the determination come from
case_criteria (pre-evaluated) and policy_criteria (policy defaults)
- Total requested units across all lines vs policy unit limits
- If all required criteria are
met → approve / nurse_approval
- If any criterion is
not_met with result_if_missing = deny → deny / medical_director_review
- Authorization object: take
auth_number, approved_units, date ranges, CPTs (sorted ascending), and modifier from the existing authorization record
Pharmacy Appeal + Assistance
- Appeal routing:
standard_internal (30-day deadline from denial) or expedited_internal (shorter deadline, requires attestation)
- Documented failures: medications with
documented = 1 in drug trials → alphabetical order
- Undocumented/insufficient failures: medications with
documented = 0 or missing fill records → alphabetical order
- Assistance status:
eligible_ready (all fields present), eligible_missing_information (fields missing), not_eligible, not_applicable
- Next action:
request_more_information when both appeal evidence and assistance info have gaps; file_appeal when appeal packet is complete but assistance is separate
Payment Integrity (Claim Repricing)
- Match claim lines to current benchmark rates by: plan_type, service_domain, cpt_code, modifier, and effective date range
- Stale source = the benchmark with an earlier effective_end that was used for the original payment
correct_allowed_amount per line = benchmark allowed_amount × line units
recovery_amount = correct_allowed_amount − paid_amount (positive for underpayments)
- Claim-level totals are sums across all lines
- Disposition per line:
correct_upward (underpaid), correct_downward (overpaid), no_change, deny_line
resubmission_route: payment_integrity_correction for standard corrections
Peer-to-Peer Final Summary
- P2P outcome:
overturn_to_approval (new clinical info changed the review) or uphold_intended_adverse_decision (no new patient-specific info)
new_information_changed_review: true only when the P2P supplies patient-specific clinical facts that materially alter the criteria assessment; generic arguments about modality quality do not qualify
- Unresolved criteria are those that remain
not_met after the P2P
recommended_alternative: SPECT MPI when PET is denied for missing PET-over-SPECT factors; PET MPI when SPECT was denied and PET factors are met; none otherwise
- Internal appeal deadline: calculated from the final adverse determination date (the P2P completion date when the P2P upholds denial) using the plan's stated appeal window (e.g., 180 calendar days)
Margin Queue Analysis
total_cost = variable_cost + fixed_cost_allocated (as defined in the task's finance memo)
revenue_to_cost_ratio = net_revenue / total_cost
margin = net_revenue − total_cost
below_threshold = ratio < task-specified threshold
- Recommended actions:
payer_contract_review (below threshold), monitor_charge_sensitive (above threshold but charge-sensitive), monitor_no_action (above threshold, not charge-sensitive)
top_issue: the below-threshold row with format {segment}_{cpt_code}; use none if no rows are below threshold
gap_to_120pct: (threshold × total_cost) − net_revenue for the top issue
- Aggregate segments alphabetically
Numeric Precision
- Currency: round to 2 decimal places (cents)
- Ratios: round to 4 decimal places
- Integer fields (units, visits): use whole integers
- Dates: ISO 8601
YYYY-MM-DD format; use null for absent modifiers (not empty string)
Answer Construction Checklist
- Read the task prompt and identify the task type, target ID(s), reporting date, and requester role
- Fetch the primary case/appeal/claim via
GET /api/cases/{id}
- Fetch supporting records (policy, rate schedules, appeals list) as needed
- Map every required field from the answer template to an environment record
- Classify documents into evidence vs excluded
- Select the correct
source_precedence rule for the task type
- Build
basis_audit: controlling records first, then exception records, in the correct priority order
- Compute all numeric values using the precision rules above
- Sort lists according to their specified ordering rules
- Return exactly one JSON object matching the answer template — no markdown, no prose outside the JSON
1---2name: reflect-3-attempt-02-563description: Northstar Payer Operations Skill4---5# Northstar Payer Operations Skill67## Overview8Use this skill when solving Northstar Health Plan payer operations tasks — prior authorizations, appeals, payment integrity corrections, peer-to-peer summaries, and margin queue analysis. The environment is a shared read-only payer operations portal with REST endpoints and a SQL interface.910## Environment Setup11The task will provide a base URL and a bearer token. Use these to interact with the environment:12- All REST endpoints require header `Authorization: Bearer <token>`13- The SQL endpoint is `POST /sql/query` with JSON body `{"sql": "<statement>"}` — note the key is `sql`, not `query`14- When neither REST nor SQL is specified, prefer the business REST endpoints first; they return pre-joined, comprehensive results1516## Data Access Strategy1718### Step 1: Use business REST endpoints first19Start with `GET /api/cases/{target_id}` — this returns a rich, pre-joined payload containing the case record, member details, provider info, plan context, request lines, criteria results (with fact traceability), documents (with facts), authorizations, claims with claim lines, appeals, drug trials, P2P events, and assistance screens all in a single call.2021### Step 2: Supplement with focused lookups22- `GET /api/policies/{policy_id}` — returns policy criteria with `approval_required` flags and `result_if_missing` defaults23- `GET /api/rate-schedules` — returns all benchmark rates for repricing; filter by `plan_type`, `service_domain`, `cpt_code`, `modifier`, and effective date range24- `GET /api/appeals` — returns all appeals with deadlines, paths, and packet status25- `POST /sql/query` — use only when data isn't available through REST (e.g., `service_margin` table queries); key name is `sql`, always `SELECT *` with specific WHERE filters2627### Step 3: Reconcile records to the task date28Always filter records to those effective as of the task's reporting date. For benchmarks and policies, check `effective_start` and `effective_end` ranges. For documents, prefer `is_current = 1`.2930## Business Domain Patterns3132### Source Precedence Rules33Every determination uses one of six source-precedence rules. Match the rule to the task type:3435| Rule | When to apply |36|---|---|37| `current_clinical_records_over_stale_export` | Current clinical docs (eval, POC) supersede older exports or unrelated episode records. Use for prior auth, UM nurse review. |38| `payer_appeal_before_manufacturer_assistance` | Appeal packet items are evaluated before assistance program items. Use for pharmacy appeals with manufacturer assistance screens. |39| `effective_benchmark_by_plan_modifier_and_date` | Current benchmark schedules (matching plan type, CPT, modifier, and effective date) override stale/legacy schedules. Use for payment integrity repricing. |40| `new_patient_specific_p2p_information` | P2P events may supply new patient-specific info that changes a review; generic provider arguments do not. Use for P2P summaries and MD review closures. |41| `margin_threshold_then_charge_sensitivity` | Below-threshold margin issues (revenue/cost < threshold) take priority, then charge-sensitive rows are flagged separately. Use for finance margin queue analysis. |42| `appeal_deadline_then_clinical_then_payment_integrity` | Multi-priority queue ordering: deadlines first, then clinical urgency, then payment integrity items. Use for mixed queue triage. |4344### Basis Audit Construction45Every answer includes a `basis_audit` with four components:46471. **`source_precedence`** — select the applicable rule from the table above482. **`controlling_record_ids`** — the environment record IDs that directly control the determination (e.g., the authorization record, current clinical documents, effective benchmarks, P2P event, the below-threshold row)493. **`exception_record_ids`** — records that explain gaps, exclusions, denials, missing information, or route priority (e.g., stale documents, undocumented trial records, criteria that are not met, stale benchmarks, charge-sensitive rows that aren't below threshold)504. **`precedence_record_order`** — concatenate controlling IDs first (in priority order), then exception IDs. Within exceptions: criteria/route gaps before stale/excluded records5152### Criteria Evaluation53- Policy criteria carry an `approval_required` flag — only criteria with `approval_required = 1` gate approval; those with `approval_required = 0` are informative54- Each criterion has a `result_if_missing` that dictates what happens when it fails: `pend` (hold for info), `deny`, or `correct`55- Map each criterion to one of: `met`, `not_met`, `partial`, `unclear`, `not_applicable`56- Track which document facts support each criterion via `evidence_fact_ids`57- **Unresolved criteria**: when a task asks for `unresolved_criteria`, include criteria that are `not_met` and require resolution — not criteria whose status is genuinely unknown58- For multi-criterion policies, the most restrictive unmet criterion determines the final status5960### Document Triage61- **Evidence documents** (`evidence_documents`): current clinical/eval/POC documents that directly support the determination — list in ascending document_id order62- **Excluded documents** (`excluded_documents`): stale exports, unrelated episodes, or documents whose `is_current = 0` — list in ascending document_id order63- For claims/repricing: the EOB/remittance document and its facts identify the stale schedule used6465### Packet Assessment (Appeals)66- Required packet items listed in appeal notes define the minimum for a complete filing67- Compare required items against documents present in the case68- Separate appeal evidence gaps (listed first in `missing_packet_items`) from assistance information gaps (listed after)69- Documented vs undocumented failures: check `drug_trials` — `documented = 1` means evidence exists; `documented = 0` with notes like "fill missing" means the failure is insufficiently evidenced7071## Task-Type Quick Reference7273### Prior Authorization (UM Nurse Review)74- Review case, member/plan status, request lines, policy criteria, clinical documents, and authorization status75- Criteria driving the determination come from `case_criteria` (pre-evaluated) and `policy_criteria` (policy defaults)76- Total requested units across all lines vs policy unit limits77- If all required criteria are `met` → `approve` / `nurse_approval`78- If any criterion is `not_met` with `result_if_missing = deny` → `deny` / `medical_director_review`79- Authorization object: take `auth_number`, `approved_units`, date ranges, CPTs (sorted ascending), and modifier from the existing authorization record8081### Pharmacy Appeal + Assistance82- Appeal routing: `standard_internal` (30-day deadline from denial) or `expedited_internal` (shorter deadline, requires attestation)83- Documented failures: medications with `documented = 1` in drug trials → alphabetical order84- Undocumented/insufficient failures: medications with `documented = 0` or missing fill records → alphabetical order85- Assistance status: `eligible_ready` (all fields present), `eligible_missing_information` (fields missing), `not_eligible`, `not_applicable`86- Next action: `request_more_information` when both appeal evidence and assistance info have gaps; `file_appeal` when appeal packet is complete but assistance is separate8788### Payment Integrity (Claim Repricing)89- Match claim lines to current benchmark rates by: plan_type, service_domain, cpt_code, modifier, and effective date range90- Stale source = the benchmark with an earlier effective_end that was used for the original payment91- `correct_allowed_amount` per line = benchmark `allowed_amount` × line `units`92- `recovery_amount` = `correct_allowed_amount` − `paid_amount` (positive for underpayments)93- Claim-level totals are sums across all lines94- Disposition per line: `correct_upward` (underpaid), `correct_downward` (overpaid), `no_change`, `deny_line`95- `resubmission_route`: `payment_integrity_correction` for standard corrections9697### Peer-to-Peer Final Summary98- P2P outcome: `overturn_to_approval` (new clinical info changed the review) or `uphold_intended_adverse_decision` (no new patient-specific info)99- `new_information_changed_review`: `true` only when the P2P supplies patient-specific clinical facts that materially alter the criteria assessment; generic arguments about modality quality do not qualify100- Unresolved criteria are those that remain `not_met` after the P2P101- `recommended_alternative`: `SPECT MPI` when PET is denied for missing PET-over-SPECT factors; `PET MPI` when SPECT was denied and PET factors are met; `none` otherwise102- **Internal appeal deadline**: calculated from the final adverse determination date (the P2P completion date when the P2P upholds denial) using the plan's stated appeal window (e.g., 180 calendar days)103104### Margin Queue Analysis105- `total_cost` = `variable_cost` + `fixed_cost_allocated` (as defined in the task's finance memo)106- `revenue_to_cost_ratio` = `net_revenue` / `total_cost`107- `margin` = `net_revenue` − `total_cost`108- `below_threshold` = ratio < task-specified threshold109- Recommended actions: `payer_contract_review` (below threshold), `monitor_charge_sensitive` (above threshold but charge-sensitive), `monitor_no_action` (above threshold, not charge-sensitive)110- `top_issue`: the below-threshold row with format `{segment}_{cpt_code}`; use `none` if no rows are below threshold111- `gap_to_120pct`: `(threshold × total_cost) − net_revenue` for the top issue112- Aggregate segments alphabetically113114## Numeric Precision115- Currency: round to 2 decimal places (cents)116- Ratios: round to 4 decimal places117- Integer fields (units, visits): use whole integers118- Dates: ISO 8601 `YYYY-MM-DD` format; use `null` for absent modifiers (not empty string)119120## Answer Construction Checklist1211. Read the task prompt and identify the task type, target ID(s), reporting date, and requester role1222. Fetch the primary case/appeal/claim via `GET /api/cases/{id}`1233. Fetch supporting records (policy, rate schedules, appeals list) as needed1244. Map every required field from the answer template to an environment record1255. Classify documents into evidence vs excluded1266. Select the correct `source_precedence` rule for the task type1277. Build `basis_audit`: controlling records first, then exception records, in the correct priority order1288. Compute all numeric values using the precision rules above1299. Sort lists according to their specified ordering rules13010. Return exactly one JSON object matching the answer template — no markdown, no prose outside the JSON