Understanding how insurance estimates are calculated

Dentrix Ascend calculates insurance portions, write-off adjustments, and patient portions automatically. The explanation that follows covers estimates for primary and secondary plans. The same rules and calculations that apply to secondary plans apply to plans for other coverage orders (tertiary, quaternary, and so forth); however, the calculations are not performed automatically.

The commercial insurance plans that Dentrix Ascend supports are PPO (Preferred Provider Organization), DHMO (Dental Health Maintenance Organization), and indemnity.

Notes:

  • Before calculating insurance estimates for procedures posted on the current date, Dentrix Ascend takes into account any pending primary and secondary claims (in the order they were sent, and claims with the highest total billed amount being handled first) for the patient, the subscriber of the patient's plan (if not the same person), and any other dependents on the plan. However, insurance estimates do not take into account a tertiary plan unless a claim for that plan is attached to a secondary claim; likewise, estimates do not take into account a quaternary plan unless a claim for that plan is attached to a tertiary claim; and so forth.

  • Dentrix Ascend processes procedures being billed to insurance chronologically (oldest to newest, by procedure dates), by descending procedure predetermination or override amounts (largest to smallest), and then by descending procedure amounts (largest to smallest).

  • When calculating estimates for an insurance payment, Dentrix Ascend processes only the procedures associated with the current claim. The maximums and deductibles are calculated as if the current claim is the next one to be paid.

  • For Dentrix Ascend to calculate estimates for procedures posted on the current date, the patient must have an active primary insurance plan with coverage dates that include the dates of those posted procedures.

  • Estimates include procedures posted on the current date and prior, even if those procedures are not attached to a claim.

  • The deductible type for multiple procedures posted on the same date is determined by the first procedure.

  • The billing provider, which is determined by the insurance defaults, may be different from the provider who is associated with a procedure.

  • Patient payments and credit adjustments that are applied to procedures reduce the estimated patient portion. Insurance payments that are less than what is expected to be paid reduce the estimated insurance portion and increase the estimated patient portion. Partial insurance payments (more is expected to be paid) reduce the estimated insurance portion.

 

Estimates for a patient's primary or only insurance plan

 

Do the following:

  1. Calculate the Write-off.

    Terms

    W

    Write-off

    Aproc

    Amount Charged (the procedure's Amount)

    Amax

    Max Allowable Amount (from the plan's Max allowable amount fee schedule)

    Apay

    Payment Table Amount (from the Amount column in the plan's payment table)

    Cpat

    Patient Copay (from the Copayment $ column in the plan's coverage table)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do one of the following:

      • If the billing provider is contracted with the carrier, do one of the following:

        • If a procedure is listed in the payment table, take the greater of Amax and Apay, subtract that greater amount from Aproc, and then set W equal to that difference unless that difference is less than zero, in which case, set W equal to zero.

          W = max (0 ; Aproc - max (Amax ; Apay))

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments ($), take the greater of Amax and Cpat, subtract that greater amount from Aproc, and then set W equal to that difference unless that difference is less than zero, in which case, set W equal to zero.

            W = max (0 ; Aproc - max (Amax ; Cpat))

          • For a coverage table based on insurance coverage percentages (%), subtract Amax from Aproc, and then set Wpri equal to that difference unless that difference is less than zero, in which case, set Wpri equal to zero.

            W = max (0 ; Aproc - Amax)

      • If the billing provider is not contracted with the carrier, set W equal to zero.

        W = 0

    • If a Max allowable amount fee schedule is not selected for the plan, there is not a Write-off, so set W equal to zero.

      W = 0

  2. Calculate the Remaining Deductible.

    Term

    Drem

    Remaining Deductible

    Note: No value or a zero (0) for a required deductible both indicate that no deductible is required.

    1. Do one of the following:

      • For an orthodontic procedure, do the following:

        1. Calculate the Remaining Annual Individual Ortho Deductible:

          Terms

          AIODreq

          Required Annual Individual Ortho Deductible

          AIODmet

          Met Annual Individual Ortho Deductible

          AIODrem

          Remaining Annual Individual Ortho Deductible

          • If AIODreq has no value, then AIODrem = 0

          • If AIODreq = 0, then AIODrem = 0

          • If AIODreq > 0, then AIODrem = AIODreq - AIODmet

        2. Set the Remaining Deductible (Drem) equal to the Remaining Annual Individual Ortho Deductible (AIODrem).

          Drem = AIODrem

      • For a non-orthodontic procedure, do the following:

        1. For the Lifetime Individual Deductible, calculate the Remaining Lifetime Individual Deductible:

          Terms

          LIDreq

          Required Lifetime Individual Deductible

          LIDmet

          Met Lifetime Individual Deductible

          LIDrem

          Remaining Lifetime Individual Deductible

          • If LIDreq has no value, then LIDrem = 0

          • If LIDreq = 0, then LIDrem = 0

          • If LIDreq > 0, then LIDrem = LIDreq - LIDmet

        2. For the Annual Family Deductible, calculate the Remaining Annual Family Deductible:

          Terms

          AFDreq

          Required Annual Family Deductible

          AFDmet

          Met Annual Family Deductible

          AFDrem

          Remaining Annual Family Deductible

          • If AFDreq has no value, then AFDrem = 0

          • If AFDreq = 0, then AFDrem = 0

          • If AFDreq > 0, then AFDrem = AFDreq - AFDmet

        3. For the Annual Individual Deductible, calculate the Remaining Annual Individual Deductible:

          Terms

          AIDreq

          Required Annual Individual Deductible

          AIDmet

          Met Annual Individual Deductible

          AIDrem

          Remaining Annual Individual Deductible

          • If AIDreq has no value, then AIDrem = 0

          • If AIDreq = 0, then AIDrem = 0

          • If AIDreq > 0, then AIDrem = AIDreq - AIDmet

        4. Calculate the Remaining Deductible. Take the lesser of LIDrem, AFDrem, and AIDrem, and set Drem equal to that lesser amount.

          Drem = min (LIDrem ; AFDrem ; AIDrem)

  3. Calculate the Insurance Portion.

    Terms

    I

    Insurance Portion

    Aproc

    Amount Charged (the procedure's Amount)

    Amax

    Max Allowable Amount (from the plan's Max allowable amount fee schedule)

    Amin

    Min Allowable Amount

    Apay

    Payment Table Amount (from the Amount column in the plan's payment table)

    Cpat

    Patient Copay (from the Copayment $ column in the plan's coverage table)

    Cins

    Insurance Coverage Percentage (from the Coverage % column in the plan's coverage table)

    Cexc

    Patient Copay Exception or Insurance Coverage Exception (any applicable exceptions, as indicated in the EXC column, in the plan's coverage table)

    Oins

    Insurance Estimate Override (from the procedure's Insurance Estimate Overrides; entered and locked automatically, or entered manually)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do the following:

      1. Calculate the Min Allowable. Because the calculations for the Insurance Portion require that Amax not exceed Aproc, take the lesser of Aproc and Amax, and then set Amin equal to that lesser amount.

        Amin = min (Aproc ; Amax)

      2. Calculate the Insurance Portion. Do one of the following:

        • Without an Insurance Estimate Override, do one of the following:

          • If a procedure is listed in the payment table, take the greater of Amin and Apay, and then set I equal to that greater amount.

            I = max (Amin ; Apay)

          • If a procedure is not listed in the payment table, do one of the following:

            • For a coverage table based on patient copayments, do the following:

              1. Determine the Patient Copay. Do one of the following:

                • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the copay:

                  • Not covered. The carrier does not have a portion, so set Cpat equal to Amin.

                    Cpat = Amin

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                      Cpat = Cexc

                    • If the patient's age exceeds the specified age, use the default copay.

                      Cpat = Cpat

                  • Downgrade. Use the exception instead of the default copay.

                    Cpat = Cexc

                • If there is not an exception for the procedure in the coverage table, use the default copay.

                  Cpat = Cpat

              2. Calculate the Insurance Portion. Subtract Cpat from Amin, and then set I equal to that difference unless that difference is less than zero, in which case, set I equal to zero.

                I = max (0 ; Amin - Cpat)

            • For a coverage table based on insurance coverage percentages, do the following:

              1. Determine the Insurance Coverage Percentage. Do one of the following:

                • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the coverage:

                  • Not covered. The carrier does not have a portion, so set Cins equal to zero.

                    Cins = 0

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                      Cins = Cexc

                    • If the patient's age exceeds the specified age, use the default coverage.

                      Cins = Cins

                  • Downgrade. Use the exception instead of the default coverage.

                    Cins = Cexc

                • If there is not an exception for the procedure in the coverage table, use the default coverage.

                  Cins = Cins

              2. Calculate the Insurance Portion. Multiply Amin and Cins, and then set I equal to that product unless that product is less than zero, in which case, set I equal to zero.

                I = max (0 ; Amin x Cins)

        • With an Insurance Estimate Override, take the greater of Oins and Amin, and then set I equal to that greater amount unless that greater amount is less than zero, in which case, set I equal to zero.

          I = max (0 ; min (Oins ; Amin))

    • If a Max allowable amount fee schedule is not selected for the plan, do one of the following:

      • Without an Insurance Estimate Override, do one of the following:

        • If a procedure is listed in the payment table, set I equal to Apay.

          I = Apay

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments, do the following:

            1. Determine the Patient Copay. Do one of the following:

              • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the copay:

                • Not covered. The carrier does not have a portion, so set Cpat equal to Aproc.

                  Cpat = Aproc

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                    Cpat = Cexc

                  • If the patient's age exceeds the specified age, use the default copay.

                    Cpat = Cpat

                • Downgrade. Use the exception instead of the default copay.

                  Cpat = Cexc

              • If there is not an exception for the procedure in the coverage table, use the default copay.

                Cpat = Cpat

            2. Calculate the Insurance Portion. Subtract Cpat from Aproc, and then set I equal to that difference.

              I = Aproc - Cpat

          • For a coverage table based on insurance coverage percentages, do the following:

            1. Determine the Insurance Coverage Percentage. Do one of the following:

              • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the coverage:

                • Not covered. The carrier does not have a portion, so set Cins equal to zero.

                  Cins = 0

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                    Cins = Cexc

                  • If the patient's age exceeds the specified age, use the default coverage.

                    Cins = Cins

                • Downgrade. Use the exception instead of the default coverage.

                  Cins = Cexc

              • If there is not an exception for the procedure in the coverage table, use the default coverage.

                Cins = Cins

            2. Calculate the Insurance Portion. Multiply Aproc and Cins, and then set I equal to that product.

              I = Aproc x Cins

      • With an Insurance Estimate Override, set I equal to the override.

        I = Oins

  4. Calculate the Patient Portion.

    Terms

    P

    Patient Portion

    Aproc

    Amount Charged (the procedure's Amount)

    I

    Insurance Portion

    W

    Write-off

    Subtract I and W from Aproc, and then set P equal to that difference.

    P = Aproc - I - W

  5. Use the Remaining Deductible to adjust the Insurance Portion and the Patient Portion as needed.

    Terms

    I

    Insurance Portion

    P

    Patient Portion

    Drem

    Remaining Deductible

    Do the following:

    • Subtract Drem from I, and then set I equal to that difference.

      I = I - Drem

    • Add P and Drem, and then set P equal to that sum.

      P = P + Drem

  6. Calculate the Remaining Benefit.

    Term

    Brem

    Remaining Benefit

    Note: No value for a maximum indicates unlimited benefits; zero (0) indicates no benefits.

    Do one of the following:

    • For an orthodontic procedure, do the following:

      1. Calculate the Remaining Lifetime Ortho Benefit:

        Terms

        LOBmax

        Maximum Lifetime Ortho Benefit

        LOBused

        Used Lifetime Ortho Benefit

        LOBrem

        Remaining Lifetime Ortho Benefit

        • If LOBmax has no value, then LOBrem = 9,999,999.99

        • If LOBmax = 0, then LOBrem = 0

        • If LOBmax > 0, then LOBrem = LOBmax - LOBused

      2. Set the Remaining Benefit (Brem) equal to the Remaining Lifetime Ortho Benefit (LOBrem).

        Brem = LOBrem

    • For a non-orthodontic procedure, do the following:

      1. Calculate the Remaining Annual Individual Benefit:

        Terms

        AIBmax

        Maximum Annual Individual Benefit

        AIBused

        Used Annual Individual Benefit

        AIBrem

        Remaining Annual Individual Benefit

        • If AIBmax has no value, then AIBrem = 9,999,999.99

        • If AIBmax = 0, then AIBrem = 0

        • If AIBmax > 0, then AIBrem = AIBmax - AIBused

      2. Calculate the Remaining Annual Family Benefit:

        Terms

        AFBmax

        Maximum Annual Family Benefit

        AFBused

        Used Annual Family Benefit

        AFBrem

        Remaining Annual Family Benefit

        • If AFBmax has no value, then AFBrem = 9,999,999.99

        • If AFBmax = 0, then AFBrem = 0

        • If AFBmax > 0, then AFBrem = AFBmax - AFBused

      3. Calculate the Remaining Benefit. Take the lesser of AIBrem and AFBrem, and then set Brem equal to that lesser amount.

        Brem = min (AIBrem ; AFBrem)

  7. Use the Remaining Benefit to adjust the Insurance Portion and the Patient Portion as needed.

    Terms

    I

    Insurance Portion

    Brem

    Remaining Benefit

    P

    Patient Portion

    Bover

    Benefit Overage

    Recalculate the Insurance Portion and the Patient Portion. Do one of the following:

    • If I <= Brem, there is enough remaining benefit to cover the entire amount that is expected to be paid by the carrier.

      • The Insurance Portion does not change.

        I = I

      • The Patient Portion does not change.

        P = P

    • If I > Brem, the remaining benefits covers none or only a portion of the amount that is expected to be paid by the carrier, so do the following:

      1. Calculate the Benefit Overage.

        Bover = I - Brem

      2. Recalculate the Insurance Portion. Set I equal to Brem.

        I = Brem

      3. Recalculate the Patient Portion. Add P and Bover, and then set P equal to that sum.

        P = P + Bover

 

Estimates for dual coverage

 

Do the following:

  1. Calculate the Primary Write-off.

    Terms

    Wpri

    Primary Write-off

    Aproc

    Amount Charged (the procedure's Amount)

    AP.max

    Primary Max Allowable Amount (from the plan's Max allowable amount fee schedule)

    AP.pay

    Primary Payment Table Amount (from the Amount column in the plan's payment table)

    CP.pat

    Primary Patient Copay (from the Copayment $ column in the plan's coverage table)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do one of the following:

      • If the billing provider is contracted with the carrier, do one of the following:

        • If a procedure is listed in the payment table, take the greater of AP.max and AP.pay, subtract that greater amount from Aproc, and then set Wpri equal to that difference unless that difference is less than zero, in which case, set W equal to zero.

          Wpri = max (0 ; Aproc - max (AP.max ; AP.pay))

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments ($), take the greater of AP.max and CP.pat, subtract that from Aproc, and then set Wpri equal to that difference unless that difference is less than zero, in which case, set Wpri equal to zero.

            Wpri = max (0 ; Aproc - max (AP.max ; CP.pat))

          • For a coverage table based on insurance coverage percentages (%), subtract AP.max from Aproc, and then set Wpri equal to that difference unless that difference is less than zero, in which case, set Wpri equal to zero.

            Wpri = max (0 ; Aproc - AP.max)

      • If the billing provider is not contracted with the carrier, set Wpri equal to zero.

        Wpri = 0

    • If a Max allowable amount fee schedule is not selected for the plan, there is not a Primary Write-off, so set Wpri equal to zero.

      Wpri = 0

  2. Calculate the Secondary Write-off.

    Terms

    Wsec

    Secondary Write-off

    Aproc

    Amount Charged (the procedure's Amount)

    AS.max

    Secondary Max Allowable Amount (from the plan's Max allowable amount fee schedule)

    AS.pay

    Secondary Payment Table Amount (from the Amount column in the plan's payment table)

    CS.pat

    Secondary Patient Copay (from the Copayment $ column in the plan's coverage table)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do one of the following:

      • If the billing provider is contracted with the carrier, do one of the following:

        • If a procedure is listed in the payment table, take the greater of AS.max and AS.pay, subtract that greater amount from Aproc, and then set Wsec equal to that difference unless that difference is less than zero, in which case, set W equal to zero.

          Wsec = max (0 ; Aproc - max (AS.max ; AS.pay))

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments ($), take the greater of AS.max and CS.pat, subtract that from Aproc, and then set Wsec equal to that difference unless that difference is less than zero, in which case, set Wsec equal to zero.

            Wsec = max (0 ; Aproc - max (AS.max ; CS.pat))

          • For a coverage table based on insurance coverage percentages (%), subtract AS.max from Aproc, and then set Wsec equal to that difference unless that difference is less than zero, in which case, set Wsec equal to zero.

            Wsec = max (0 ; Aproc - AS.max)

      • If the billing provider is not contracted with the carrier, set Wsec equal to zero.

        Wsec = 0

    • If a Max allowable amount fee schedule is not selected for the plan, there is not a Secondary Write-off, so set Wsec equal to zero.

      Wsec = 0

  3. Calculate the Max Write-off.

    Terms

    Wmax

    Max Write-off

    Wpri

    Primary Write-off

    Wsec

    Secondary Write-off

    Take the greater of Wpri and Wsec, and then set Wmax equal to that greater amount.

    Wmax = max (Wpri ; Wsec)

  4. Calculate the Primary Remaining Deductible.

    Term

    DP.rem

    Primary Remaining Deductible

    Note: No value or a zero (0) for a required deductible both indicate that no deductible is required.

    1. Do one of the following:

      • For an orthodontic procedure, do the following:

        1. Calculate the Primary Remaining Annual Individual Ortho Deductible:

          Terms

          AIODP.req

          Primary Required Annual Individual Ortho Deductible

          AIODP.met

          Primary Met Annual Individual Ortho Deductible

          AIODP.rem

          Primary Remaining Annual Individual Ortho Deductible

          • If AIODP.req has no value, then AIODP.rem = 0

          • If AIODP.req = 0, then AIODP.rem = 0

          • If AIODP.req > 0, then AIODP.rem = AIODP.req - AIODP.met

        2. Set the Primary Remaining Deductible (DP.rem) equal to the Primary Remaining Annual Individual Ortho Deductible (AIODP.rem).

          DP.rem = AIODP.rem

      • For a non-orthodontic procedure, do the following:

        1. For the Lifetime Individual Deductible, calculate the Primary Remaining Lifetime Individual Deductible:

          Terms

          LIDP.req

          Primary Required Lifetime Individual Deductible

          LIDP.met

          Primary Met Lifetime Individual Deductible

          LIDP.rem

          Primary Remaining Lifetime Individual Deductible

          • If LIDP.req has no value, then LIDP.rem = 0

          • If LIDP.req = 0, then LIDP.rem = 0

          • If LIDP.req > 0, then LIDP.rem = LIDP.req - LIDP.met

        2. For the Annual Family Deductible, calculate the Primary Remaining Annual Family Deductible:

          Terms

          AFDP.req

          Primary Required Annual Family Deductible

          AFDP.met

          Primary Met Annual Family Deductible

          AFDP.rem

          Primary Remaining Annual Family Deductible

          • If AFDP.req has no value, then AFDP.rem = 0

          • If AFDP.req = 0, then AFDP.rem = 0

          • If AFDP.req > 0, then AFDP.rem = AFDP.req - AFDP.met

        3. For the Annual Individual Deductible, calculate the Primary Remaining Annual Individual Deductible:

          Terms

          AIDP.req

          Primary Required Annual Individual Deductible

          AIDP.met

          Primary Met Annual Individual Deductible

          AIDP.rem

          Primary Remaining Annual Individual Deductible

          • If AIDP.req has no value, then AIDP.rem = 0

          • If AIDP.req = 0, then AIDP.rem = 0

          • If AIDP.req > 0, then AIDP.rem = AIDP.req - AIDP.met

        4. Calculate the Primary Remaining Deductible. Take the lesser of LIDP.rem, AFDP.rem, and AIDP.rem, and set DP.rem equal to that lesser amount.

          DP.rem = min (LIDP.rem ; AFDP.rem ; AIDP.rem)

  5. Calculate the Primary Insurance Portion.

    Terms

    Ipri

    Primary Insurance Portion

    Aproc

    Amount Charged (the procedure's Amount)

    AP.max

    Primary Max Allowable Amount (from the plan's Max allowable amount fee schedule)

    AP.min

    Primary Min Allowable Amount

    AP.pay

    Primary Payment Table Amount (from the Amount column in the plan's payment table)

    CP.pat

    Primary Patient Copay (from the Copayment $ column in the plan's coverage table)

    CP.ins

    Primary Insurance Coverage Percentage (from the Coverage % column in the plan's coverage table)

    CP.exc

    Primary Patient Copay Exception or Primary Insurance Coverage Exception (any applicable exceptions, as indicated in the EXC column, in the plan's coverage table)

    OP.ins

    Primary Insurance Estimate Override (from the procedure's Insurance Estimate Overrides; entered and locked automatically, or entered manually)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do the following:

      1. Calculate the Primary Min Allowable. Because the calculations for the Primary Insurance Portion require that AP.max not exceed Aproc, take the lesser of Aproc and AP.max, and then set AP.min equal to that lesser amount.

        AP.min = min (Aproc ; AP.max)

      2. Calculate the Primary Insurance Portion. Do one of the following:

        • Without a Primary Insurance Estimate Override, do one of the following:

          • If a procedure is listed in the payment table, take the greater of AP.min and AP.pay, and then set Ipri equal to that greater amount.

            Ipri = max (AP.min ; AP.pay)

          • If a procedure is not listed in the payment table, do one of the following:

            • For a coverage table based on patient copayments, do the following:

              1. Determine the Primary Patient Copay. Do one of the following:

                • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the copay:

                  • Not covered. The carrier does not have a portion, so set CP.pat equal to AP.min.

                    CP.pat = AP.min

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                      CP.pat = CP.exc

                    • If the patient's age exceeds the specified age, use the default copay.

                      CP.pat = CP.pat

                  • Downgrade. Use the exception instead of the default copay.

                    CP.pat = CP.exc

                • If there is not an exception for the procedure in the coverage table, use the default copay.

                  CP.pat = CP.pat

              2. Calculate the Primary Insurance Portion. Subtract CP.pat from AP.min, and then set Ipri equal to that difference unless that difference is less than zero, in which case, set Ipri equal to zero.

                Ipri = max (0 ; AP.min - CP.pat)

            • For a coverage table based on insurance coverage percentages, do the following:

              1. Determine the Primary Insurance Coverage Percentage. Do one of the following:

                • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the coverage:

                  • Not covered. The carrier does not have a portion, so set CP.ins equal to zero.

                    CP.ins = 0

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                      CP.ins = CP.exc

                    • If the patient's age exceeds the specified age, use the default coverage.

                      CP.ins = CP.ins

                  • Downgrade. Use the exception instead of the default coverage.

                    CP.ins = CP.exc

                • If there is not an exception for the procedure in the coverage table, use the default coverage.

                  CP.ins = CP.ins

              2. Calculate the Primary Insurance Portion. Multiply AP.min and CP.ins, and then set Ipri equal to that product unless that product is less than zero, in which case, set Ipri equal to zero.

                Ipri = max (0 ; AP.min x CP.ins)

        • With a Primary Insurance Estimate Override, take the greater of OP.ins and AP.min, and then set Ipri equal to that greater amount unless that greater amount is less than zero, in which case, set Ipri equal to zero.

          Ipri = max (0 ; min (OP.ins ; AP.min))

    • If a Max allowable amount fee schedule is not selected for the plan, do one of the following:

      • Without a Primary Insurance Estimate Override, do one of the following:

        • If a procedure is listed in the payment table, set Ipri equal to AP.pay.

          Ipri = AP.pay

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments, do the following:

            1. Determine the Primary Patient Copay. Do one of the following:

              • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the copay:

                • Not covered. The carrier does not have a portion, so set CP.pat equal to Aproc.

                  CP.pat = Aproc

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                    CP.pat = CP.exc

                  • If the patient's age exceeds the specified age, use the default copay.

                    CP.pat = CP.pat

                • Downgrade. Use the exception instead of the default copay.

                  CP.pat = CP.exc

              • If there is not an exception for the procedure in the coverage table, use the default copay.

                CP.pat = CP.pat

            2. Calculate the Primary Insurance Portion. Subtract CP.pat from Aproc, and then set Ipri equal to that difference.

              Ipri = Aproc - CP.pat

          • For a coverage table based on insurance coverage percentages, do the following:

            1. Determine the Primary Insurance Coverage. Do one of the following:

              • If there is an exception for the procedure in the coverage table, use one of the following exception types to determine the coverage:

                • Not covered. The carrier does not have a portion, so set CP.ins equal to zero.

                  CP.ins = 0

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                    CP.ins = CP.exc

                  • If the patient's age exceeds the specified age, use the default coverage.

                    CP.ins = CP.ins

                • Downgrade. Use the exception instead of the default coverage.

                  CP.ins = CP.exc

              • If there is not an exception for the procedure in the coverage table, use the default coverage.

                CP.ins = CP.ins

            2. Calculate the Primary Insurance Portion. Multiply Aproc and CP.ins, and then set Ipri equal to that product.

              Ipri = Aproc x CP.ins

      • With a Primary Insurance Estimate Override, set Ipri equal to the override.

        Ipri = OP.ins

  6. Use the Primary Remaining Deductible to set the Max Primary Insurance Portion.

    Terms

    IP.max

    Max Primary Insurance Portion

    Ipri

    Primary Insurance Portion

    DP.rem

    Primary Remaining Deductible

    Subtract DP.rem from Ipri, and then set IP.max equal to that difference.

    IP.max = Ipri - DP.rem

  7. Calculate the Primary Remaining Benefit.

    Term

    BP.rem

    Primary Remaining Benefit

    Note: No value for a maximum indicates unlimited benefits; zero (0) indicates no benefits.

    Do one of the following:

    • For an orthodontic procedure, do the following:

      1. Calculate the Primary Remaining Lifetime Ortho Benefit:

        Terms

        LOBP.max

        Primary Maximum Lifetime Ortho Benefit

        LOBP.used

        Primary Used Lifetime Ortho Benefit

        LOBP.rem

        Primary Remaining Lifetime Ortho Benefit

        • If LOBP.max has no value, then LOBP.rem = 9,999,999.99

        • If LOBP.max = 0, then LOBP.rem = 0

        • If LOBP.max > 0, then LOBP.rem = LOBP.max - LOBP.used

      2. Set the Primary Remaining Benefit (BP.rem) equal to the Primary Remaining Lifetime Ortho Benefit (LOBP.rem).

        BP.rem = LOBP.rem

    • For a non-orthodontic procedure, do the following:

      1. Calculate the Primary Remaining Annual Individual Benefit:

        Terms

        AIBP.max

        Primary Maximum Annual Individual Benefit

        AIBP.used

        Primary Used Annual Individual Benefit

        AIBP.rem

        Primary Remaining Annual Individual Benefit

        • If AIBP.max has no value, then AIBP.rem = 9,999,999.99

        • If AIBP.max = 0, then AIBP.rem = 0

        • If AIBP.max > 0, then AIBP.rem = AIBP.max - AIBP.used

      2. Calculate the Primary Remaining Annual Family Benefit:

        Terms

        AFBP.max

        Primary Maximum Annual Family Benefit

        AFBused

        Primary Used Annual Family Benefit

        AFBrem

        Primary Remaining Annual Family Benefit

        • If AFBP.max has no value, then AFBP.rem = 9,999,999.99

        • If AFBP.max = 0, then AFBP.rem = 0

        • If AFBP.max > 0, then AFBP.rem = AFBP.max - AFBP.used

      3. Calculate the Primary Remaining Benefit. Take the lesser of AIBP.rem and AFBP.rem, and then set BP.rem equal to that lesser amount.

        BP.rem = min (AIBP.rem ; AFBP.rem)

  8. Use the Primary Remaining Benefit to adjust the Max Primary Insurance Portion as needed.

    Terms

    IP.max

    Max Primary Insurance Portion

    BP.rem

    Primary Remaining Benefit

    Do one of the following:

    • If IP.max <= BP.rem, there is enough remaining benefit to cover the entire amount that is expected to be paid by the carrier. The Max Primary Insurance Portion does not change.

      IP.max = IP.max

    • If IP.max > BP.rem, the remaining benefits covers none or only a portion of the amount that is expected to be paid by the carrier. Set the Max Primary Insurance Portion (IP.max) equal to the Primary Remaining Benefit (BP.rem).

      IP.max = BP.rem

  9. Calculate the Secondary Remaining Deductible.

    Term

    DS.rem

    Secondary Remaining Deductible

    Note: No value or a zero (0) for a required deductible both indicate that no deductible is required.

    1. Do one of the following:

      • For an orthodontic procedure, do the following:

        1. Calculate the Secondary Remaining Annual Individual Ortho Deductible:

          Terms

          AIODS.req

          Secondary Required Annual Individual Ortho Deductible

          AIODS.met

          Secondary Met Annual Individual Ortho Deductible

          AIODS.rem

          Secondary Remaining Annual Individual Ortho Deductible

          • If AIODS.req has no value, then AIODS.rem = 0

          • If AIODS.req = 0, then AIODS.rem = 0

          • If AIODS.req > 0, then AIODS.rem = AIODS.req - AIODS.met

        2. Set the Secondary Remaining Deductible (DS.rem) equal to the Secondary Remaining Annual Individual Ortho Deductible (AIODS.rem).

          DS.rem = AIODS.rem

      • For a non-orthodontic procedure, do the following:

        1. For the Lifetime Individual Deductible, calculate the Secondary Remaining Lifetime Individual Deductible:

          Terms

          LIDS.req

          Secondary Required Lifetime Individual Deductible

          LIDS.met

          Secondary Met Lifetime Individual Deductible

          LIDS.rem

          Secondary Remaining Lifetime Individual Deductible

          • If LIDS.req has no value, then LIDS.rem = 0

          • If LIDS.req = 0, then LIDS.rem = 0

          • If LIDS.req > 0, then LIDS.rem = LIDS.req - LIDS.met

        2. For the Annual Family Deductible, calculate the Secondary Remaining Annual Family Deductible:

          Terms

          AFDS.req

          Secondary Required Annual Family Deductible

          AFDS.met

          Secondary Met Annual Family Deductible

          AFDS.rem

          Secondary Remaining Annual Family Deductible

          • If AFDS.req has no value, then AFDS.rem = 0

          • If AFDS.req = 0, then AFDS.rem = 0

          • If AFDS.req > 0, then AFDS.rem = AFDS.req - AFDS.met

        3. For the Annual Individual Deductible, calculate the Secondary Remaining Annual Individual Deductible:

          Terms

          AIDS.req

          Secondary Required Annual Individual Deductible

          AIDS.met

          Secondary Met Annual Individual Deductible

          AIDS.rem

          Secondary Remaining Annual Individual Deductible

          • If AIDS.req has no value, then AIDS.rem = 0

          • If AIDS.req = 0, then AIDS.rem = 0

          • If AIDS.req > 0, then AIDS.rem = AIDS.req - AIDS.met

        4. Calculate the Secondary Remaining Deductible. Take the lesser of LIDS.rem, AFDS.rem, and AIDS.rem, and set DS.rem equal to that lesser amount.

          DS.rem = min (LIDS.rem ; AFDS.rem ; AIDS.rem)

  10. Calculate the Secondary Insurance Portion.

    Terms

    Isec

    Secondary Insurance Portion

    Aproc

    Amount Charged (the procedure's Amount)

    AS.max

    Secondary Max Allowable Amount (from the secondary plan's Max allowable amount fee schedule)

    AS.min

    Secondary Min Allowable Amount

    AS.pay

    Secondary Payment Table Amount (from the Amount column in the plan's payment table)

    CS.pat

    Secondary Patient Copay (from the Copayment $ column in the secondary plan's coverage table)

    CS.ins

    Secondary Insurance Coverage Percentage (from the Coverage % column in the secondary plan's coverage table)

    CS.exc

    Secondary Patient Copay Exception or Secondary Insurance Coverage Exception (any applicable exceptions, as indicated in the EXC column, in the secondary plan's coverage table)

    OS.ins

    Secondary Insurance Estimate Override (from the procedure's Insurance Estimate Overrides; entered and locked automatically, or entered manually)

    Do one of the following:

    • If a Max allowable amount fee schedule is selected for the plan, do the following:

      1. Calculate the Secondary Min Allowable. Because the calculations for the Secondary Insurance Portion require that AS.max not exceed Aproc, take the lesser of Aproc and AS.max, and then set AS.min equal to that lesser amount.

        AS.min = min (Aproc ; AS.max)

      2. Calculate the Secondary Insurance Portion. Do one of the following:

        • Without a Secondary Insurance Estimate Override:

          • If a procedure is listed in the payment table, take the greater of AS.min and AS.pay, and then set Isec equal to that greater amount.

            Isec = max (AS.min ; AS.pay)

          • If a procedure is not listed in the payment table, do one of the following:

            • For a coverage table based on patient copayments, do the following:

              1. Determine the Secondary Patient Copay.

                • If there is an exception for the procedure in the coverage table, use one of the following exception types:

                  • Not covered. The carrier does not have a portion, so set CS.pat equal to AS.min.

                    CS.pat = AS.min

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                      CS.pat = CS.exc

                    • If the patient's age exceeds the specified age, use the default copay.

                      CS.pat = CS.pat

                  • Downgrade. Use the exception instead of the default copay.

                    CS.pat = CS.exc

                • If there is not an exception for the procedure in the coverage table, use the default copay.

                  CS.pat = CS.pat

              2. Calculate the Secondary Insurance Portion. Use one of the following methods for coordinating benefits:

                • Traditional: Subtract CS.pat from AS.min, and then set Isec equal to that difference unless that difference is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0; AS.min - CS.pat)

                • Maintenance of Benefits: Subtract Wsec, Ipri, and CS.pat from Aproc, and then set Isec equal to that difference unless that difference is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0 ; Aproc - Wsec - Ipri - CS.pat)

                • Carve Out/Non-duplication: Subtract CS.pat and Ipri from AS.min, and then set Isec equal to that difference unless that difference is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0 ; AS.min - CS.pat - Ipri)

            • For a coverage table based on insurance coverage percentages, do the following:

              1. Determine the Secondary Insurance Coverage Percentage. Do one of the following:

                • If there is an exception for the procedure in the coverage table, use the following exception types to determine the coverage:

                  • Not covered. The carrier does not have a portion, so set CS.ins equal to zero.

                    CS.ins = 0

                  • Coverage with Maximum Age Limit. Do one of the following:

                    • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                      CS.ins = CS.exc

                    • If the patient's age exceeds the specified age, use the default coverage.

                      CS.ins = CS.ins

                  • Downgrade. Use the exception instead of the default coverage.

                    CS.ins = CS.exc

                • If there is not an exception for the procedure in the coverage table, use the default coverage.

                  CS.ins = CS.ins

              2. Calculate the Secondary Insurance Portion. Use one of the following methods for coordinating benefits:

                • Traditional: Multiply AS.min and CS.ins, and then set Isec equal to that product unless that product is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0 ; AS.min x CS.ins)

                • Maintenance of Benefits: Subtract Ipri from AS.min, multiply that difference and CS.ins, and then set Isec equal to the resulting product unless that product is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0 ; (AS.min - Ipri) x CS.ins)

                • Carve Out/Non-duplication: Multiply AS.min and CS.ins, subtract Ipri from that product, and then set Isec equal to the resulting difference unless that difference is less than zero, in which case, set Isec equal to zero.

                  Isec = max (0 ; (AS.min x CS.ins) - Ipri)

        • With a Secondary Insurance Estimate Override, use one of the following methods for coordinating benefits:

          • Traditional: Take the greater of OS.ins and AS.min, and then set Isec equal to that greater amount unless that greater amount is less than zero, in which case, set Isec equal to zero.

            Isec = max (0; min (OS.ins ; AS.min))

          • Maintenance of Benefits: Set Isec equal to the override.

            Isec = OS.ins

          • Carve Out/Non-duplication: Set Isec equal to the override.

            Isec = OS.ins

    • If a Max allowable amount fee schedule is not selected for the plan, do one of the following:

      • Without a Secondary Insurance Estimate Override, do one of the following:

        • If a procedure is listed in the payment table, set Isec equal to AS.pay.

          Isec = AS.pay

        • If a procedure is not listed in the payment table, do one of the following:

          • For a coverage table based on patient copayments, do the following:

            1. Determine the Secondary Patient Copay.

              • If there is an exception for the procedure in the coverage table, use one of the following exception types:

                • Not covered. The carrier does not have a portion, so set CS.pat equal to Aproc.

                  CS.pat = Aproc

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default copay.

                    CS.pat = CS.exc

                  • If the patient's age exceeds the specified age, use the default copay.

                    CS.pat = CS.pat

                • Downgrade. Use the exception instead of the default copay.

                  CS.pat = CS.exc

              • If there is not an exception for the procedure in the coverage table, use the default copay.

                CS.pat = CS.pat

            2. Calculate the Secondary Insurance Portion. Use one of the following methods for coordinating benefits:

              • Traditional: Subtract CS.pat from Aproc, and then set Isec equal to that difference.

                Isec = Aproc - CS.pat

              • Maintenance of Benefits: Subtract Ipri and CS.pat from Aproc, and then set Isec equal to that difference.

                Isec = Aproc - Ipri - CS.pat

              • Carve Out/Non-duplication: Subtract CS.pat and Ipri from Aproc, and then set Isec equal to that difference.

                Isec = Aproc- CS.pat - Ipri

          • For a coverage table based on insurance coverage percentages, do the following:

            1. Determine the Secondary Insurance Coverage Percentage. Do one of the following:

              • If there is an exception for the procedure in the coverage table, use the following exception types to determine the coverage:

                • Not covered. The carrier does not have a portion, so set CS.ins equal to zero.

                  CS.ins = 0

                • Coverage with Maximum Age Limit. Do one of the following:

                  • If the patient's age does not exceed the specified age, use the exception instead of the default coverage.

                    CS.ins = CS.exc

                  • If the patient's age exceeds the specified age, use the default coverage.

                    CS.ins = CS.ins

                • Downgrade. Use the exception instead of the default coverage.

                  CS.ins = CS.exc

              • If there is not an exception for the procedure in the coverage table, use the default coverage.

                CS.ins = CS.ins

            2. Calculate the Secondary Insurance Portion. Use one of the following methods for coordinating benefits:

              • Traditional: Multiply Aproc and CS.ins, and then set Isec equal to that product.

                Isec = Aproc x CS.ins

              • Maintenance of Benefits: Subtract Ipri from Aproc, multiply that difference and CS.ins, and then set Isec equal to the resulting product.

                Isec = (Aproc - Ipri) x CS.ins

              • Carve Out/Non-duplication: Multiply Aproc and CS.ins, subtract Ipri from that product, and then set Isec equal to that product.

                Isec = (Aproc x CS.ins) - Ipri

      • With a Secondary Insurance Estimate Override, set Isec equal to the override.

        Isec = OS.ins

  11. Use the Secondary Remaining Deductible to set the Max Secondary Insurance Portion.

    Terms

    IS.max

    Max Secondary Insurance Portion

    Isec

    Secondary Insurance Portion

    DS.rem

    Secondary Remaining Deductible

    Subtract DS.rem from Isec, and then set Imax equal to that difference.

    Imax = Isec - Drem

  12. Calculate the Secondary Remaining Benefit.

    Terms

    BS.rem

    Secondary Remaining Benefit

    Note: No value for a maximum indicates unlimited benefits; zero (0) indicates no benefits.

    Do one of the following:

    • For an orthodontic procedure, do the following:

      1. Calculate the Secondary Remaining Lifetime Ortho Benefit:

        Terms

        LOBS.max

        Secondary Maximum Lifetime Ortho Benefit

        LOBS.used

        Secondary Used Lifetime Ortho Benefit

        LOBS.rem

        Secondary Remaining Lifetime Ortho Benefit

        • If LOBS.max has no value, then LOBS.rem = 9,999,999.99

        • If LOBS.max = 0, then LOBS.rem = 0

        • If LOBS.max > 0, then LOBS.rem = LOBS.max - LOBS.used

      2. Set the Secondary Remaining Benefit (BS.rem) equal to the Secondary Remaining Lifetime Ortho Benefit (LOBS.rem).

        BS.rem = LOBS.rem

    • For a non-orthodontic procedure, do the following:

      1. Calculate the Secondary Remaining Annual Individual Benefit:

        Terms

        AIBS.max

        Secondary Maximum Annual Individual Benefit

        AIBS.used

        Secondary Used Annual Individual Benefit

        AIBS.rem

        Secondary Remaining Annual Individual Benefit

        • If AIBS.max has no value, then AIBS.rem = 9,999,999.99

        • If AIBS.max = 0, then AIBS.rem = 0

        • If AIBS.max > 0, then AIBS.rem = AIBS.max - AIBS.used

      2. Calculate the Secondary Remaining Annual Family Benefit:

        Terms

        AFBS.max

        Secondary Maximum Annual Family Benefit

        AFBS.used

        Secondary Used Annual Family Benefit

        AFBS.rem

        Secondary Remaining Annual Family Benefit

        • If AFBS.max has no value, then AFBS.rem = 9,999,999.99

        • If AFBS.max = 0, then AFBS.rem = 0

        • If AFBS.max > 0, then AFBS.rem = AFBS.max - AFBS.used

      3. Calculate the Secondary Remaining Benefit. Take the lesser of AIBS.rem and AFBS.rem, and then set BS.rem equal to that lesser amount.

        BS.rem = min (AIBS.rem ; AFBS.rem)

  13. Use the Secondary Remaining Benefit to adjust the Max Secondary Insurance Portion as needed.

    Terms

    IS.max

    Max Secondary Insurance Portion

    BS.rem

    Secondary Remaining Benefit

    Do one of the following:

    • If IS.max<= BS.rem, there is enough remaining benefit to cover the entire amount that is expected to be paid by the carrier. The Max Secondary Insurance Portion does not change.

      IS.max = IS.max

    • If IS.max > BS.rem, the remaining benefits covers none or only a portion of the amount that is expected to be paid by the carrier. Set the Max Secondary Insurance Portion (IS.max) equal to the Secondary Remaining Benefit (BS.rem).

      IS.max = BS.rem

  14. Calculate the final amounts for the Total Insurance Portion, the Max Write-off, and the Max Patient Portion.

    Terms

    Itot

    Total Insurance Portion (for dual coverage)

    IP.max

    Max Primary Insurance Portion

    IS.max

    Max Secondary Insurance Portion

    Aproc

    Amount Charged (the procedure's Amount)

    Pmax

    Max Patient Portion (for dual coverage)

    Wmax

    Max Write-off (for dual coverage)

    Do one of the following:

    • For either the Maintenance of Benefits or the Carve out/Non-duplication method of coordinating benefits, do the following:

      1. Calculate the Total Insurance Portion. Add IP.max and IS.max, and then set Itot equal to that sum.

        Itot = sum (IP.max + IS.max)

      2. Do one of the following:

        • If Itot >= Aproc, do the following:

          • Set the Total Insurance Portion (Itot) equal to Aproc.

            Itot = Aproc

          • Set the Max Patient Portion (Pmax) equal to zero.

            Pmax = 0

          • Set the Max Write-off (Wmax) equal to zero.

            Wmax = 0

        • If Itot < Aproc, do one of the following:

          • With the Insurance Sum (S) equal to Itot + Wmax, if S >= Aproc, do the following:

            1. Set the Max Patient Portion (Pmax) equal to zero.

              Pmax = 0

            2. Do one of the following:

              • If S = Aproc, adjustments are not needed. The Max Write-off and the Total Insurance Portion stay the same.

                Wmax = Wmax

                Itot = Itot

              • If S > Aproc, make adjustments in the following order (until S = Aproc):

                1. If S > Aproc, reduce Wmax until S = Aproc or until Wmax = 0, whichever comes first.

                2. If Wmax = 0, and if S > Aproc, reduce Itot (by reducing IS.max) until S = Aproc.

          • With the Insurance Sum (S) equal to Itot + Wmax, if S < Aproc, do the following:

            • Calculate the Max Patient Portion. Subtract Itot and Wmax from Aproc, and then set Pmax equal to that difference.

              Pmax = Aproc - Itot - Wmax

            • The Max Write-off and the Total Insurance Portion stay the same.

              Wmax = Wmax

              Itot = Itot

    • For the Traditional method of coordinating benefits, do the following:

      1. Calculate the Total Insurance Portion. Add IP.max and IS.max, and then set Itot equal to that sum.

        Itot = sum (IP.max + IS.max)

      2. Calculate the Max Patient Portion. Subtract Wmax, IP.max, and IS.max from Aproc, and then set Pmax equal to that difference unless that difference is less than zero, in which case, set Pmax equal to zero.

        Pmax= max (0; Aproc - Wmax - IP.max - IS.max)

      3. Set the Sum of the Terms (s) equal to the sum of Wmax, IP.max, IS.max, and Pmax.

        S = sum (Wmax + IP.max + IS.max + Pmax)

      4. Do one of the following:

        • If S = Aproc, adjustments are not needed. The Max Write-off and the Total Insurance Portion stay the same.

          Wmax = Wmax

          Itot = Itot

        • If S > Aproc, make adjustments in the following order (until S = Aproc):

          1. If S > Aproc, reduce Pmax until S = Aproc or until Pmax = 0, whichever comes first.

          2. If Pmax = 0 and if S > Aproc, reduce Wmax until S = Aproc or until Wmax = 0, whichever comes first.

          3. If Pmax = 0, if Wmax = 0, and if S > Aproc, reduce Itot (by reducing IS.max) until S = Aproc.