Guides
- Quickstart
- Axle Ignition
- Axle for Platforms
- Monitoring
- Policy Validation (Beta)
- Sandbox
API Reference
- Overview
- Ignition
- Tokens
- Accounts
- Policies
- Carriers
- Platform
- Sandbox
Policy Validation (Beta)
Evaluate a set of Rules against a policy to determine if your application’s requirements are met.
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:
Status | Description |
---|---|
pass | The policy meets all requirements of the Rule |
fail | The policy does not meet all the requirements of the Rule |
caution | The policy only partially meets the requirements of the Rule or the Rule returns an inconclusive outcome. |
unknown | Not enough data was available to determine the outcome of the Rule |
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 succeded in passing against all of the specified Rules.fail
means that one or more specified Rules evaluated to a status offail
.caution
means that one or more specified Rules evaluated to a status ofcaution
. In most cases, it is recommended to complete a manual review of the policy.
The response also contains two 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.
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.
Status | Cause |
---|---|
pass | The policy is currently active |
fail | The policy is not currently active |
caution | The isActive field is null , meaning Axle could not confirm the isActive status with the carrier |
unknown | The isActive field is undefined , meaning it’s a manual policy |
"policy-active": {
"status": "pass",
"metadata": {
"isActive": true
}
}
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.
- Their policy includes collision coverage and personal collision coverage extends to a rental vehicle.
- 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.
- 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. When messaging the recommendation to your application’s user,
Status | Cause |
---|---|
pass | The policy is likely to cover an insured for collision damage to their rental vehicle either because of their personal collision coverage or due to state regulations. |
fail | The policy is unlikely to provide coverage for collision damage to a rental vehicle. |
caution | The Rental Coverage Validation AI is not confident in its recommendation. |
unknown | The policy cannot be matched to the required resources to make a recommendation. |
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.
Message Code | Evaluation Status | Message |
---|---|---|
coll-extends-to-rental | pass | The policy has collision coverage and the matching policy agreements indicate that collision coverage extends to rental vehicles. |
pd-covers-rental-collision | pass | The policy is underwritten in a state in which policies are required to cover collision damage under property damage liability terms. |
endorsement-covers-rental-collision | pass | The policy is underwritten in a state in which policies are required to cover collision damage under an endorsement. |
coll-extends-to-rental-with-caution | caution | The policy has collision coverage, but the matching policy agreements have conflicting answers about whether collision coverage extends to rental vehicles. |
coll-extends-to-rental-with-unknown | unknown | The policy has collision coverage, but there is not enough information to determine if the policy extends collision coverage to rental vehicles. |
coll-does-not-extend-to-rental | fail | The policy has collision coverage, but the matching policy agreements indicate that collision coverage does not extend to rental vehicles. |
coll-not-present | fail | The policy does not have collision coverage, and therefore cannot extend collision coverage to rental vehicles. |
"rental-covered-for-collision": {
"status": "pass",
"message": {
"code": "...",
"displayText": "..."
}
"breakdown": {
"collision-exists": {
"value": "pass",
"metadata": {
"coverages": [
{
"code": "COLL",
"label": "Collision",
"deductible": 375,
"property": "prp_uSdzLVpi8c76H7kl6AQ-F"
},
...
]
}
"collision-coverage-extends-to-rental": {
"status": "pass",
"metadata": {
"carrier": "state-farm",
"state": "NY"
}
},
"property-damage-covers-rental-collision": {
"status": "pass",
"metadata": {
"coverages": [
{
"code": "PD",
"label": "Property Damage",
"limitPerAccident": 50000,
"property": "prp_uSdzLVpi8c76H7kl6AQ-F"
}
],
"state": "NY"
}
},
"endorsement-covers-rental-collision": {
"status": "pass",
"metadata": {
"state": "NY"
}
}
}
},
"metadata": {
}
}
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.
username: user-rental-cover
password: pass-rental-cover
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.
Status | Cause |
---|---|
pass | The policy’s expiration date is on or after the provided input date. |
fail | The policy’s expiration date is before the provided input date. |
unknown | The policy’s expiration date is null . |
This Rule requires additional input to be evaluated. Specifically, the input
must include a date
property as an ISO 8601 string, representing the date to compare against the policy’s expiration 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.
{
"rule": "expiration-date-comparison",
"input": {
"date": "2025-01-01"
}
}
The returned evaluation will include
- The policy’s expiration date.
- The input date that was provided.
"expiration-date-comparison": {
"status": "pass",
"metadata": {
"policyExpirationDate": "2025-02-01",
"input": {
"date": "2025-01-01"
}
}
}
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 Criteria
The 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
.
-
collision-exists
: Determines if collision coverage is present on the policy for any vehicle or, if avin
is provided, for a specified vehicle. -
collision-deductible-comparison
(optional): Verifies if the provideddeductible
is less than or equal to the deductible specified in the collision coverage of the policy. This criteria will only run ifcollision-exists
results in apass
and the optionaldeductible
is provided.- If no
vin
is provided, the provideddeductible
will be verified against all collision coverages listed on the policy. - If a
vin
is provided, the provideddeductible
will be verified against only the collision coverage listed for the specified vehicle.
- If no
Status | Cause |
---|---|
pass | The policy has collision coverage and meets all specified requirements (deductible and/or vin if provided) |
fail | The policy either lacks collision coverage or doesn’t meet the specified deductible requirements |
unknown | Not enough information was available to evaluate the coverage requirements |
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
.
Message Code | Evaluation Status | Message |
---|---|---|
coll-exists | pass | The COLL coverage exists on this policy. |
coll-exists-for-vin | pass | The COLL coverage exists on this policy for the specified vehicle. |
coll-valid-deductible | pass | The COLL coverage(s) on this policy have deductible(s) less than or equal to [inputDeductible]. |
coll-valid-deductible-for-vin | pass | The COLL coverage(s) on this policy for this specified vehicle have deductible(s) less than or equal to [inputDeductible]. |
coll-does-not-exist | fail | The COLL coverage does not exist on this policy. |
coll-does-not-exist-for-vin | fail | The COLL coverage does not exist on this policy for the specified vehicle. |
coll-invalid-deductible | fail | The COLL coverage(s) on this policy all have deductibles greater than [inputDeductible]. |
coll-invalid-deductible-for-vin | fail | The COLL coverage(s) on this policy for this specified vehicle all have deductibles greater than [inputDeductible]. |
coll-unknown-deductible | unknown | The COLL coverage(s) on this policy have unknown deductibles. |
coll-unknown-vin | unknown | The Axle Policy has incomplete property VIN data. Validation cannot be performed. |
Example Usage
This 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.
{
rule: "collision-coverage-meets-requirements",
input: {
vin: "5FNRL38209B014050",
deductible: 1000
}
}
"collision-coverage-meets-requirements": {
status: "pass",
metadata: {
input: {
vin: "5FNRL38209B014050",
deductible: 1000
}
},
breakdown: {
"collision-exists": {
status: "pass",
metadata: {
coverages: [
{
code: "COLL",
label: "Collision",
deductible: 500,
property: "prp_tmGUxLpgHjmW9r6M6WjhS",
},
],
input: {
coverageCode: "COLL",
vin: "5FNRL38209B014050",
}
},
},
"collision-deductible-comparison": {
status: "pass",
metadata: {
coverages: [
{
code: "COLL",
label: "Collision",
deductible: 500,
property: "prp_tmGUxLpgHjmW9r6M6WjhS",
},
],
input: { deductible: 1000, vin: "5FNRL38209B014050" },
},
},
},
message: {
code: "coll-valid-deductible-for-vin",
displayText:
"The COLL coverage(s) on this policy for this specified vehicle have deductible(s) less than or equal to $1000.",
},
}
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 Criteria
The 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
.
-
comprehensive-exists
: Determines if comprehensive coverage is present on the policy for any vehicle or, if avin
is provided, for a specified vehicle. -
comprehensive-deductible-comparison
(optional): Verifies if the provideddeductible
is less than or equal to the deductible specified in the comprehensive coverage of the policy. This criteria will only run ifcomprehensive-exists
results in apass
and the optionaldeductible
is provided.
- If no
vin
is provided, the provideddeductible
will be verified against all comprehensive coverages listed on the policy. - If a
vin
is provided, the provideddeductible
will be verified against only the comprehensive coverage listed for the specified vehicle.
Status | Cause |
---|---|
pass | The policy has comprehensive coverage and meets all specified requirements (deductible and/or vin if provided) |
fail | The policy either lacks comprehensive coverage or doesn’t meet the specified deductible requirements |
unknown | Not enough information was available to evaluate the coverage requirements |
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
.
Message Code | Evaluation Status | Message |
---|---|---|
comp-exists | pass | The COMP coverage exists on this policy. |
comp-exists-for-vin | pass | The COMP coverage exists on this policy for the specified vehicle. |
comp-valid-deductible | pass | The COMP coverage(s) on this policy have deductible(s) less than or equal to [inputDeductible]. |
comp-valid-deductible-for-vin | pass | The COMP coverage(s) on this policy for this specified vehicle have deductible(s) less than or equal to [inputDeductible]. |
comp-does-not-exist | fail | The COMP coverage does not exist on this policy. |
comp-does-not-exist-for-vin | fail | The COMP coverage does not exist on this policy for the specified vehicle. |
comp-invalid-deductible | fail | The COMP coverage(s) on this policy all have deductibles greater than [inputDeductible]. |
comp-invalid-deductible-for-vin | fail | The COMP coverage(s) on this policy for this specified vehicle all have deductibles greater than [inputDeductible]. |
comp-unknown-deductible | unknown | The COMP coverage(s) on this policy have unknown deductibles. |
comp-unknown-vin | unknown | The Axle Policy has incomplete property VIN data. Validation cannot be performed. |
Example Usage
This 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.
{
rule: "comprehensive-coverage-meets-requirements",
input: {
vin: "5FNRL38209B014050",
deductible: 1000
}
}
"comprehensive-coverage-meets-requirements": {
status: "pass",
metadata: {
input: {
vin: "5FNRL38209B014050",
deductible: 1000
}
},
breakdown: {
"comprehensive-exists": {
status: "pass",
metadata: {
coverages: [
{
code: "COMP",
label: "Comprehensive",
deductible: 500,
property: "prp_tmGUxLpgHjmW9r6M6WjhS",
},
],
input: {
coverageCode: "COMP",
vin: "5FNRL38209B014050",
}
},
},
"comprehensive-deductible-comparison": {
status: "pass",
metadata: {
coverages: [
{
code: "COMP",
label: "Comprehensive",
deductible: 500,
property: "prp_tmGUxLpgHjmW9r6M6WjhS",
},
],
input: { deductible: 1000, vin: "5FNRL38209B014050" },
},
},
},
message: {
code: "comp-valid-deductible-for-vin",
displayText:
"The COMP coverage(s) on this policy for this specified vehicle have deductible(s) less than or equal to $1000.",
},
}
insureds-match
Evaluates whether all of the input insured names are listed on the Axle policy.
Status | Cause |
---|---|
pass | All of the input insured names are listed on the Axle policy. |
caution | One or more of the input insured names passed a fuzzy match. This occurs when either the input name or Axle policy name is missing an additional first name or middle name (e.g. “John Tracy Smith” vs. “John Smith”). |
fail | One or more of the input insured names were not listed on the Axle policy. |
unknown | An error occurred during validation. |
Input Parameters
insuredNames
: An array of full names provided as strings. Each name should be provided in the format"firstName middleName lastName suffix"
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
{
"rule": "insureds-match",
"input": {
"insuredNames": ["John Tracy Smith", "Alex Jacob Smith", "Jane Doe"]
}
}
"insureds-match": {
"status": "fail",
"metadata": {
"pass": ["John Tracy Smith", "Alex Jacob Smith"],
"fail": ["Jane Doe"],
"caution": [],
"unknown": [],
}
}