This page describes the anesthesia alerts your team meets most often. It groups them by topic: medical direction and TEFRA, physical status and MAC modifiers, anesthesia time, procedure billing, claim building, relief and handover, and post-operative pain rounds. It does not list every anesthesia alert. The last section names the alerts this release retires.

Every alert carries a type, a severity from 1 to 10, and a suggested reviewer role. Read [How Alerts Reach Your Workflow](/auto-coding/alerts-and-review/how-alerts-reach-your-workflow) for what the types and severities mean.

## Medical direction and TEFRA

These alerts cover Medicare medical direction billing and the seven CMS TEFRA requirements.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| TEFRA requirements met | `tefra_all_requirements_met` | INFORMATIONAL | 2 | Every TEFRA element your facility enforces is documented. An element your facility disabled reports as excluded. This is a confirmation. No action is needed. |
| TEFRA requirements not met | `tefra_requirements_unmet` | Set by configuration (shipped default COMPLIANCE) | Set by configuration (shipped default 8) | One or more of the seven requirements are not documented. The alert names each unmet requirement. Read the record for evidence, then follow your facility's TEFRA protocol. Note: some facility elections resolve unmet requirements automatically (for example, drop to non-directed CRNA billing) and raise NO alert at all. If you never see this alert, confirm your election with your Hank representative rather than assuming requirements always pass. |
| No provider times documented | `med_dir_no_provider_times` | HARDSTOP | 9 | The autocoder found providers on the case, but none of them have start and end times. Medical direction modifiers need provider times. Add times for at least one provider. |
| Provider times inferred from case events | `provider_times_inferred_from_case_events` | COMPLIANCE | 4 | A solo provider has no staff times, so the autocoder used the case event times instead. Confirm the provider was present for the whole case. |
| CRNA billing non-directed (QZ) | `med_dir_crna_alone_qz` | INFORMATIONAL | 3 | A CRNA is the only provider on the case, and your facility allows non-directed billing. The autocoder applies QZ. Confirm the CRNA worked without physician direction. |
| OR schedule role overrides the chart | `schedule_provider_role_conflict` | FINANCIAL | 5 | Your OR schedule states one role for a provider (for example DO), but the chart reads as a different role (for example CRNA) for the same person. The claim bills under the schedule's role, name, and NPI, and the payment modifier follows the schedule's role. Confirm which source is right: if the schedule entry is wrong, correct the role on the claim; if a scanned form misfiled the provider, no change is needed. |
| Medical direction modifier mismatch | `meddir_qk_qx_mismatch` | HARDSTOP | 8 | The count of QK modifiers does not match the count of QX modifiers. Proper medical direction pairs them one to one. Check each physician line against its CRNA line. |
| Medical direction exceeds 4:1 ratio | `meddir_exceeds_4_to_1` | HARDSTOP | 9 | This claim carries more than four QK modifiers. CMS limits medical direction to four concurrent cases per physician. The check counts the QK modifiers on this one claim. The autocoder tracks no concurrency across cases. Verify the provider assignments on the claim. |
| Direction modifiers without medical direction | `meddir_modifiers_not_requested` | HARDSTOP | 8 | QK or QX modifiers are present, but medical direction was not requested for this case. Either enable medical direction or remove the modifiers. |
| CRNA has AA modifier | `crna_has_aa_modifier` | HARDSTOP | 8 | A CRNA line carries AA, which means the anesthesiologist personally performed the service. A CRNA cannot use AA. Change it to QZ or QX. |

## Physical status and MAC modifiers

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| ASA physical status modifier missing | `asa_modifier_missing` | FINANCIAL | 6 | The note documents an ASA physical status, but the matching P-modifier is not on the claim. P3 and above add base units, so this can cost revenue. Add the correct P-modifier. |
| ASA physical status modifier mismatch | `asa_modifier_mismatch` | HARDSTOP | 7 | The P-modifier on the claim does not match the status in the note. Compare the two and correct the modifier to match the record. |
| Physical status P3 or higher without comorbidity | `physical_status_unsupported` | FINANCIAL | 5 | The claim bills P3, P4, or P5, but no supporting comorbidity diagnosis is coded. Add the supporting diagnosis if the chart documents one. Otherwise lower the physical status. |
| Physical status modifier removed per facility configuration | `asa_p_modifier_stripped_by_policy` | INFORMATIONAL | 2 | Your facility turns physical status modifiers off, and the coding step still placed a P1 to P6 value on a line. The autocoder removed it from every line and recorded what it removed. When the record documents an ASA physical status, that status stays on the claim. When it does not, the alert says so. No action for billing. |
| Physical status modifier present although the facility disables them | `asa_p_modifier_policy_violation` | FINANCIAL | 5 | Your facility turns physical status modifiers off, and a P1 to P6 modifier was still on a line at validation. The final modifier pass removes the modifier and this alert. If you ever see this alert on a finished claim, that pass did not run. Report the case. |
| Physical status modifier without a documented ASA status | `asa_modifier_without_documented_status` | FINANCIAL | 5 | A P1 to P6 modifier is on an anesthesia line, but no ASA physical status was found in the record. Confirm the ASA status in the chart; remove the modifier when the status is not documented. |
| MAC modifier missing | `mac_modifier_missing` | FINANCIAL | 6 | The record documents Monitored Anesthesia Care, but no QS, G8, or G9 modifier is on the claim. Add the correct MAC modifier. QS is the default. |
| MAC modifier on a low-trust source | `mac_modifier_low_trust` | HARDSTOP | 7 | A MAC modifier was suppressed because MAC is supported only by the surgeon note, or because the anesthesia record gives no reading of the anesthesia type at all. Confirm the type from the anesthesia record. If the record documents MAC, add QS back. |
| G9 without severe cardiopulmonary condition | `g9_modifier_unsupported` | FINANCIAL | 6 | The claim carries G9, but no severe circulatory or respiratory diagnosis supports it. Verify the condition is documented and coded. If it is not, use QS instead. |
| PT modifier removed from 00813 | `gi_00813_pt_stripped` | INFORMATIONAL | 2 | The claim uses the combined GI endoscopy code 00813, and the autocoder removed the PT modifier because the payer is not on your exception list. No action is needed in the usual case. |

## Anesthesia time

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Anesthesia line item has no times | `anes_time_no_times` | HARDSTOP | 10 | A time-billed anesthesia line has no start or stop time. Time-based billing cannot calculate units. Find the times in the anesthesia record and enter them. |
| Anesthesia type documented but no times found | `anes_type_no_time_ranges` | HARDSTOP | 10 | The note documents an anesthesia type, but the claim carries no anesthesia time range. Locate the start and stop times in the anesthesia record. |
| Anesthesia time exceeds 24 hours | `anes_time_exceeds_24_hours` | HARDSTOP | 8 | The calculated duration is more than 24 hours. Verify the times. If the case truly ran that long, confirm the record supports it. |
| Time overlap between procedures | `concurrent_time_overlap` | FINANCIAL | 7 | Two time-billed procedures on this claim have overlapping time ranges. The check reads one claim only. Decide whether the procedures truly overlapped, or whether one belongs in the non-billable list. |
| Anesthesia times from handwritten notes only | `handwritten_time_source` | HARDSTOP | 5 | The times came only from handwritten documents, with no typed source to confirm them. Compare the extracted times against the handwritten record. |
| End time estimated from case events | `anes_end_time_fallback_used` | INFORMATIONAL | 1 | The autocoder found no explicit anesthesia end time, so it used a case event such as extubation. Confirm the estimated end time is reasonable. |

## Procedure billing

These alerts come from your facility's procedure billing rules. Your facility configuration controls each one. Contact your Hank representative to change it.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Ultrasound 76937 image storage not documented | `ultrasound_76937_no_storage_documented` | COMPLIANCE | 7 | Ultrasound-guided vascular access was performed, but the note does not mention stored images. Check PACS for the images. |
| Ultrasound 76942 image storage not documented | `ultrasound_76942_no_storage_documented` | COMPLIANCE | 7 | Ultrasound guidance for needle placement was performed, but the note does not mention stored images. Check PACS for the images. |
| OB case review required | `ob_case_review` | HARDSTOP | 2 | The primary anesthesia code is an obstetric code (01958-01969). See [OB Case Review Alert](/auto-coding/alerts-and-review/ob-case-review) for the full check list. |
| Neuraxial procedure without times | `neuraxial_without_times` | INFORMATIONAL (configurable) | 4 (configurable) | An epidural or spinal was coded with no procedure times. Decide whether the service bills as time or as a flat fee. Add the times if it bills as time. |
| Qualifying-circumstance add-on coded | `qc_addon_review` | FINANCIAL | 5 | The claim bills 99116 or 99135. Verify the record documents deliberate total body hypothermia (99116) or deliberate controlled hypotension (99135) as an anesthetic technique. The cooling and the low blood pressure that come with cardiopulmonary bypass are not the same thing, and they do not support these codes. |
| Date of service over 1 year old | `anes_dos_age_warning` | HARDSTOP | 10 | The date of service is more than one year in the past. Verify the date is correct. |
| 99140 billed on weak emergency evidence | `emergent_weak_evidence` | FINANCIAL | 5 | Off by default. Your organization can turn this rule on. With the rule on, the alert appears when 99140 bills but the cited documentation shows neither a physical status with the E suffix nor a statement that a delay in treatment would significantly increase the threat to life or body part. Read the record, then confirm the emergency or remove 99140. Handwritten-only records raise the handwritten emergency-status alert instead. |
| Post-op pain block documentation missing | `postop_block_doc_evidence_missing` | COMPLIANCE | 7 | A nerve block for post-operative pain bills as a separate flat fee, and the payer requires documentation the record scan could not find. The alert names the payer and the missing elements. Locate them in the orders, consents, or consult notes. |

## Claim building and code selection

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| No anesthesia CPT code found | `anes_no_cpt_code` | HARDSTOP | 10 | The autocoder could not determine an anesthesia code for the case. Review the surgical procedure and assign the correct anesthesia code. |
| No anesthesia line item in final claim | `no_primary_anes_line_item` | HARDSTOP | 10 | The finished claim carries no anesthesia line. This catches cases where a line was produced and then removed by later cleanup. Confirm from the record whether the case should bill anesthesia. Labor epidural 01967 counts as a valid anesthesia line. |
| Primary diagnosis not attested | `primary_icd_not_attested` | HARDSTOP | 7 | The primary diagnosis is not stated in the record as the reason for the procedure. The alert names the source it came from. Open the chart and confirm a note attests the diagnosis. Do not bill on a problem list or history entry alone. |
| Planned procedure not coded | `planned_procedure_missing_line_item` | FINANCIAL | 8 | The record mentions a planned procedure, such as a nerve block or central line, but no matching code is on the claim. Decide whether the procedure was performed, then add the code. |
| Discontinuous anesthesia times | `discontinuous_times` | See the alert | See the alert | The anesthesia times on the record have a gap, and the facility rule for discontinuous time applied. Confirm the documented start and stop times. |
| Patient date of birth after the date of service | `patient_dob_after_dos` | HARDSTOP | 8 | The patient's date of birth is later than the date of service. The demographics cannot both be right. Every date-anchored rule on the claim depends on them, including the extreme-age add-on and the code year. Correct the demographics, then reprocess the claim. The autocoder also withholds 99100 while this alert stands. This alert fires on every specialty. |
| Extreme-age add-on 99100 not verified | `extreme_age_99100_unverified` | FINANCIAL | 6 | You see this alert only when your organization turns off the required-field check for the value that is missing: the patient date of birth, or the date of service. The autocoder could not verify the age on the date of service, so it moved 99100 to the bundled list. Locate the missing value and reprocess the claim. With that required-field check on, the missing-field alert asks for the same value, and this alert stays silent. |
| Qualifying circumstance configuration is malformed | `qc_config_fault` | FINANCIAL | 5 | The facility qualifying circumstance settings could not be read as written, so the autocoder applied a fallback posture to 99100, 99116, 99135, and 99140 on this claim. The alert names each fault and the posture it applied. Confirm the codes for this payer and have the configuration fixed. |
| Upper and lower GI codes combined to 00813 | `gi_codes_combined_00813` | INFORMATIONAL | 2 | The case documented both an upper endoscopy (00731) and a lower endoscopy (00811 or 00812), so the autocoder combined them into 00813. Confirm both procedures were performed. |
| OB add-on code without 01967 primary | `ob_addon_without_primary` | HARDSTOP | 9 | The claim bills 01968 or 01969 with no 01967 primary line. An add-on cannot bill alone. Add the 01967 line, or recode the case with the standalone cesarean code. |
| Surgical code has no anesthesia crosswalk | `anes_crosswalk_gap_review` | FINANCIAL | 6 | A surgical code on the case has no billable anesthesia code mapped to it, and it may outweigh the mapped procedures. Compare the selected anesthesia code against the dominant documented procedure, then check the base units. |
| Removed duplicate ancillary line item | `anes_duplicate_ancillary_line_removed` | INFORMATIONAL | 2 | An exact duplicate of a supporting procedure line (same code, modifiers, diagnoses, documentation, and times) was removed to the non-billed list. Confirm whether a second procedure really occurred. Bilateral pairs with LT/RT modifiers are not affected. |
| Diagnosis added after claim cleaning was removed from a block line | `anes_nerve_block_line_icds_scrubbed` | INFORMATIONAL | 2 | Claim cleaning added one or more diagnoses to a nerve block line, or to the ultrasound guidance line that goes with it, and the autocoder removed them again. A block line carries only the diagnoses documented for the block itself, normally the post-procedural pain code. The alert names the removed codes and the codes the line kept. This is rare. Confirm that none of the removed codes is the correct indication for the block, and tell your coding lead if one of them is. |
| Header diagnosis code removed | `icd_non_billable_stripped` | INFORMATIONAL | 3 | A diagnosis code that is a category header, and not billable on its own, was removed from a line. The alert names the code and its billable child codes. Add the correct child code from the record. This alert fires on every specialty. |

## Relief and handover

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Line item segmented for relief or handover | `relief_line_segmented` | INFORMATIONAL | 2 | A provider change happened during the case, so the autocoder split the anesthesia line into one segment per attending. Check the splits against the documented handover times. |

## Post-operative pain rounds

An acute pain service round is a visit made on a day after surgery to manage the patient's post-operative pain. Customers often send the whole record for these visits, which includes the original surgery documentation. The autocoder codes the round visit, not the surgery.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Post-op pain rounds review gate | `postop_pain_rounds_review_gate` | HARDSTOP | 7 | Your facility can turn the pain-rounds review gate off. It is on by default. With the shipped scope, the alert appears on every claim from a packet where pain-round content was detected, including a packet the rounds lane did not code. Compare the coded service against the round documentation. |
| Possible pain-round packet coded as surgery | `postop_pain_round_ambiguous` | HARDSTOP | 10 | The packet carries some pain-round signals, but not enough to route it as a round, so it coded as a normal anesthesia encounter. Decide which encounter the packet represents. |
| No billable pain-round service | `postop_pain_round_not_billable` | HARDSTOP | 8 | The record does not support a separately billable round. The alert names the exact criterion that failed. Read the criterion, then obtain an addendum if the documentation was unclear. |
| Surgeon transfer of pain management not documented | `postop_pain_round_transfer_undocumented` | COMPLIANCE | 7 | The record does not document the surgeon's request or transfer of post-operative pain management. Confirm a documented request exists. |

## Automated claim validation

HANK CODES runs every finished claim through automated claim validation. The validation service checks NCCI procedure pairs, add-on code rules, Medicare payment rules, coverage articles, code validity for the date of service, and diagnosis conventions. It fixes what it can fix safely. The autocoder applies those fixes and tells you what changed.

The two tables below cover both halves: what the validation service CHANGED, and what it ASKED that the autocoder did not change on its own.

### What the validation service changed

These alerts appear when automated validation changed the claim. Each alert now ends with the rule that drove the change, in the form `Reason: {rule text} [{rule id}]`. Read that rule first. It tells you which payment rule or coding convention produced the change.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Anesthesia code changed | `claimcleaner_anes_code_changed` | COMPLIANCE | 10 | Validation replaced an anesthesia code that was already on the line. Compare the original and the new code against the documented procedure. Accept the change when the record supports it. |
| Diagnosis added | `claimcleaner_icd_added` | COMPLIANCE | 8 | Validation added a diagnosis the claim did not carry, usually a required companion diagnosis. Confirm the record documents it. Remove it when the record does not. |
| Modifier added to an anesthesia code | `claimcleaner_modifier_added_anes` | The rule decides | The rule decides | Validation added a modifier to an anesthesia line. A routine modifier (59, 26, TC, XE, XS, XP or XU) is a note only. Any other modifier is a compliance question. Read the stated rule, then confirm the record supports what the modifier asserts. |
| Modifier added to a surgical code | `claimcleaner_modifier_added_surg` | The rule decides | The rule decides | Validation added a modifier to a surgical line. The routine modifiers above are a note only. Any other modifier is a compliance question. Read the stated rule and confirm the record. |
| No code left after the changes were applied | `claimcleaner_line_removed` | INFORMATIONAL | 3 | The autocoder applied validation's changes and the line ended with no valid code, so the line moved to the bundled list. The trigger is the state of the line AFTER the changes. The alert names the original codes and the rule. Restore the line only when you disagree with the rule and the record supports the service. |
| Validation returned the line with no codes | `claimcleaner_line_deleted` | INFORMATIONAL | 3 | Validation itself returned the line empty, so the line moved to the bundled list. The trigger is what validation SENT BACK, not what the autocoder computed afterward. The alert names the removed codes and the rule. |

The two alerts above answer different questions, so a line that validation cleared can raise both at once: validation sent the line back empty, and the line then ended with no code. Read them as one removal, not two.

### What the validation service asked

These ten alerts are questions. They appear when validation found a problem and the autocoder did NOT apply a fix, because the answer needs the record, not a rule. Each alert reads `ClaimCleaner:` then the rule's own explanation and its rule id in square brackets.

An alert appears only when all five of these conditions are true. The rule is on the autocoder's review list. The rule's own classification is not Informational. The fix was not applied to the claim. The line is still billable on the finished claim. The diagnosis problem that the finding names is still on the finished claim.

Validation runs before the claim-wide diagnosis check. That check can replace or remove a diagnosis, so the autocoder checks each finding again against the finished claim.

For an Excludes1 pair, the alert stays while the diagnosis that carries the Excludes1 note, or another code under the same note, is still billed together with a diagnosis from the note's family. The two diagnoses can be on different lines. If the check replaces the diagnosis that carries the note with another code under the same note, or replaces the other diagnosis with another code from the note's family, the alert stays, because the conflict is still on the claim. The alert then also names the pair that the claim bills now. When the diagnosis check leaves two findings on the same pair of billed diagnoses, or two conflicts land on one line, you get one alert that names each pair. Conflicts on different lines raise one alert each.

When the autocoder cannot read the note from the finding, it checks the two named diagnoses instead, and a replacement or removal of either one removes the alert. For the other diagnosis findings, the alert stays while the named diagnosis is on the claim. A finding about a diagnosis that is missing, for example no diagnosis for the side billed or no diagnosis that a coverage article covers, stays, because the autocoder cannot tell whether a diagnosis added later qualifies.

If the autocoder later moves the line out of billing, or the diagnosis problem that the finding names is no longer on the finished claim, it removes the alert again. The finding stays recorded on the claim. A finding that names no diagnosis, for example a procedure pair or a units limit, is not affected by this condition.

One case is an exception to the diagnosis condition. When the claim-wide diagnosis check could not decide between the two diagnoses of an Excludes1 pair, it keeps the better-documented diagnosis and removes the other. The alert still appears, and it names the diagnosis kept and the diagnosis removed.

One rule is an exception to the Informational condition. Validation reduces units that exceed the absolute date-of-service limit, and it marks that finding Informational because it made the reduction itself. The autocoder never changes units, so the line still bills the original units and the alert still appears.

The type and the severity of nine of these alerts come from the rule, not from the autocoder. Every rule in this set classifies as Compliance today. The alert carries the rule's own classification, so a future validation rule could arrive as Financial. The units alert for a single line over the absolute limit is Compliance, severity 5, set by the autocoder.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Diagnosis convention conflict | `claimcleaner_finding_icd_conflict` | The finding's classification | The finding's severity | Two diagnoses on the finished claim break an ICD-10-CM Excludes1 note. The two diagnoses can be on different lines. When the claim-wide diagnosis check could not decide between the two, it keeps the better-documented diagnosis, and the alert names the diagnosis kept and the diagnosis removed. When the check replaced one diagnosis of the pair and the conflict is still on the claim, the alert also names the pair that the claim bills now, for example "The claim now bills K83.1 with K80.51." Use that pair for the steps that follow. If one combination code describes both conditions, bill that code alone. If the record supports only one diagnosis, remove the other. Keep both only when the record states that the two conditions are not related. Validation also checks other diagnosis conventions. Those findings are recorded on the claim and do not raise this alert. |
| Add-on code without its primary | `claimcleaner_finding_ncci_aoc` | The finding's classification | The finding's severity | The claim bills a CMS type-1 add-on code and carries none of the primary codes CMS requires with it. Add the primary procedure when the record documents it. Otherwise remove the add-on. |
| Age or sex conflicts with the code | `claimcleaner_finding_demographic` | The finding's classification | The finding's severity | The patient age or sex conflicts with a billed diagnosis or procedure. Confirm the patient demographics in the record first, then confirm the code. Correct whichever one the record contradicts. |
| Side modifier disagrees with the diagnosis | `claimcleaner_finding_pfs` | The finding's classification | The finding's severity | A laterality modifier and the diagnoses on the line name different sides, modifier 50 sits beside LT or RT, or no diagnosis supports the side billed. Read the operative record for the side of service, then make the modifier and the diagnosis agree. |
| Evaluation and management modifier against a global period | `claimcleaner_finding_global_period` | The finding's classification | The finding's severity | Modifier 57 sits on a procedure with no major global period, modifier 25 is used against a 90-day package, or an office visit accompanies a major procedure with no decision-for-surgery statement. Read the record, then apply modifier 24, 25 or 57 to match it, or remove the modifier. |
| NCCI procedure pair | `claimcleaner_finding_ncci_ptp` | The finding's classification | The finding's severity | Two codes on the claim form an NCCI procedure-to-procedure pair and the autocoder did not apply the bypass. Bill both codes only when the record documents a distinct service. Otherwise keep the column-one code alone. |
| Coverage article disagrees with the diagnosis | `claimcleaner_finding_coverage` | The finding's classification | The finding's severity | A Medicare coverage article for the billed procedure lists no diagnosis on this claim, or states that the billed diagnosis does not support medical necessity. Look for a covered diagnosis in the record. Otherwise follow your advance beneficiary notice procedure. |
| Code not valid for the date of service | `claimcleaner_finding_active_code` | The finding's classification | The finding's severity | Validation reads a billed code as invalid for the date of service and the autocoder does not agree. Confirm the date of service first, then confirm the code in the code set for that year. Replace a deleted code with its successor. |
| Anesthesia code suggested but not billed | `claimcleaner_finding_asa_crosswalk` | The finding's classification | The finding's severity | Validation suggests an anesthesia code that maps to a billed surgical code, and the claim does not carry it. Compare the suggested code against the documented procedure. The autocoder never adopts a suggested anesthesia code on its own. |
| Units over the medically unlikely edit | `claimcleaner_finding_ncci_mue` | COMPLIANCE | 5 | The units billed for a code exceed its NCCI Medically Unlikely Edit, and the autocoder did not change the units. Read the units the record documents. Bill extra units on separate lines with a supporting modifier only when the edit allows it. Otherwise reduce the units to the limit. |

Your organization can silence one family or all ten, and can send a family to a different reviewer role. Ask your Hank representative for the two review-alert routing settings, `claimValidation.suppressedHreIds` and `claimValidation.hreReviewerRoleOverrides`. A silenced alert still appears as an informational note, and the finding stays recorded on the claim either way.

What happens next depends on how your organization consumes HANK CODES. In HANK Claim Maker, a COMPLIANCE or FINANCIAL alert places the claim in the review queue your administrators configured for that type. Organizations that consume the coding API directly decide in their own workflow which alerts pause a claim, who reviews them, and when a claim is released.

## Alerts that apply to every specialty

Two more families fire on anesthesia cases and on every other specialty. Patient and claim information alerts fire when the date of service, the patient name, the insurance, or a provider NPI is missing or invalid. Coding confidence alerts fire when the autocoder is less certain than the configured threshold. The shipped anesthesia thresholds are 85 percent for a primary anesthesia code, and 80 percent for surgical codes, diagnoses, and modifiers. Extracted start and stop times use 95 percent. They behave the same way on every specialty; ask your Hank representative for the full catalog of shared alerts.

## Configuration alerts

These alerts fire when your facility configuration cannot be read. They are not about the record.

| Alert | Alert id | Type | Sev | When it fires and what to verify |
|---|---|---|---|---|
| Processing rules could not be read | `processing_rules_parse_failed` | HARDSTOP | 9 | The facility processing rules configuration failed to parse, so no bundling rule, billing flag, or rule-driven alert was applied to this claim. Fix the configuration and reprocess the claim. The alert names the field and the error kind. |
| Qualifying circumstance codes suppressed to nothing | `qc_suppression_emptied_claim` | See the alert | See the alert | Payer-class suppression removed every billable line from the claim. Review the payer class and the qualifying circumstance settings. |

## Retired alerts

The September 2026 release retires five qualifying-circumstance alerts. The autocoder makes the same decision as before. It records the decision on the claim instead of asking a coder to confirm work it already verified. A claim coded before your organization takes that release can still carry them.

| Retired alert id | What the claim shows now |
|---|---|
| `extreme_age_99100_billed` | The billed 99100 line carries the verdict in its rationale. The rationale opens with "Extreme age verified on the date of service", then names the date of service and the exact age the rule used, for example "70 years 1 day". |
| `extreme_age_99100_not_qualified` | The 99100 entry sits in the bundled procedures. Its reason states the age on the date of service and the criteria the patient missed. |
| `extreme_age_99100_base_code_excluded` | The 99100 entry sits in the bundled procedures. Its reason names the anesthesia code (00326, 00561, 00834, or 00836) that already describes a patient younger than 1 year. |
| `medicare_qualifying_circumstances_bundled` | Each add-on sits in the bundled procedures. Its reason names Medicare as the payer class that bundles the code. |
| `qualifying_circumstances_bundled` | Each add-on sits in the bundled procedures. Its reason names the payer class your configuration listed. |

If your team used the extreme-age alert as a prompt to check patient demographics, your organization can ask for an alert on every 99100 or every 99140 instead. See [Qualifying Circumstance Codes](/auto-coding/coding-reference/qualifying-circumstance-codes) for the setting.

## How these alerts reach you

What happens next depends on how your organization consumes HANK CODES. In HANK Claim Maker, a HARDSTOP alert places the claim in the review queue your administrators configured for it. Organizations that consume the coding API directly decide in their own workflow which alerts pause a claim, who reviews them, and when a claim is released.
