> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axle.insure/llms.txt
> Use this file to discover all available pages before exploring further.

# Results

> Understanding the different completion results of an Axle Ignition session.

## Result outcomes

<Columns cols={2}>
  <Card title="Link (primary)" icon="link" iconType="solid">
    A link completion occurs when a user completes Ignition by sharing their policy from a verified data source.

    Typically, this means
    the user has connected their insurance carrier account and Axle has pulled the policy data directly from the insurance carrier, but can also include other methods of direct data access to the insurance carrier.
  </Card>

  <Card title="Manual (backup)" icon="page" iconType="sharp-solid">
    A manual completion occurs when the user submits their own data, either by uploading documents or entering insurance information directly.

    This can occur when a user cannot connect to their insurance account or the insurance carrier is not supported by Axle.
  </Card>
</Columns>

<Warning>
  **Disabling manual completions**

  Almost all applications choose to enable manual completion to provide a single source of data collection for all of their users.

  It is only recommended to disabling manual if you already require all insurance data to be 100% verified from the insurance carrier (e.g., by phone call) or you are confident that you have no use for user-submitted policy documents.
</Warning>

## Manual configuration choices

There are a few options that can be enabled for manual completions:

1. **Document AI**: The user uploads documents, and then [Axle's Document AI](https://www.axle.insure/product/document-ai) extracts the policy details from the document automatically. Document AI supports the following document types:

   * **ID Cards** typically contain the core policy details, but omit detailed policy information such as coverages and third parties.
   * **Declarations Pages** (which include new business documents, renewal declarations, etc.) typically contain the full policy details, but users may not be familiar with where to locate this document and may need to be guided to their insurance account or an email from their insurance agent.

   It is recommended to enable both ID Cards and Declarations Pages to provide the best experience for your users. However, if your use case absolutely requires coverages and third parties, you can contact the Axle team to only accept Declarations Pages.

   <Info>
     **Document AI Push-through**: After multiple attempts, if we are still
     unable to extract data from the user's uploaded document and unable to
     process it, Axle will use the Document AI push-through flow. The original
     source file is accepted as uploaded. The policy will be created with
     carrier set to "Other" and minimal or no data fields. See the [sandbox
     testing guide](/guides/sandbox/ignition-completion) for details on how to
     test this flow.
   </Info>

2. **Policy Form**: The user manually fills out a short form with key policy details and uploads any necessary documents. This option should only be used when collecting documents that are NOT yet supported by Axle's Document AI (e.g., external rental waivers, commercial documents, non-US insurance carriers).

3. **Credit Card Policy Form**: The user enters information to help locate their credit card-based rental car coverage. This should only be enabled for rental car operators.

<Warning>
  **Document AI callouts**

  **Carrier names are not standardized** — The Axle Policy `carrier` field will not standardize to Axle's [insurance carrier enums](/api-reference/carriers/get-carriers). Instead, the Axle Policy will include the insurance carrier name as it appears on the document (for example `"carrier": "State Farm Indemnity"` instead of `"carrier": "state-farm"`).

  **Missing data returns null or empty values** — If data is not present on the document, the Axle Policy will return a `null` value or empty array for the corresponding field. For example, if the expiration date is not listed on the document, the Policy will include `"expirationDate": null`. If the document does not have a section for third parties (lienholders, mortgagees, additional interests, etc.), the Policy will include `"thirdParties": []`.
</Warning>

## How each manual completion type impacts the Policy object

The fields available on an Axle [Policy](/api-reference/policies/policy) object depend on how the Ignition session was completed. The following sections detail which fields are typically available (or missing) for each manual completion type.

<AccordionGroup>
  <Accordion title="Document AI — ID Card">
    ID cards provide core policy details but **do not** include coverages, third parties, or premium information.

    **Fields typically available:**

    * `carrier`
    * `policyNumber`
    * `isActive`
    * `effectiveDate`
    * `expirationDate`
    * `address`
    * `properties`
    * `insureds`
    * `documents`

    **Fields typically missing (null or empty):**

    * `premium`
    * `coverages`
    * `thirdParties`

    ```json Example Policy theme={null}
    {
      "id": "pol_EkS8nGWnp4bGAFCC-xyz1",
      "account": "acc_hN3xo_hbrVw87AmkfWYPw",
      "type": "auto",
      "carrier": "State Farm Indemnity",
      "policyNumber": "987654321",
      "isActive": null,
      "effectiveDate": "2025-01-15T00:00:00.000Z",
      "expirationDate": "2025-07-15T00:00:00.000Z",
      "premium": null,
      "address": {
        "addressLine1": null,
        "addressLine2": null,
        "city": null,
        "state": "Georgia",
        "postalCode": null,
        "country": "USA"
      },
      "properties": [
        {
          "id": "prp_aBcDeFgHiJkLmNoPq",
          "type": "vehicle",
          "data": {
            "bodyStyle": null,
            "vin": "1HGCM82633A004352",
            "model": "Accord",
            "year": "2020",
            "make": "Honda",
            "use": null
          }
        }
      ],
      "coverages": [],
      "insureds": [
        {
          "type": null,
          "firstName": "John",
          "lastName": "Smith"
        }
      ],
      "thirdParties": [],
      "documents": [
        {
          "id": "doc_abc123def456.png",
          "source": "user",
          "name": "ID Card",
          "type": ["id-card"],
          "url": "<signed-url>",
          "issuedDate": null,
          "effectiveDate": null,
          "createdAt": "2025-01-20T00:00:00.000Z"
        }
      ],
      "createdAt": "2025-01-20T00:00:00.000Z",
      "modifiedAt": "2025-01-20T00:00:00.000Z",
      "refreshedAt": "2025-01-20T00:00:00.000Z"
    }
    ```
  </Accordion>

  <Accordion title="Document AI — Declarations Page">
    Declarations pages typically provide the most complete policy data of all manual completion types. Most fields will be populated, though availability depends on the specific document.

    **Fields typically available:**

    * `carrier`
    * `policyNumber`
    * `isActive`
    * `effectiveDate`
    * `expirationDate`
    * `premium`
    * `address`
    * `properties`
    * `coverages`
    * `insureds`
    * `thirdParties`
    * `documents`

    **Fields typically missing (null or empty):**

    * Varies by document — some may omit `thirdParties` or specific insured details like `dateOfBirthYear` and `licenseNo`

    ```json Example Policy theme={null}
    {
      "id": "pol_FjT9oHXop5cHBGDD-abc2",
      "account": "acc_iO4yp_icsWx98BnlgXZQx",
      "type": "auto",
      "carrier": "GEICO Casualty Company",
      "policyNumber": "4461832059",
      "isActive": null,
      "effectiveDate": "2025-03-01T00:00:00.000Z",
      "expirationDate": "2025-09-01T00:00:00.000Z",
      "premium": 1250,
      "address": {
        "addressLine1": "456 Oak Ave.",
        "addressLine2": null,
        "city": "Dallas",
        "state": "Texas",
        "postalCode": "75201",
        "country": "USA"
      },
      "properties": [
        {
          "id": "prp_rStUvWxYzAbCdEfGh",
          "type": "vehicle",
          "data": {
            "bodyStyle": "SUV",
            "vin": "WDDWJ8EB4KF000000",
            "model": "Model S",
            "year": "2022",
            "make": "Tesla",
            "use": null
          }
        }
      ],
      "coverages": [
        {
          "code": "BI",
          "label": "Bodily Injury",
          "limitPerPerson": 100000,
          "limitPerAccident": 300000
        },
        {
          "code": "PD",
          "label": "Property Damage",
          "limitPerAccident": 50000
        },
        {
          "code": "COMP",
          "label": "Comprehensive",
          "deductible": 500,
          "property": "prp_rStUvWxYzAbCdEfGh"
        },
        {
          "code": "COLL",
          "label": "Collision",
          "deductible": 500,
          "property": "prp_rStUvWxYzAbCdEfGh"
        }
      ],
      "insureds": [
        {
          "type": null,
          "firstName": "Jane",
          "lastName": "Doe"
        }
      ],
      "thirdParties": [
        {
          "property": "prp_rStUvWxYzAbCdEfGh",
          "type": "lienholder",
          "name": "Super Lending Trust",
          "address": {
            "addressLine1": "PO Box 71083",
            "addressLine2": null,
            "city": "Charlotte",
            "state": "NC",
            "postalCode": "28272",
            "country": null
          }
        }
      ],
      "documents": [
        {
          "id": "doc_ghi789jkl012.pdf",
          "source": "user",
          "name": "Declaration Page",
          "type": ["declaration-page"],
          "url": "<signed-url>",
          "issuedDate": null,
          "effectiveDate": null,
          "createdAt": "2025-03-05T00:00:00.000Z"
        }
      ],
      "createdAt": "2025-03-05T00:00:00.000Z",
      "modifiedAt": "2025-03-05T00:00:00.000Z",
      "refreshedAt": "2025-03-05T00:00:00.000Z"
    }
    ```
  </Accordion>

  <Accordion title="Document AI — Push-through">
    When Document AI is unable to extract data after multiple attempts, Axle falls back to the Document AI push-through flow. The original source file is accepted, and the Policy is created with minimal data.

    <Warning>
      All structured policy fields will be missing. The Policy will only contain the
      uploaded document and a carrier value of `"Other"`.
    </Warning>

    **Fields typically available:**

    * `carrier` (set to `"Other"`)
    * `documents`

    **Fields typically missing (null or empty):**

    * `policyNumber`
    * `isActive` (undefined)
    * `effectiveDate`
    * `expirationDate`
    * `premium`
    * `address`
    * `properties`
    * `coverages`
    * `insureds`
    * `thirdParties`

    ```json Example Policy theme={null}
    {
      "id": "pol_ImW2rKArS8fKEJGG-jkl5",
      "account": "acc_lR7bs_lfvZA21EqniACTa",
      "type": "auto",
      "carrier": "Other",
      "policyNumber": null,
      "effectiveDate": null,
      "expirationDate": null,
      "premium": null,
      "address": null,
      "properties": [],
      "coverages": [],
      "insureds": [],
      "thirdParties": [],
      "documents": [
        {
          "id": "doc_xyz567abc890.png",
          "source": "user",
          "name": "User Uploaded Document",
          "type": ["declaration-page"],
          "url": "<signed-url>",
          "issuedDate": null,
          "effectiveDate": null,
          "createdAt": "2025-05-01T00:00:00.000Z"
        }
      ],
      "createdAt": "2025-05-01T00:00:00.000Z",
      "modifiedAt": "2025-05-01T00:00:00.000Z",
      "refreshedAt": "2025-05-01T00:00:00.000Z"
    }
    ```
  </Accordion>

  <Accordion title="Policy Form">
    When a user fills out the policy form manually, only the fields entered by the user will be present. Most detailed policy fields will be missing.

    **Fields typically available:**

    * `carrier`
    * `policyNumber`
    * `effectiveDate`
    * `expirationDate`
    * `documents`

    **Fields typically missing (null or empty):**

    * `isActive` (undefined)
    * `premium`
    * `address`
    * `properties`
    * `coverages`
    * `insureds`
    * `thirdParties`

    ```json Example Policy theme={null}
    {
      "id": "pol_GkU0pIYpq6dICHEE-def3",
      "account": "acc_jP5zq_jdtXy09ColgYARy",
      "type": "auto",
      "carrier": "Other",
      "policyNumber": "POL-2025-1234",
      "effectiveDate": "2025-02-01T00:00:00.000Z",
      "expirationDate": "2025-08-01T00:00:00.000Z",
      "premium": null,
      "address": null,
      "properties": [],
      "coverages": [],
      "insureds": [],
      "thirdParties": [],
      "documents": [
        {
          "id": "doc_mno345pqr678.pdf",
          "source": "user",
          "name": "User Uploaded Document",
          "type": ["declaration-page"],
          "url": "<signed-url>",
          "issuedDate": null,
          "effectiveDate": null,
          "createdAt": "2025-02-10T00:00:00.000Z"
        }
      ],
      "createdAt": "2025-02-10T00:00:00.000Z",
      "modifiedAt": "2025-02-10T00:00:00.000Z",
      "refreshedAt": "2025-02-10T00:00:00.000Z"
    }
    ```
  </Accordion>

  <Accordion title="Credit Card Policy Form">
    Credit card policies contain very limited data since the user is providing credit card-based rental car coverage information. Nearly every standard policy field will be missing.

    **Fields typically available:**

    * `carrier`
    * `documents`

    **Fields typically missing (null or empty):**

    * `policyNumber`
    * `isActive` (undefined)
    * `effectiveDate`
    * `expirationDate`
    * `premium`
    * `address`
    * `properties`
    * `coverages`
    * `insureds`
    * `thirdParties`

    ```json Example Policy theme={null}
    {
      "id": "pol_HlV1qJZqr7eJDIFF-ghi4",
      "account": "acc_kQ6ar_keuYz10DpmhZBSz",
      "type": "auto",
      "carrier": "Other",
      "policyNumber": null,
      "effectiveDate": null,
      "expirationDate": null,
      "premium": null,
      "address": null,
      "properties": [],
      "coverages": [],
      "insureds": [],
      "thirdParties": [],
      "documents": [
        {
          "id": "doc_stu901uvw234.pdf",
          "source": "user",
          "name": "Credit Card Policy Document",
          "type": ["declaration-page"],
          "url": "<signed-url>",
          "issuedDate": null,
          "effectiveDate": null,
          "createdAt": "2025-04-01T00:00:00.000Z"
        }
      ],
      "createdAt": "2025-04-01T00:00:00.000Z",
      "modifiedAt": "2025-04-01T00:00:00.000Z",
      "refreshedAt": "2025-04-01T00:00:00.000Z"
    }
    ```
  </Accordion>
</AccordionGroup>

## `result` and `resultDetail` on Policy and Account objects

Every [Policy](/api-reference/policies/policy) and [Account](/api-reference/accounts/account) objects contain fields that indicate how insurance information was obtained for each Axle entity. **`result`** appears on Policy only and is an Ignition completion type that describes the high-level Policy outcome. **`resultDetail`** appears on both Policy and Account and identifies the process that describes how each Ignition was completed in detail.

### `result`

Ignition completion type that describes the high-level Policy outcome.

| Value    | Description                                                                                 |
| -------- | ------------------------------------------------------------------------------------------- |
| `basic`  | Policy data was retrieved from a basic carrier integration.                                 |
| `link`   | Policy data was retrieved directly from the carrier portal.                                 |
| `manual` | Policy data was obtained from user-submitted files and information.                         |
| `proxy`  | Policy data was obtained from a completed [Proxy Ignition](/guides/proxy-ignition) session. |

### `resultDetail`

Identifies the process that describes how each Ignition was completed in detail.

| Value                           | Description                                                                                                                                                                             |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `basic`                         | A simplified carrier flow was used to access policy data.                                                                                                                               |
| `credit-card-form`              | The end user entered information to help locate their credit card-based rental car coverage.                                                                                            |
| `document-ai-declarations-page` | Document AI extracted policy data from an uploaded declarations page, which typically contains the full policy details.                                                                 |
| `document-ai-id-card`           | Document AI extracted policy data from an uploaded ID card, which typically contains the core policy details but omits detailed policy information such as coverages and third parties. |
| `document-ai-push-through`      | Document AI was unable to extract insurance data after multiple attempts, so the original source file was accepted as is, and the Policy object was created with minimal data.          |
| `manual-form`                   | The end user manually filled out a short form with key policy details and uploaded additional necessary documents.                                                                      |
| `policy-lookup`                 | A search using policy number and other policy details (VIN, postal code, etc.) was used to retrieve policy data.                                                                        |
| `policy-lookup-no-comp-coll`    | Same as `policy-lookup`, except no comprehensive or collision coverages exist for this policy, so limited data was retrieved.                                                           |
| `policy-lookup-no-lienholder`   | `policy-lookup` completed with no lienholder on the policy or the requesting client was not the lienholder on file, so limited data was retrieved.                                      |
| `user-portal-login`             | A user signed in through the carrier user portal to retrieve carrier-sourced policy data.                                                                                               |
