Skip to main content
Contract Insurance & FBT

Comprehensive Insurance Rates Update Process

Follow these steps to update your Comprehensive Insurance Rates.


This page contains content due for releease on 04/11/2026

Overview

Updating comprehensive insurance happens in two parts:

  1. Update the insurance rate table with the insurer's new rates.

  2. Update contract premiums and payment schedules so existing contracts pick up the new rates.

A change to the rate table on its own does not change any existing contract. Once a quote becomes a contract, its insurance amounts are stored on the contract, so Part 2 is always needed. Always complete Part 1 before starting Part 2 for the same rate change.

Both parts use an upload through Setup / Import Table Data and a Scheduler job.

Before You Start

  • The Scheduler jobs for both parts are installed switched off. Contact Catch-e Support to set up the jobs and have them switched on for your site.

  • Catch-e Support links the Review job (Part 2) to the rate update job (Part 1), so the Review job runs automatically after each successful rate load.

  • Ask Catch-e Support to add the people who should receive the Review draft (Part 2) to that job's email recipients. The draft is emailed, so no one receives it until this is set.

  • Check your insurer is set up as an internal insurer, with insurer locations and at least one existing set of rates in the insurance rate table. If it isn't, the jobs stop with a reason rather than updating anything. Changing your internal insurer setup also changes which insurer new quotes default to, so review this before making changes.

  • Check your internal insurer's location names are state or territory codes (ACT, NSW, NT, QLD, SA, TAS, VIC, WA). The rate file can only match locations named this way.

  • Your site may use an earlier version of the rate upload table. Sites that were set up for automated rate loading before November 2026 use a table without the supplier_code column. To check, export the _sch_comprehensive_insurance table with field headers (Setup / Export Table Data, Module "_sch Scheduler", tick Include Field Headers). If supplier_code appears in the header row, include it in your file. If it doesn't, leave it out. If you're unsure, contact Catch-e Support.


Part 1: Update the Insurance Rate Table

How It Works

  1. Create a CSV of your new rates, using the example file 2025-26 rates CSV file as a template. See CSV File Structure below.

  2. Go to Setup / Import Table Data.

  3. Select Module "_sch Scheduler".

  4. Select Table _sch_comprehensive_insurance.

  5. Upload your CSV in the Data File section.

  6. Rows with a date in an unrecognised format, or a blank date, are rejected at upload with an error. Correct them and upload again.

  7. Contact Catch-e Support to run the rate update job, Update Comprehensive Insurance Rates.

  8. The job checks every uploaded row before loading anything. If all rows pass, it adds the new rates to the insurance rate table and clears the uploaded rows.

  9. The Review job then runs automatically and emails the Review draft. Continue with Part 2.

CSV File Structure

Content of this file is uploaded to the _sch_comprehensive_insurance table. It has the following fields. Refer to the 2025-26 rates CSV file for examples.

sch_comprehensive_insurance_uuid

MUST be left blank. The column must still be present in the file; Catch-e fills it in automatically on upload.

supplier_code

(Sites using the current table layout only. See Before You Start.)

The supplier code of the insurer these rates belong to, exactly as it appears on the insurer's supplier record. Maximum 10 characters.

  • Each row must name an insurer set up as an internal insurer with at least one insurer location.

  • The rates are loaded against that insurer's locations only, so rates for one insurer can't be applied to another insurer that uses the same state names.

state

Must be one of: ACT, NSW, NT, QLD, SA, TAS, VIC, WA.

This is matched against the names of the insurer's locations, so the insurer's location names must also be one of these codes.

classification_name

MUST be one of the values in the name column of the qt_insurance_types table, matching it exactly.

Download the existing list using:

  • Setup / Export Table Data

  • Select Module: "qt | Quotes"

  • Select Table: qt_insurance_types

  • Check on Include Field Headers

  • Download the table content


lower_limit

Enter the lower limit of the rate band.

  • For the first band, use 0

  • For subsequent bands, the lower_limit MUST be exactly $0.01 greater than the previous upper_limit

    • Example: if the previous upper_limit is 18000.99, the next lower_limit is 18001


upper_limit

Enter the upper limit of the rate band.

  • Must be exactly $0.01 less than the next band's lower_limit

  • Example: if the next lower_limit is 40001, the current upper_limit should be 40000.99


excess_rate

Specify the excess rate for the band.

  • Use 0 where no excess applies

  • Excess rate must be defined per State and Classification at a specific limit (e.g., 135000)

  • Enter as decimal (e.g., 0.0232 = 2.32%, 0.0300 = 3%)


base_cost_monthly

Enter the base monthly cost for this rate band.

  • For the band that includes an excess_rate (row with identical lower_limit and upper_limit), this must match the base_cost_monthly of the highest upper_limit band for that state and classification


effective_from

Enter the date from which this rate becomes effective.

  • Accepted formats: YYYY-MM-DD (e.g. 2026-07-01) or DD/MM/YYYY (e.g. 01/07/2026)

  • Do not use a US-style month-first date. 12/31/2026 is read as day 12, month 31.

  • Any other format, or a blank date, is rejected at upload with an error.


Expected Behaviour

All Rows Valid

  • The new rates are added to the insurance rate table.

  • The uploaded rows are cleared from _sch_comprehensive_insurance.

  • The Review job runs straight away and emails the Review draft (Part 2).

One or More Rows Can't Be Matched to an Insurer or Location

The load is all-or-nothing. If any row falls into one of the following, no rates are loaded:

  • The supplier code doesn't match an eligible insurer.

  • The insurer has no insurer locations.

  • The row matches more than one location (or the supplier code matches more than one insurer).

  • The row has no usable effective date.

When this happens:

  • The job run shows as failed on the Scheduler screen, and the error message gives the number of rows in each category.

  • The same message is sent in the Scheduler's error email.

  • The Review job does not run, so no Review draft is emailed.

  • Your uploaded rows stay in the table. Correct the file and upload it again, then contact Catch-e Support to run the job again.

Rows Whose State or Classification Doesn't Match

  • A row whose state or classification_name doesn't match an existing location or insurance type is skipped without notice while the other rows load.

  • Check both columns carefully against your site's own location names and insurance type list before uploading.


Part 2: Update Contract Premiums and Payment Schedules

Part 2 starts automatically once Part 1 completes successfully. It compares the newest rates with the previous ones to work out each contract's new amounts.

How It Works

  1. The Review job, Review contract Insurance Payment Schedules, runs automatically after a successful rate load. To produce a new draft without loading new rates, ask Catch-e Support to run the Review job on its own.

  2. The job emails a draft CSV to the job's recipients. It lists each contract to update, with suggested new amounts for the base premium, fire service levy, stamp duty and broker fee, alongside columns to help you check them.

  3. Review and adjust the suggested amounts in the draft. The suggestions assume that every vehicle-value band for an insurance type and location changed by the same percentage, and that state fire service levy and stamp duty rates haven't changed in the same cycle. If either isn't the case, check those amounts carefully.

  4. Delete the verification columns and the note column from the file. The upload only accepts the columns of the _sch_insurance_import table, and any other column fails the whole upload.

  5. Go to Setup / Import Table Data.

  6. Select Module "_sch Scheduler".

  7. Select Table _sch_insurance_import.

  8. Upload your file in the Data File section.

  9. The Update job, Update Contract Insurance and Payments, runs overnight once it has been switched on for your site.

  10. The job updates each contract's insurance amounts, its payment structure and its pending and stopped payment schedule rows, and records the changes in the audit trail.

Expected Behaviour

Review Draft: Contract With a Previous Rate

  • The draft includes the contract with suggested new amounts, based on how much the rate for its insurance type and location has changed.

  • The contract's own policy number and renewal date are shown.

Review Draft: Contract With No Previous Rate

  • Where a contract's insurance type and location only have the newest rates, no increase can be worked out.

  • The contract is still included, with the new-amount columns blank and a note that there is no previous rate and the amount must be entered by hand.

  • Enter the amounts before uploading. A blank amount is rejected at upload. If you can't enter an amount yet, remove the row; that contract is left unchanged.

Review Draft: Contract With No Renewal Date

  • The renewal date shows as null.

  • Leave it as null. The file uploads as normal, and the contract's renewal date stays empty.

Review Job Stopped

  • The draft contains a single row. Every column is empty except the note column, which explains why the job stopped (for example, that no active insurer could be resolved for your site).

  • The Scheduler screen shows this run as successful, because a file was produced. Always open the draft to check.

  • Correct the cause, or contact Catch-e Support, then ask Catch-e Support to run the Review job again. Don't upload this file.

Update Job Completed

  • Each uploaded contract's insurance amounts, payment structure and pending and stopped payment schedule rows are updated.

  • Every change is recorded in the audit trail.

Update Job Stopped

The Update job checks the upload before changing anything. If it finds a problem, for example a row with null typed into an amount, it stops:

  • Nothing is changed on any contract, payment structure or payment schedule.

  • The job run shows as failed on the Scheduler screen, and the error message explains why (for a missing amount, how many rows are affected).

  • The same message is sent in the Scheduler's error email.

  • Your uploaded rows stay in the table. Correct the file and upload it again before the next run.


Insurance Billing Type

This field describes how the vehicle's insurance is billed and paid for. It determines how Novated contract insurance costs are shown in reports:

  • Novated Driver

  • Novated Driver Budgeted

  • Novated Driver Operating

  • Novated Driver Budgeted Operating

  • Budget Km Variance

When Billing Type = Driver Reimbursement or Client Reimbursement, reports show:

  • Actual insurance costs from Contracts / Maintenance tab

  • Transactions from Contracts / Payments tab in the "Actual" column

  • Only posted payments (using Due Date, not posted date)

Payment timing example

An insurance transaction with Due Date 01/04/2010 paid on 15/05/2010:

  • April report run on 8 May β†’ NOT included

  • April report run on 16 May β†’ INCLUDED in YTD and LTD actuals


When other Billing Types are used ('Blank', 'Not Billed', 'Part of Lease', 'Recharge'):

  • Driver Report Actual = Budgeted amounts + Maintenance transactions


Billing Types

Name

Reporting Behaviour for Actual (* = no)

Reporting Behaviour for Actual (* = yes)

Client Reimbursement

Maintenance actuals + Payment actuals

Maintenance actuals + Payment actuals

Driver Reimbursement

Maintenance actuals + Payment actuals

Maintenance actuals + Payment actuals

Not Billed

Budget values + Maintenance actuals

Maintenance actuals + Payment actuals

Part of Lease

Budget values + Maintenance actuals

Maintenance actuals + Payment actuals

Recharge

Budget values + Maintenance actuals

Maintenance actuals + Payment actuals


Billing Type Defaults

Policy Owner

Default

Internal Insurer Policy

Driver Reimbursement

Driver Policy

Driver Reimbursement

Client Policy

Client Reimbursement


Insurance Premium

Insurance premiums are calculated using:

  • Policy Owner

  • Insurer

  • Insurance Loc.

  • Variant

  • Total On Road Price

System supports:

  • External calculation (default)

  • Internal calculation (client-specific logic)


Insurance Calculation using Postcode (illustr.)

Postcode-based pricing can replace location-based pricing when:

  • insurancelocationbypostcodeflag = yes

Uses table:

  • qtinsurerlocationsbypostcode


Insurance Premium Setup

Global Controls

  • comprehensiveinsurancebasis

  • insurancecalculationmethod

  • fsl_rates

  • isd_rates

  • insuranceatfault_rate

  • insurancegstcalculation_method

  • insurancelocationbypostcodeflag


Required tables

  • fm_suppliers (Insurance Broker Fee)

  • qtinternalinsurers

  • qtinsurancerates

  • qtinsurancetypes

  • qtinsurerlocations

  • qtinsurerlocationsbypostcode

  • qtinsuranceloadingtypes

  • qtinsuranceloadingrates


Insurance Uplift

A budget item called INSUP calculates monthly allowance for insurance increases.

  • Based on Monthly Premium

  • Applies to all Quotes

  • Requires Posting Class setup


Insurance Uplift Fee (INSUP)

Field

Rule

Net

Read-only if tmpquotebudgetnetINSUP exists

GST

Read-only if tmpquotebudgetgstINSUP exists

Quote Note

Read-only if set

NOTE: To make editable, remove both role restriction records:

  • tmpquotebudgetnetINSUP

  • tmpquotebudgetgstINSUP |