Skip to main content

Overview

When embedding insurance verification into your application, you may want to evaluate whether a shared insurance policy meets your business’ requirements. Each supported Rule is an individual check evaluated against the Policy object to determine if the Policy meets a certain requirement or set of requirements. For example, the policy-active Rule checks if the policy is currently active, evaluating to pass if the isActive field of the policy is true and fail if it is false. If isActive is null (not provided by the insurance carrier), this Rule will resolve to unknown. Some Rules are more complex, providing additional insight not found on the Policy object. For example, the rental-covered-for-collision Rule provides guidance on whether a policy affords coverage for collision damage when an insured is driving a rental vehicle. Some Rules require additional input to be evaluated. For example, the expiration-date-comparison Rule requires an input date to compare against the policy’s expiration date. For more details on the additional inputs that a Rule may require, refer to Supported Rules. Each Rule evaluates to one of the following statuses:

Requesting Evaluation Rules

You can request that a Policy be evaluated against a specified set of Rules through the Validate Policy endpoint. Each Rule you requested will be run, and you’ll receive a response with an overall status determination of either pass, fail, or caution.
  • pass means that the policy succeeded in passing against all of the specified Rules.
  • fail means that one or more specified Rules evaluated to a status of fail.
  • caution means that one or more specified Rules evaluated to a status of caution. In most cases, it is recommended to complete a manual review of the policy.
The response also contains three other fields:
  • summary - An object containing the names of all Rules on the policy and their resolved statuses.
  • rules - An object containing the names of each Rules and their run details.
  • validation - The unique identifier for the validation result of this request.

Supported Rules

The Axle team is actively working on adding additional supported Rules. Please reach out with any suggestions!

policy-active

Evaluates whether the policy is currently active.
Example Rule

rental-covered-for-collision

Evaluates the likelihood that the policy provides coverage for collision damage when an insured is driving a rental vehicle, based on the collision coverage available on the policy and the policy terms of insurance agreements similar to the one used by this policy.There are three ways that a user’s auto insurance policy may cover collision damage to a rental vehicle.
  1. Their policy includes collision coverage and personal collision coverage extends to a rental vehicle.
  2. Their policy is registered in a state in which policies are required to cover collision damage to a rental vehicle under property damage liability terms.
  3. Their policy is registered in a state in which policies are required to cover collision damage to a rental vehicle under an endorsement.
If any of these are true, then the rental-covered-for-collision Rule resolves to pass.

Rental Coverage Validation AI

In order to determine if a policy meets these criteria, Axle’s Validation AI matches the auto policy to a repository of up-to-date policy agreements (also known as forms) as well as any relevant state regulations, and then synthesizes these resources into a recommendation.
The rental-covered-for-collision recommendation may not apply the following scenarios:
  • long term rentals (greater than 30 days)
  • rental of medium or heavy duty vehicles (above 10,000 lbs)
  • use of temporary substitute vehicles (such as replacement or loaner vehicle)
  • use of rental vehicle for TNC, DNC, or other auto business
  • rentals outside of the continental United States
The recommendation made by the Rental Coverage Validation AI should not be treated as legal advice. It is made on a “best-effort” basis.
This Validation also returns a message and message code, which can be used to explain to the user why the policy is or is not likely to cover collision damage to a rental vehicle.
Example Rule

Testing in Sandbox

All sandbox Auto policies currently support policy validation testing, but we’ve also curated a special set of test policies specifically to provide options for testing the various outcomes of the rental-covered-for-collision Rule.Enter the following credentials into an ignition session, and then select the policy labeled with the message code you would like to test. The message codes and their explanations are listed in the table above.

expiration-date-comparison

Given an input date, evaluates whether the policy’s expiration date is greater than or equal to (on or after) the input date.If no input date is provided, the rule will default to comparing the policy’s expiration date against today’s date (UTC).This Rule optionally accepts additional input to be evaluated. If provided, the date must be an ISO 8601 string representing the date to compare against the policy’s expiration date. If omitted, the rule defaults to using today’s date.For example, valid input dates could be 2025-01-01 or 2025-01-01T00:00:00.000Z. If an invalid date is provided, this Rule will return a 400 response code.
The returned evaluation will include
  • The policy’s expiration date.
  • The input date that was provided.

collision-coverage-meets-requirements

Evaluates whether the policy has collision coverage and if the coverage meets specific deductible requirements. This rule can evaluate coverage requirements for a specific vehicle (using VIN) or for the entire policy.Input Parameters
  • vin (optional): The Vehicle Identification Number to check for collision coverage specific to a vehicle.
  • deductible (optional): A specific collision deductible amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following two criteria. Both of these criteria must be true for the collision-coverage-meets-requirements Rule to resolve to pass.
  1. collision-exists: Determines if collision coverage is present on the policy for any vehicle or, if a vin is provided, for a specified vehicle.
  2. collision-deductible-comparison (optional): Verifies if the provided deductible is less than or equal to the deductible specified in the collision coverage of the policy. This criteria will only run if collision-exists results in a pass and the optional deductible is provided.
    • If no vin is provided, the provided deductible will be verified against all collision coverages listed on the policy.
    • If a vin is provided, the provided deductible will be verified against only the collision coverage listed for the specified vehicle.
This Rule also returns a message and message code, which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule will verify if the policy contains collision coverage for the vehicle with the given vin and that the deductible for that coverage is less than or equal to $1,000.
Example Rule Request
Example Rule Response

comprehensive-coverage-meets-requirements

Evaluates whether the policy has comprehensive coverage and if the coverage meets specific deductible requirements. This rule can evaluate coverage requirements for a specific vehicle (using VIN) or for the entire policy.Input Parameters
  • vin (optional): The Vehicle Identification Number to check for comprehensive coverage specific to a vehicle.
  • deductible (optional): A specific comprehensive deductible amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following two criteria. Both of these criteria must be true for the comprehensive-coverage-meets-requirements Rule to resolve to pass.
  1. comprehensive-exists: Determines if comprehensive coverage is present on the policy for any vehicle or, if a vin is provided, for a specified vehicle.
  2. comprehensive-deductible-comparison (optional): Verifies if the provided deductible is less than or equal to the deductible specified in the comprehensive coverage of the policy. This criteria will only run if comprehensive-exists results in a pass and the optional deductible is provided.
  • If no vin is provided, the provided deductible will be verified against all comprehensive coverages listed on the policy.
  • If a vin is provided, the provided deductible will be verified against only the comprehensive coverage listed for the specified vehicle.
This Rule also returns a message and message code, which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule will verify if the policy contains comprehensive coverage for the vehicle with the given vin and that the deductible for that coverage is less than or equal to $1,000.
Example Rule Request
Example Rule Response

bodily-injury-coverage-meets-requirements

Evaluates whether the policy has bodily injury coverage and if the coverage meets specific limit requirements.Input Parameters
  • limitPerAccident (optional): The limitPerAccident amount you want to verify against the policy.
  • limitPerPerson (optional): The limitPerPerson amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following criteria, depending on if any limit was passed in. If no limits are passed in, then the Rule is evaluated based off if bodily injury coverage exists on the policy.
  1. bodily-injury-exists: Determines if bodily injury coverage is present on the policy.
  2. bodily-injury-limit-per-person-comparison (if applicable): Determines if the limitPerPerson specified on the policy’s bodily injury coverage is greater than or equal to the provided limitPerPerson.
  3. bodily-injury-limit-per-accident-comparison (if applicable): Determines if the limitPerAccident specified on the policy’s bodily injury coverage is greater than or equal to the provided limitPerAccident.
This Rule also returns a message and message code which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule will verify if the policy has bodily injury coverage and if the limitPerPerson on the coverage is greater than or equal to $200,000.
Example Rule Request
Example Rule Response

uninsured-underinsured-bi-coverage-meets-requirements

Evaluates whether a policy includes uninsured motorists (UM), underinsured motorists (UIM), or uninsured/underinsured motorists (UUIM) bodily injury coverage and verifies if the coverage(s) meet the specified limit requirements.Input Parameters
  • limitPerAccident (optional): The limitPerAccident amount you want to verify against the policy.
  • limitPerPerson (optional): The limitPerPerson amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following criteria. If no limits are specified in the input, then the Rule evaluates solely on the presence of any uninsured motorists, underinsured motorists, or uninsured/underinsured motorists bodily injury coverage on the policy.
  1. uninsured-underinsured-bi-exists: Determines if UM, UIM, or UUIM motorists bodily injury coverage is present on the policy.
  2. uninsured-underinsured-bi-limit-per-person-comparison (if applicable): Determines if the limitPerPerson on the policy’s UM, UIM, or UUIM bodily injury coverage is greater than or equal to the provided limitPerPerson.
  3. uninsured-underinsured-bi-limit-per-accident-comparison (if applicable): Determines if the limitPerAccident on the policy’s UM, UIM, or UUIM bodily injury coverage is greater than or equal to the provided limitPerAccident.
This Rule also returns a message and message code which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule will verify if the policy has at least one of UM, UIM, or UUIM bodily injury coverage and if the limitPerPerson on the coverage is greater than or equal to $200,000.
Example Rule Request
Example Rule Response

property-damage-coverage-meets-requirements

Evaluates whether the policy has property damage coverage and if the coverage meets specific limit requirements.Input Parameters
  • limitPerAccident (optional): The limitPerAccident amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following criteria. If no limits are specified in the input, the Rule evaluates solely on the presence of property damage coverage on the policy.
  1. property-damage-exists: Determines if property damage coverage is present on the policy.
  2. property-damage-limit-per-accident-comparison (if applicable): Determines if the limitPerAccident specified on the policy’s property damage coverage is greater than or equal to the provided limitPerAccident.
This Rule also returns a message and message code which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule validates that the policy has property damage coverage and that the coverage’s limitPerAccident is greater than or equal to $50,000.
Example Rule Request
Example Rule Response

uninsured-underinsured-pd-coverage-meets-requirements

Evaluates whether a policy includes uninsured motorist (UM), underinsured motorist (UIM), or uninsured/underinsured motorist (UUIM) property damage coverage and verifies if the coverage(s) meet the specified limit requirements.Input Parameters
  • limitPerAccident (optional): The limitPerAccident amount you want to verify against the policy.
Evaluation CriteriaThe Rule is evaluated based on the following criteria. If no limit is specified in the input, the Rule evaluates solely on the presence of any uninsured motorist (UM), underinsured motorist (UIM), or uninsured/underinsured motorist (UUIM) property damage coverage on the policy.
  1. uninsured-underinsured-pd-exists: Determines if UM, UIM, or UUIM motorist property damage coverage is present on the policy.
  2. uninsured-underinsured-pd-limit-per-accident-comparison (if applicable): Determines if the limitPerAccident on the policy’s UM, UIM, or UUIM property damage coverage is greater than or equal to the provided limitPerAccident.
This Rule also returns a message and message code which can be used to explain to the user why the Rule failed to result in a pass.Example UsageThis example Rule will verify if the policy has at laest one of UM, UIM, or UUIM property damage coverage and if the limitPerAccident on the coverage is greater than or equal to $50,000.
Example Rule Request
Example Rule Response

insureds-match

Evaluates whether all of the input insured names are listed on the Axle policy.Input Parameters
  • insuredNames: An array of full names provided as strings. Each name should be provided in the format "firstName middleName lastName suffix"
  • fuzzyMatch (optional): A boolean that enables similarity-based matching for insured names.
If fuzzyMatch is true, this Rule calculates a similarity score between each input name and the policy insured name. A score of 0.7 or higher is treated as a match (pass), and a score below 0.7 is treated as not matching (fail).
This Rule currently does not support nickname matching. Please contact the Axle team if this is a feature of interest.Additionally, it is unlikely that insureds across households will be present on a single insurance policy. Please ensure that the input only contains insured names you expect to be on the policy.
Example Usage
Example Rule Request
Example Rule Response

address-match

Evaluates whether input address matches the address that is listed on the Axle policy.Input Parameters
  • address: Full address provided as a string that includes both Address Line 1 and 2 along with city, postal code, and state.
Example Usage
Example Rule Request
Example Rule Response

properties-match

Evaluates whether input property matches the property that is listed on Axle Policy. Properties can be matched via yearMakeModel, VIN, or address (corresponding to type of property).

yearMakeModel (property type vehicle)

Evaluates if provided yearMakeModel matches yearMakeModel listed as one of the properties when policy.properties.type=vehicleInput Parameters
  • yearMakeModel: Provide a string in the following format “<year> <make model of the vehicle>”. For example, you can provide “2009 Honda Odyssey”
Example Usage
Example Rule Request
Example Rule Response

vin (property type vehicle)

Evaluates if provided VIN matches the VIN listed as one of the properties when policy.properties.type=vehicleInput Parameters
  • vin: Provide VIN number of the vehicle as a string
Example Usage
Example Rule Request
Example Rule Response

Address (property type dwelling)

Evaluates if provided address matches the address listed as one of the properties when policy.properties.type=dwellingInput Parameters
  • address: Full address provided as a string that includes both Address Line 1 and 2 along with city, postal code, and state.
Example Usage
Example Rule Request
Example Rule Response

third-party-match

Evaluates whether a third party listed on the policy matches the provided name and, if provided, the third party’s address.

Input Parameters

  • name (required): String representing the name of the third party (e.g., “Major Bank”).
  • address (optional): String representing the address of the third party.

Responses

Example Usage

Example Rule Request
Example Rule Response

required-policy-information-is-present

Evaluates if the policy either has (1) certain required fields present OR (2) at least one declarations page. If either sub-rule passes, the overall Rule resolves to pass. Otherwise, it resolves to fail.This Rule combines two separate sub-rules:
  1. fields-exist – Verifies that all fields specified by your requiredFields input are present on the policy. If every requested field is found, this Rule resolves to pass; otherwise, it resolves to fail and includes a missingFields list in the metadata.
  2. declarations-page-exists – Checks whether the policy has at least one document classified by Axle as a declaration page.
Input Parameters
  • requiredFields: An object used to specify which fields must exist on the policy. Each key maps to a boolean (or nested object / array structure) indicating whether that particular field is required. The shape of the object mirrors the Axle Policy Schema.
Below is an example request specifying all the possible required fields that can be checked for existence. If you receive a 400 Input Validation error, please check that you provided only fields listed in the example below.If either the required fields or the declarations page check is satisfied, the Rule evaluates to pass.
Example Rule Request
Example Rule Response

vehicle-use-meets-requirements

Evaluates whether any vehicle on the policy has a specified use (e.g., business, commute, or pleasure). If a vin or yearMakeModel is provided, the rule ensures that the matched vehicle has the expected use.

Input Parameters

  • use (required): One of business, commute, or pleasure.
  • vin (optional): The Vehicle Identification Number of the vehicle you want to check. If provided, the rule will only evaluate the vehicle with this VIN.
  • yearMakeModel (optional): Formatted string, e.g., "2020 Toyota Camry" specifying which vehicle to check. If provided, the rule will only evaluate the vehicle that matches this yearMakeModel.

Responses

Example Usage

Example Rule Request
Example Rule Response

policy-created-via-credit-card

Evaluates whether the policy was created via Axle’s credit card submission flow.This Rule does not require any input.Example Usage
Example Rule Request
Example Rule Response

refreshed-within-days

Evaluates whether the policy has been refreshed within the last N days (relative to the current time the validation is executed).

Input Parameters

  • days (required): A non‑negative number representing how many days back from “now” to consider acceptable. If the policy’s refreshedAt timestamp is on or after the computed threshold (more recent than days days ago), the Rule resolves to pass; otherwise it resolves to fail.

Responses

This Rule does not currently return caution or unknown outcomes.

Metadata Returned

  • refreshedAt: The policy’s refreshedAt timestamp.
  • input.days: The input number of days used for comparison.
  • thresholdDate: The ISO timestamp representing the earliest acceptable refresh time (now - days).

Example Usage

Example Rule Request
Example Rule Response

Applicability of Evaluation Rules

Depending on the completion result of Axle ignition, not all Rules are applicable. For example, when manual is enabled and end-users decide to use Policy Form as their verification method, they enter only basic policy details through a short form. Since no coverage information is collected, attempting to validate missing data does not apply.
Configuration of completion results (i.e. manual vs. link) are set up during onboarding. You can modify the accepted completion results and manual configuration options by contacting the Axle team.
Due to insufficient information to validate the policy or compare provided values, the status of those rules will be marked as unknown. For the most comprehensive validation results, it is recommended to encourage your application’s users to complete via link or by uploading a full policy document such as declaration page. For more information on result outcomes, please consult Result Outcomes to see the difference between link vs. manual (in addition to different types of manual configurations)