# Policy-to-Policy Comparison

Compare an expiring policy with its renewal, proposed, or replacement policy, attribute by attribute, so a reviewer opens a finished side-by-side with every reduction already flagged.

## The business problem

Every renewal and every remarketing ends with the same question: what did the insured give up, and what did they gain? Answering it means reading two policies, often laid out differently, and lining up limits, deductibles, retentions, triggers, and forms of coverage across every line. Done by hand it's slow, and the misses are predictable — a deductible that quietly doubled, or a coverage that dropped off, is easy to miss next to a headline premium change.

The **Policy-to-Policy Comparison** template automates the reading and lining-up: it extracts both policies, works out which is the expiring one, compares every attribute, classifies each change as a reduction, an improvement, or no change, checks the new umbrella against the new primary limits, and hands a prepared comparison to a reviewer.

> **Important: the comparison is decision support, not a decision.** The agent lays out every difference and says which ones reduce coverage; it doesn't advise the insured or decide whether the new policy is acceptable. A reviewer approves every comparison before the item is finalized.

## Trigger and source data

The template ships with the **Manual File Upload** trigger. You can configure other triggers, including a connection to an Outlook email inbox. Inbound webhooks, scheduled/timer triggers, and SFTP are **not currently available**; drive runs from another system through the [Bevaya API](../api/flow-executions#run-a-flow). See [Configure triggers](../build-ai-agents/triggers.md).

Upload a package containing two policies — an email with attachments, a zip, or a combined PDF. Each policy can arrive whole or in sections:

- A **complete policy** PDF, or **declarations pages** and **coverage parts or schedules** separately
- A **quote or proposal**, when the new policy hasn't been issued yet
- **Supporting documents**, such as a broker cover memo (optional)

Documents don't need to identify which policy they belong to — the flow works that out itself.

## Template starting point

Create an AI agent from the **Policy-to-Policy Comparison** template for a working flow that extracts, compares, and briefs out of the box. Open it in the canvas, select an environment, click **Start Editing**, and tune it to your book — the attributes extracted and the rules for what counts as a reduction. See [Create an AI Agent](../build-ai-agents/create-agent.md).

## What the template preconfigures

| Step in the flow | Node it uses | Category |
| --- | --- | --- |
| Prepare the uploaded files | [Read Files](../build-ai-agents/utility-nodes.md) | Utility |
| Process each document in the package | [For Loop](../build-ai-agents/control-nodes.md) | Control |
| Classify each document and extract policy values | [InsurGPT: Custom](../build-ai-agents/insurgpt-nodes.md) | InsurGPT |
| Route each document to the right extractor | [Switch](../build-ai-agents/control-nodes.md) | Control |
| Check extracted values against confidence rules | [Field Validation](../build-ai-agents/utility-nodes.md) | Utility |
| Assign prior and new, compare, and classify every change | [Custom Code Block](../build-ai-agents/utility-nodes.md) | Utility |
| Route the prepared comparison to a reviewer | [Review](../build-ai-agents/utility-nodes.md) | Utility |
| Close out the item | [Complete](../build-ai-agents/action-nodes.md) | Action |

The comparison step produces the findings shown to the reviewer — an overall assessment (Favorable, Neutral, Unfavorable, or Incomplete), both policies' carrier, number, and period, the premium change, every compared attribute shown as prior, new, and change, the list of reductions and improvements, an umbrella underlying check, and recommended next steps.

## What builders must configure before deployment

- **Attributes.** The template covers declarations, general liability, property, auto, and umbrella — add fields for other lines your book needs.
- **Reduction rules.** Review which changes count as reductions and the premium threshold for an Unfavorable assessment.
- **A connection to your systems, if you want one.** We recommend an [HTTP node](../build-ai-agents/utility-nodes.md) to pull the expiring policy from your agency management or policy administration system, so only the new policy needs to be uploaded.
- **Validation thresholds and review routing.** Set the confidence threshold and the reviewer assignment. See [Utility nodes](../build-ai-agents/utility-nodes.md).

## How the AI agent behaves

The agent classifies each document and extracts every attribute it contains, working only from the supplied documents — a coverage part missing from a document is left empty, never inferred from the other policy. It groups documents into policies by policy number, assigns the earlier-dated one as expiring (falling back to the document's own wording, then flagging the assignment as uncertain if neither settles it), and compares every attribute as written. Any reduction, or a premium increase above 10% with nothing gained, makes the assessment Unfavorable. Every comparison goes to review — the flow never completes one on its own.

## Human review model

The reviewer works the item in the Bevaya Platform across two tabs:

- The **Insights tab** — the overall assessment, premium movement, and number of reductions as key fields; the reductions, improvements, and umbrella underlying check as key insights; and recommended next steps.
- The **Review tab** — organized by comparison, with one group per coverage line showing every attribute as prior, new, and change, each linked to its source document and page. The reviewer can correct an extraction before approving.

Reviewers can work items and reviews but cannot build or run flows. See [Human review](../monitor-review/human-review.md).

## Run status and reporting

Each package becomes an item moving through **In Progress, Review, Complete, Failed, Canceled**. Watch runs in [Run history](../monitor-review/run-history.md) and live counts by status in [Item status reporting](../monitor-review/item-status-reporting.md).

## Example run

A bakery's broker uploads the expiring package policy and the renewal policy from the same carrier. The renewal premium is up 8%.

1. The flow classifies and extracts both policies and assigns the expiring one by its earlier effective date.
2. The comparison finds most terms unchanged, but two reductions: the property deductible doubled, and hired auto liability is no longer included.
3. The flow assesses the renewal **Unfavorable** and routes the item to review with the two reductions listed as next steps.
4. The reviewer confirms both findings against the source pages and approves.

## Common failure modes

- **Only one policy in the package.** The comparison is marked Incomplete, and the first next step asks for the missing policy.
- **Sides that can't be settled.** If neither policy describes itself as expiring or renewal and the periods don't settle it, the flow flags the assignment as uncertain for the reviewer to confirm.
- **Unassigned pages.** Coverage parts without a policy number or dates can't be tied to either policy and are flagged rather than scored as a change.
- **Forms and endorsements.** The template doesn't compare endorsement schedules — a restrictive endorsement won't show as a reduction, so next steps always remind the reviewer to check forms by hand.

## Recommended rollout path

1. **Build and test** on sample packages with **Run Draft** — a routine renewal, a remarketing to a new carrier, and a package with a known reduction. See [Test and debug a draft](../build-ai-agents/test-debug-draft.md).
2. **Validate the reduction rules** against comparisons your account managers have already done by hand.
3. **Pilot with every comparison reviewed** to build trust before adjusting review routing.
4. **Promote to production.** See [Drafts and publishing](../build-ai-agents/drafts-publishing.md).

## Where to go next

- [Policy Renewal Handling](./policy-renewal.md) — re-underwriting an expiring policy and pricing its renewal.
- [Claim-to-Policy Comparison](./claims-to-policy-comparison.md) — comparing a new loss against the policy in force.
- [Utility nodes](../build-ai-agents/utility-nodes.md) — Field Validation, Custom Code Block, and Review.
- [InsurGPT nodes](../build-ai-agents/insurgpt-nodes.md) — classification and extraction.
- [Human review](../monitor-review/human-review.md) — the Insights and Review tabs a reviewer works from.
- [Use cases overview](./overview.md) — the full catalog of supported patterns.
