Foresee
Server Details
Let AI assistants shop for home and auto insurance: compare quote estimates across every carrier.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Foresee-Tech/foresee
- GitHub Stars
- 0
TDQS
Scored across 2 tools
Both tools deliver insurance quotes, but live_carrier_quotes explicitly commissions live agent walks on carrier sites while quote_insurance returns instant estimates. The descriptions clarify the sequence (instant first, live as follow-up), though an agent might still initially confuse which tool to use for firm numbers.
Both names use snake_case, but quote_insurance follows a verb_noun pattern while live_carrier_quotes is an adjective_noun phrase. The styles are readable but not uniform, creating a minor inconsistency in the naming convention.
Two tools is thin for a quoting service, but each tool is extremely broad and internally complex, handling many sub-actions (commissioning, collecting, refining, consent). Borderline: the count feels low even though the depth justifies some consolidation.
The set covers instant and live quoting across auto, home, and renters, with refinement via re-calls and clear handling of unsupported lines. Binding/payment are out of scope by design, but a tool to list supported carriers/states or manage saved profiles could fill minor gaps.
Available Tools
2 toolslive_carrier_quotesLive carrier quotesDestructiveIdempotentInspect
Purpose: confirm quote estimates on the carriers' own quote sites, via Foresee agents completing their real quote flows.
IDEMPOTENT, keyed on the profile: the first call commissions the
walks; calling again with the same profile collects progress and
results instead of re-submitting anything — whatever the ask. A
profile that has already been walked returns those results (the
carriers are never asked twice): the envelope's
``coverage_selection`` names the ask the walk typed, and each quote
carries the carrier's other recorded coverage options as
``variants``, so a new ask reads the same run. So call once to
start, then re-call after a few minutes to collect; agents still
working report their stage.
Ask ONCE, before the first call: the consent disclosure below, the
identity fields, and the questions listed at the end of this
description under EVERY LINE and under the line being walked — all
in one message, so the first commissioning call walks every carrier. A call made before
consent submits nothing and answers ``authorization_required`` with
the profile's ``needs``, for when you have not asked yet.
No sign-in is required. The one hard requirement is the user's own
consent, captured in-band: BEFORE the commissioning call, you MUST
tell the user, plainly: Foresee will submit their details to the
named carriers; the carriers may obtain their credit-based insurance
score (a soft pull, with no impact on your credit score); and the
carriers may contact them by email or phone. Then get their explicit
go-ahead and pass their affirmation VERBATIM as ``user_authorization``
(e.g. "yes, go ahead"). The affirmation is stored as the durable
consent record for the dispatch; without one the call is refused with
``authorization_required``. Foresee only collects quotes; it does
not take payment or bind insurance.
Collect the ``identity`` fields in chat. Nothing is filled in from
anywhere else: what the walks type is what the call states.
A ``missing_facts`` response is normal: carrier forms insist on facts
(body style, purchase date, age first licensed…) that Foresee will not
invent. Each ``needs`` entry carries the carrier (``scope``), the
facts in the walk's own words (``need``), and ``fields[]`` — per
fact, the ``ask`` beside the exact schema path to pass the answer
under (``field``, e.g. ``auto.vehicles[].purchase_date``;
``identity.…`` paths go on ``identity``). Ask the user for exactly
those facts, then call again with the answers merged in at those
paths. A fact with no ``field`` has no profile home yet — relay
that carrier's ask as unavailable rather than guessing a key. While
any carrier waits on a fact the user can answer, nothing is
submitted: the carriers already able to go are listed under
``ready`` and held, so every carrier is walked together. Only when
the user cannot or will not answer, re-call with
``dispatch_ready_only=true`` to walk the ready ones now; that
receipt is PARTIAL — follow its ``recover`` block: re-call with the
new facts merged AND ``carriers`` set to exactly
``recover.carriers`` — a changed profile is a new dispatch, and an
unscoped re-call would re-submit the already-walked carriers too.
Unasserted MINOR facts are not asked: a form field that is really a
claim nobody made (an anti-theft device, a defensive-driving course,
years licensed abroad) is answered with the declared no-claim value —
never a discount claim — and every one comes back in ``assumptions``
(``field`` + the ``assumed`` value submitted). Relay them with the
results; if the user corrects one, re-call with the real value at
that path.
``carriers``: OMIT it to walk every carrier walked for the line in
the user's state — that is the default and the goal. Pass it only
when the user asks to limit the walk: most carriers with an estimate
have no walk, so a shortlist copied from quote_insurance results is
refused with ``carriers_not_walked`` naming the ``walkable`` set to
choose from. Those
carriers keep their estimates; the live run adds real quotes from
every walked carrier.
``lines`` names WHICH line to walk, exactly one per call (a fan-out
drives one form family): ``{"auto": {...the ask...}}``,
``{"home": null}``, or ``{"renters": {"coverage_c": 30000,
"coverage_e": 100000, "coverage_f": 1000, "deductible": 500}}``. An
AUTO walk's ask is REQUIRED — the limits and deductibles the agents
ask the carriers for, as actual numbers (`bi` "100/300", `pd` 100,
`coll_deductible` 500, `comp_deductible` 500, the same four axes as
quote_insurance); without it the tool answers with the
selection-required message; ask the user, then call again. A HOME
walk takes NO ask — the carrier's own form prices its package
(dwelling amount from its replacement-cost estimate) and the agents
report what it chose. A RENTERS walk requires its four axes as
actual dollars — ``coverage_c`` (personal-property/contents),
``coverage_e`` (personal liability), ``coverage_f`` (guest medical)
and ``deductible`` — the agents type the user's numbers on the form
instead of accepting its defaults, and Foresee never invents them.
Quotes come back with evidence. ``quote.premium`` is VERBATIM as
the carrier's page printed it, and ``term_months`` says what it
covers — a 6-month figure is not a monthly one. When term_months
is known, present the monthly equivalent (premium ÷ term_months)
so carriers compare on one basis, the page's own figure beside it;
without it, relay the printed premium and say the monthly
equivalent is unknown. A carrier may
also decline the risk — a real answer to relay, not an error. Every
carrier without a quote says why in ``detail``: ``declined`` is the
carrier's own answer; ``missing_facts`` lists under ``fields`` (each
an ``ask`` and its ``field`` path) what its form wanted — ask the
user, then re-call with the answers merged and ``carriers`` set to
that carrier; ``failed`` and ``not_quoted`` mean Foresee couldn't get
that quote — say so, never that the carrier turned the user down.
``skipped`` and ``not_dispatched`` name the carriers NOT walked,
each with the reason — relay those too; a carrier never silently
vanishes.What the carriers' forms ask. In ONE message, together with the consent disclosure and BEFORE the first call, ask the user the EVERY LINE questions plus the questions for each line they want priced, then omit carriers to walk every carrier in the user's state. Each fact names the path its answer goes under.
EVERY LINE:
identity: legal name, date of birth, street address, email and phone (identity)
household: the spouse of a married applicant (auto.drivers[])
AUTO ONLY:
household: gender (gender); marital status (marital_status)
work: occupation (occupation)
residence: whether the home is owned or rented (home_ownership_status); how long at this address (months_at_residence)
each car: whether the vehicle is owned, financed or leased (auto.vehicles[].ownership); when the vehicle was bought (auto.vehicles[].purchase_date); whether the vehicle was new when bought (auto.vehicles[].bought_new); what the vehicle cost new (auto.vehicles[].cost)
how each car is used: what the vehicle is used for (auto.vehicles[].primary_use); annual mileage (auto.vehicles[].annual_mileage)
each driver: driver's licence number (auto.drivers[].drivers_license_number); age first licensed (auto.drivers[].age_first_licensed); violation history (auto.drivers[].violations); loss history (auto.drivers[].accidents)
current insurance: whether there is insurance now (prior_insurance.insured); prior carrier (prior_insurance.carrier); when the prior policy ran (prior_insurance.since); the bodily injury limits carried now (prior_insurance.limits); a lapse in coverage (prior_insurance.lapse)
HOME ONLY:
the home: when the property was bought (property.purchased); what the property is used for (property.occupancy); how many people live there (property.household)
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | ||
| profile | Yes | ||
| carriers | No | ||
| identity | No | ||
| user_authorization | No | ||
| dispatch_ready_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| error | No | |
| needs | No | |
| ready | No | |
| agents | No | |
| detail | No | |
| status | No | |
| recover | No | |
| skipped | No | |
| assumptions | No | |
| example_arguments | No | |
| coverage_selection | No | |
| authorization_recorded | No |
quote_insuranceInstant insurance quote estimatesRead-onlyInspect
Purpose: generate instant, itemized quote estimates from the carriers Foresee supports, across the lines and states Foresee currently serves, in one call — the LIVE TODAY line at the end of this description names today's set.
`lines` is REQUIRED and is ONE map: each key names a line to price (e.g.
"auto", "renters", "home" — plain words are fine), each value is that
line's coverage ask as actual numbers. A line Foresee doesn't quote in
the user's state comes back under `skipped`: `lines` names each one and
`message` is one sentence, written to be relayed to the user as-is,
naming what Foresee does quote in that state. For auto
the ask has four axes — `bi` (bodily-injury liability, per-person/
per-accident in $000s, e.g. "100/300"), `pd` (property-damage liability in
$000s, e.g. 100), `coll_deductible` (collision deductible in dollars, e.g.
500) and `comp_deductible` (comprehensive deductible in dollars, e.g.
500); `um` and `medpay` are optional. A renters ask has four axes —
`coverage_c` (personal-property/contents limit in dollars, e.g. 30000),
`coverage_e` (personal liability in dollars, e.g. 100000), `coverage_f`
(guest medical in dollars, e.g. 1000) and `deductible` (all-perils, in
dollars, e.g. 500); `coverage_d` is optional. A home ask: `coverage_a`
(the dwelling's replacement cost in dollars), `coverage_e` (e.g. 300000),
`coverage_f` (e.g. 1000) and `aop_deductible` (all-other-perils
deductible in dollars, e.g. 1000). There are no named coverage levels
and the server never defaults: pass exact numbers. An omitted OPTIONAL
axis (`um`, `medpay`, `coverage_d`) keeps each carrier's own
default — the quote's per-coverage lines show what was rated. Any
numbers at or above the state's legal minimum work as the ask (an auto
`bi`/`pd` below it prices nothing — no carrier may sell that policy — and
comes back under `coverage_required` naming the minimum); each carrier's
`price_ladder` prices every other rung, so a starting
selection is easy to refine after the fact. An incomplete ask on a
live line prices nothing and answers with `coverage_required` naming that
line's own axes; an axis supplied with a value no carrier offers (`bi`
"banana", a negative deductible) is refused the same way, naming the bad
value and the format the axis takes. Each supported carrier is priced at
the selection given; a carrier that doesn't offer an asked rung is priced
at its nearest offered one and says so: its entry carries
`rated_vs_asked` (per axis: `asked`, `rated`, and `coverage` "less"/"more"
than asked; the dense text puts it on the `C` row as `rated`). That price is NOT
like-for-like — state the rated limits next to it every time you show it
(e.g. "$255/mo — 30/60 BI / $25k PD, the most this carrier offers, not
the 100/300 / $100k you asked for"), and never let it headline or anchor
a cheapest/spread claim without saying so. A carrier Foresee can't price
appears in `failures` with the reason, as does one Foresee can't price
for a line it was asked on (no program served there yet, or the carrier
doesn't sell that line in the state) — a carrier never silently vanishes
from a line's results. Priced results come back per line under
`by_line`.
Profile requirements: ZIP code, age (or dob) and — for auto — each
vehicle's year/make/model are REQUIRED; they have no server-side
fallback. A missing or mistyped one errors at the schema with guidance;
a value that fits the schema but cannot rate ("not-a-zip", a negative
age) comes back in `profile_required` naming it, with guidance on what
the field takes. Use the profile schema's exact field names: a key the
schema doesn't name is carried but never rated. A complete call — a
25-year-old in Oakland with a 2021 Civic, a January 2025 speeding ticket
and a 2023 at-fault accident, asking for 100/300 BI, $100k PD and $500
collision/comprehensive deductibles:
{"profile": {"zip_code": "94621", "age": 25, "auto": {"drivers": [{"violations": [{"on": "2025-01", "kind": "speeding"}], "accidents": [{"on": "2023-06-15", "at_fault": true, "amount": 4200}]}], "vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}}, "lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}}}
Every violation needs `kind` and `on`, every accident `on`; an
incomplete entry is refused naming its path, never assumed away.
Each carrier returns a **point estimate**
(`monthly`) plus a `confidence_interval` that reflects only what's genuinely
unresolvable (irreducible), NOT missing profile fields. A field the caller
omits is filled with ONE declared value and reported in `assumptions` /
`tighten_by` (the reducible "tell us X and we sharpen" gap) — the response
is built to be presented early and refined, never widened into
a vague range. Each entry's `field` is the exact profile path to send
the user's real answer under (e.g. `auto.drivers[].violations`), and
`tighten_by` lists those same paths. The one exception is
`incident_details`: it is answered by completing the incident entries
already sent (dates, fault, BI split), not under a fresh key.
Each carrier's `quote` carries every sub-coverage line (BI/PD/collision/
comprehensive/UM…) with its monthly price, at the selection you passed (echoed
as `coverage_selection`). Most carriers also carry a `price_ladder`: for each
coverage lever of the line (auto: BI limit, PD limit, collision/comprehensive
deductible; renters: deductible and the C/E/F limits; home: AOP deductible
and the A/E/F limits) the exact
price at every rung, one lever moved at a time with everything else
held at the user's selection — the ladder is anchored at the selection you
passed, so its `anchor.monthly` is the carrier's `monthly`. It answers
limit/deductible what-ifs with real marginal prices.
Every ladder number IS an exact re-rate; a combined change or an unlisted
rung has no derivable price (rating is not linear), so those price only
through a re-call with the new `coverage_selection`. A profile what-if
(a cleaner record, another vehicle, a different ZIP) prices the same way:
re-call with the changed profile.RESULT FORMAT: compact machine text on dense, one section per line. Each section opens Q sel=<the coverage_selection priced, as JSON>. assumptions:, tighten_by:, input_flags: and not_rated: carry those fields; each entry's field (and each tighten_by item) is the profile path to send the user's answer under, and incident_details is answered by completing the incident entries already sent. not_priced: ,…: ; … is the line's failures, grouped by reason. skipped ,…: names the lines not quoted in this state. Row types — C: carrier|entity|monthly|ci lo-hi, then |rated =(asked ,less|more);… when the price is for a rung other than the ask (rated_vs_asked). W: a warning on the carrier above. L: monthly $ per coverage line (already monthly, every carrier), under codes that mean the same coverage at every carrier: BI PD UMBI UIMBI UMPD MEDPAY PIP COLL COMP RENTAL TOWING GAP; A+B is one premium covering both (BI+PD); FEE is a flat fee; any other code is a coverage only that carrier sells. D =option:±$: the change in the carrier's monthly for each option of that lever, everything else held at the selection; (asked ) means X is not an option and the price sits at the selected rung — answer deductible/limit what-ifs from D without another call (new monthly = monthly + delta). Only state numbers that appear in the result or follow from monthly + a D delta; if a rung is not in D for a carrier, say the carrier has no such option rather than guessing.
When the user wants firm numbers straight from the carriers, offer live carrier quotes: Foresee agents complete the carriers' real quote flows via live_carrier_quotes (which explains the required disclosure + consent affirmation; no sign-in is needed). Instant quotes stay the first answer; live quotes are the follow-up.
LIVE TODAY: Foresee quotes auto in CA today.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | Yes | ||
| profile | Yes | ||
| carriers | No | Price only these carriers, named by the `carrier_key` results carry (e.g. ["geico", "statefarm"]). Omit to price every carrier Foresee supports; a named carrier Foresee can't price comes back in `failures`. | |
| include_failures | No | Report each carrier Foresee couldn't price under `failures`, with the reason. Leave true unless the user asked to see priced carriers only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dense | No | |
| error | No | |
| state | No | |
| bundle | No | |
| detail | No | |
| by_line | No | |
| message | No | |
| skipped | No | |
| serviceable | No | |
| presentation | No | |
| profile_required | No | |
| coverage_required | No | |
| example_arguments | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
live_carrier_quotes1 field changed- removed
Input schema / $defs / WalkPropertyBlock / properties / protection_classRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "ISO fire protection class, 1-10", - "title": "Protection Class" -}
- Changed
quote_insurance1 field changed- removed
Input schema / $defs / PropertyBlock / properties / protection_classRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "ISO fire protection class, 1-10", - "title": "Protection Class" -}
2 tool updates
- Changed
live_carrier_quotes5 fields changed- added
Input schema / $defs / VehicleInput / properties / ownerAdded value: +{ + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whose car it is, by relation to the applicant: 'self' / 'spouse' / 'domestic partner' / 'child' / 'parent' / 'sibling' / 'other'", + "title": "Owner" +} - added
Input schema / $defs / VehicleInput / properties / principal_driverAdded value: +{ + "anyOf": [ + { + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Who mainly drives it: the driver's place in auto.drivers, 1 = first listed", + "title": "Principal Driver" +} - added
Input schema / $defs / WalkDriverInput / properties / full_time_studentAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Enrolled full time in high school, college or university", + "title": "Full Time Student" +} - added
Input schema / $defs / WalkDriverInput / properties / good_studentAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Grades that earn a good-student discount (usually a B average or better)", + "title": "Good Student" +} - added
Input schema / $defs / WalkDriverInput / properties / student_awayAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A student living away at school, without any of the policy's cars", + "title": "Student Away" +}
- Changed
quote_insurance5 fields changed- added
Input schema / $defs / DriverInput / properties / full_time_studentAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Enrolled full time in high school, college or university", + "title": "Full Time Student" +} - added
Input schema / $defs / DriverInput / properties / good_studentAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Grades that earn a good-student discount (usually a B average or better)", + "title": "Good Student" +} - added
Input schema / $defs / DriverInput / properties / student_awayAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A student living away at school, without any of the policy's cars", + "title": "Student Away" +} - added
Input schema / $defs / VehicleInput / properties / ownerAdded value: +{ + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whose car it is, by relation to the applicant: 'self' / 'spouse' / 'domestic partner' / 'child' / 'parent' / 'sibling' / 'other'", + "title": "Owner" +} - added
Input schema / $defs / VehicleInput / properties / principal_driverAdded value: +{ + "anyOf": [ + { + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Who mainly drives it: the driver's place in auto.drivers, 1 = first listed", + "title": "Principal Driver" +}
2 tool updates
- Changed
live_carrier_quotes12 fields changed- added
Input schema / $defs / LiveQuoteProfile / anyOfAdded value: +[ + { + "required": [ + "age" + ] + }, + { + "required": [ + "dob" + ] + } +] - changed
Input schema / $defs / LiveQuoteProfile / properties / age / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 120, + "minimum": 16, + "type": "integer" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / LiveQuoteProfile / properties / dob / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / $defs / LiveQuoteProfile / properties / dob / formatAdded value: +"date" - added
Input schema / $defs / LiveQuoteProfile / properties / dob / typeAdded value: +"string" - changed
Input schema / $defs / LiveQuoteProfile / properties / property / anyOfPrevious value: -[ - { - "$ref": "#/$defs/PropertyBlock" - }, - { - "type": "null" - } -]New value: +[ + { + "$ref": "#/$defs/WalkPropertyBlock" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / PropertyBlockRemoved value: -{ - "additionalProperties": true, - "description": "The dwelling, for home and renters.", - "properties": { - "bathrooms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Bathrooms" - }, - "construction_type": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'frame' / 'masonry' / 'masonry veneer'…", - "title": "Construction Type" - }, - "devices": { - "anyOf": [ - { - "items": { - "maxLength": 200, - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'… ['None'] means asked-and-none; omit the field if never asked", - "title": "Devices" - }, - "foundation": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'slab' / 'raised' / 'basement' / 'crawlspace'…", - "title": "Foundation" - }, - "garage": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'…", - "title": "Garage" - }, - "household": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of people living in the home", - "title": "Household" - }, - "losses": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/LossInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Prior property losses, each dated. [] means none; omit if unknown", - "title": "Losses" - }, - "miles_to_fire_station": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Miles To Fire Station" - }, - "occupancy": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'", - "title": "Occupancy" - }, - "protection_class": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "ISO fire protection class, 1-10", - "title": "Protection Class" - }, - "purchased": { - "anyOf": [ - { - "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD", - "title": "Purchased" - }, - "renovation_permit_year": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Year of the last permitted plumbing, electrical, heating or roof work", - "title": "Renovation Permit Year" - }, - "replacement_cost": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Dwelling replacement cost estimate, dollars", - "title": "Replacement Cost" - }, - "roof_layers": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Roof Layers" - }, - "roof_type": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'composition shingle' / 'tile' / 'metal'…", - "title": "Roof Type" - }, - "roof_year": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Year the roof was last replaced", - "title": "Roof Year" - }, - "seismic_retrofit": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Whether the home has been seismically retrofitted", - "title": "Seismic Retrofit" - }, - "square_feet": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Square Feet" - }, - "stories": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Stories" - }, - "swimming_pool": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Swimming Pool" - }, - "units": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of families the building holds", - "title": "Units" - }, - "year_built": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Year Built" - } - }, - "title": "PropertyBlock", - "type": "object" -} - removed
Input schema / $defs / WalkDriverInput / properties / dob / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / $defs / WalkDriverInput / properties / dob / formatAdded value: +"date" - added
Input schema / $defs / WalkDriverInput / properties / dob / typeAdded value: +"string" - added
Input schema / $defs / WalkPropertyBlockAdded value: +{ + "additionalProperties": true, + "description": "The dwelling, for home and renters.", + "properties": { + "bathrooms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Bathrooms" + }, + "construction_type": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'frame' / 'masonry' / 'masonry veneer'…", + "title": "Construction Type" + }, + "devices": { + "anyOf": [ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'… ['None'] means asked-and-none; omit the field if never asked", + "title": "Devices" + }, + "employees": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Anyone employed at the property (nanny, housekeeper…)", + "title": "Employees" + }, + "foundation": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'slab' / 'raised' / 'basement' / 'crawlspace'…", + "title": "Foundation" + }, + "garage": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'…", + "title": "Garage" + }, + "hoa": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "In a homeowners association", + "title": "Hoa" + }, + "home_sharing": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Rented out short-term (Airbnb, VRBO…)", + "title": "Home Sharing" + }, + "household": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Number of people living in the home", + "title": "Household" + }, + "hydrant_feet": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Distance to the nearest fire hydrant, feet", + "title": "Hydrant Feet" + }, + "in_trust": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The home is held in a trust", + "title": "In Trust" + }, + "losses": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/LossInput" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Prior property losses, each dated. [] means none; omit if unknown", + "title": "Losses" + }, + "miles_to_fire_station": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Miles To Fire Station" + }, + "occupancy": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'", + "title": "Occupancy" + }, + "pets": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Pets" + }, + "protection_class": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "ISO fire protection class, 1-10", + "title": "Protection Class" + }, + "purchased": { + "anyOf": [ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD", + "title": "Purchased" + }, + "renovation_permit_year": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Year of the last permitted plumbing, electrical, heating or roof work", + "title": "Renovation Permit Year" + }, + "replacement_cost": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dwelling replacement cost estimate, dollars", + "title": "Replacement Cost" + }, + "roof_layers": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Roof Layers" + }, + "roof_type": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'composition shingle' / 'tile' / 'metal'…", + "title": "Roof Type" + }, + "roof_year": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Year the roof was last replaced", + "title": "Roof Year" + }, + "seismic_retrofit": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether the home has been seismically retrofitted", + "title": "Seismic Retrofit" + }, + "solar_panels": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Solar Panels" + }, + "square_feet": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Square Feet" + }, + "stories": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Stories" + }, + "swimming_pool": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Swimming Pool" + }, + "units": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Number of families the building holds", + "title": "Units" + }, + "year_built": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Year Built" + } + }, + "title": "WalkPropertyBlock", + "type": "object" +} - added
Output schema / $defs / AgentStatusSummary / properties / fieldsAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Fields" +}
- Changed
quote_insurance8 fields changed- removed
Input schema / $defs / DriverInput / properties / dob / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / $defs / DriverInput / properties / dob / formatAdded value: +"date" - added
Input schema / $defs / DriverInput / properties / dob / typeAdded value: +"string" - added
Input schema / $defs / QuoteProfile / anyOfAdded value: +[ + { + "required": [ + "age" + ] + }, + { + "required": [ + "dob" + ] + } +] - changed
Input schema / $defs / QuoteProfile / properties / age / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 120, + "minimum": 16, + "type": "integer" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / QuoteProfile / properties / dob / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / $defs / QuoteProfile / properties / dob / formatAdded value: +"date" - added
Input schema / $defs / QuoteProfile / properties / dob / typeAdded value: +"string"
1 tool update
- Changed
live_carrier_quotes3 fields changed- added
Input schema / $defs / WalkDriverInput / properties / military_affiliationAdded value: +{ + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'active' / 'veteran' / 'family' / 'none'", + "title": "Military Affiliation" +} - added
Input schema / properties / dispatch_ready_onlyAdded value: +{ + "default": false, + "title": "Dispatch Ready Only", + "type": "boolean" +} - added
Output schema / properties / readyAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Ready" +}
1 tool update
- Changed
quote_insurance8 fields changed- added
Input schema / properties / carriers / descriptionAdded value: +"Price only these carriers, named by the `carrier_key` results carry (e.g. [\"geico\", \"statefarm\"]). Omit to price every carrier Foresee supports; a named carrier Foresee can't price comes back in `failures`." - added
Input schema / properties / include_failures / descriptionAdded value: +"Report each carrier Foresee couldn't price under `failures`, with the reason. Leave true unless the user asked to see priced carriers only." - removed
Input schema / properties / include_partialRemoved value: -{ - "default": false, - "title": "Include Partial", - "type": "boolean" -} - added
Input schema / properties / lines / $refAdded value: +"#/$defs/LinesInput" - removed
Input schema / properties / lines / anyOfRemoved value: -[ - { - "$ref": "#/$defs/LinesInput" - }, - { - "type": "null" - } -] - removed
Input schema / properties / lines / defaultRemoved value: -null - added
Input schema / properties / lines / typeAdded value: +"object" - changed
Input schema / requiredPrevious value: -[ - "profile" -]New value: +[ + "profile", + "lines" +]
2 tool updates
- Changed
live_carrier_quotes61 fields changed- removed
Input schema / $defs / AccidentInput / descriptionRemoved value: -"One accident, dated, on the driver who had it." - changed
Input schema / $defs / AccidentInput / properties / amount / descriptionPrevious value: -"Total damage paid out in dollars, if known"New value: +"Damage paid out, dollars" - removed
Input schema / $defs / AccidentInput / properties / at_fault / descriptionRemoved value: -"Whether this driver was at fault" - changed
Input schema / $defs / AccidentInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome (\"2023\")."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - added
Input schema / $defs / AccidentInput / properties / on / patternAdded value: +"^\\d{4}(?:-\\d{2}){0,2}$" - changed
Input schema / $defs / ApplicantIdentity / descriptionPrevious value: -"The real applicant's identifying details — required for a live\ncarrier submission, never for instant quotes. No SSN: it is\nstructurally rejected everywhere in this system and no carrier flow\nrequires one to quote. A driver's license number is identity too,\nbut it is per-driver, so it never rides here: every rated driver's\nnumber, the applicant's included, goes on their own\n``auto.drivers[]`` entry — and only when a carrier's ``needs``\nentry asks for it (some carrier forms insist on one before\nquoting); never volunteer it."New value: +"The applicant's name, date of birth, address and contact details." - removed
Input schema / $defs / ApplicantIdentity / properties / city / descriptionRemoved value: -"City" - changed
Input schema / $defs / ApplicantIdentity / properties / dob / descriptionPrevious value: -"Date of birth, YYYY-MM-DD"New value: +"YYYY-MM-DD" - added
Input schema / $defs / ApplicantIdentity / properties / dob / formatAdded value: +"date" - removed
Input schema / $defs / ApplicantIdentity / properties / email / descriptionRemoved value: -"Email address — carriers send the quote here" - removed
Input schema / $defs / ApplicantIdentity / properties / first_name / descriptionRemoved value: -"Legal first name" - removed
Input schema / $defs / ApplicantIdentity / properties / last_name / descriptionRemoved value: -"Legal last name" - removed
Input schema / $defs / ApplicantIdentity / properties / phone / descriptionRemoved value: -"Phone number, if the user shares one" - removed
Input schema / $defs / ApplicantIdentity / properties / street / descriptionRemoved value: -"Street address (line 1)" - removed
Input schema / $defs / ApplicantIdentity / properties / unit / descriptionRemoved value: -"Apartment/unit number (address line 2), if any" - changed
Input schema / $defs / ApplicantIdentity / properties / zip_code / descriptionPrevious value: -"5-digit ZIP, if it differs from the profile's"New value: +"Only when it differs from the profile's" - added
Input schema / $defs / AutoAskAdded value: +{ + "additionalProperties": true, + "properties": { + "bi": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"", + "title": "Bi" + }, + "coll_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Collision deductible in dollars, e.g. 500", + "title": "Coll Deductible" + }, + "comp_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comprehensive deductible in dollars, e.g. 500", + "title": "Comp Deductible" + }, + "medpay": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Medical-payments limit in dollars, e.g. 5000", + "title": "Medpay" + }, + "pd": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Property-damage liability limit in $000s, e.g. 100", + "title": "Pd" + }, + "um": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\"", + "title": "Um" + } + }, + "title": "AutoAsk", + "type": "object" +} - removed
Input schema / $defs / AutoBlockRemoved value: -{ - "additionalProperties": true, - "description": "The auto line's facts: who drives, and what. Omit the whole block for a\nhousehold that isn't asking about a car — nothing about a vehicle is ever\nassumed for a profile without one.", - "properties": { - "drivers": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/DriverInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Drivers" - }, - "vehicles": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/VehicleInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Vehicles" - } - }, - "title": "AutoBlock", - "type": "object" -} - removed
Input schema / $defs / CoverageSelectionInputRemoved value: -{ - "additionalProperties": true, - "description": "The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply.", - "properties": { - "aop_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "HOME: all-other-perils deductible in dollars, e.g. 1000", - "title": "Aop Deductible" - }, - "bi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"", - "title": "Bi" - }, - "coll_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Collision deductible in dollars, e.g. 500", - "title": "Coll Deductible" - }, - "comp_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Comprehensive deductible in dollars, e.g. 500", - "title": "Comp Deductible" - }, - "coverage_a": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "HOME: dwelling limit in dollars — set it to the dwelling's replacement cost (the profile's property.replacement_cost when known)", - "title": "Coverage A" - }, - "coverage_c": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: personal-property (contents) limit in dollars, e.g. 30000 — the anchor an HO-4 rates off", - "title": "Coverage C" - }, - "coverage_d": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: loss-of-use limit in dollars — omit to keep the engine's carrier default (commonly a fixed ratio of the contents limit)", - "title": "Coverage D" - }, - "coverage_e": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS/HOME: personal liability limit in dollars, e.g. 100000 (renters) / 300000 (home)", - "title": "Coverage E" - }, - "coverage_f": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS/HOME: guest medical (medical payments to others) limit in dollars, e.g. 1000", - "title": "Coverage F" - }, - "deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: all-perils deductible in dollars, e.g. 500", - "title": "Deductible" - }, - "medpay": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Medical-payments limit in dollars, e.g. 5000 — omit to keep the carrier's default", - "title": "Medpay" - }, - "pd": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Property-damage liability limit in $000s (NOT dollars), e.g. 100", - "title": "Pd" - }, - "um": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\" — omit to keep the carrier's default", - "title": "Um" - } - }, - "title": "CoverageSelectionInput", - "type": "object" -} - removed
Input schema / $defs / DriverInputRemoved value: -{ - "additionalProperties": true, - "description": "One driver on the policy. Exactly one driver is the applicant\n(`relation` omitted or \"self\") and takes their demographics from the\nprofile's top level — restating them here is fine when they agree,\nan error when they don't.", - "properties": { - "accidents": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/AccidentInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none.", - "title": "Accidents" - }, - "age_first_licensed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Age when first licensed, typically 16-18 (Liberty Mutual asks)", - "title": "Age First Licensed" - }, - "date_first_licensed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Date first licensed, YYYY-MM-DD (alternative to age_first_licensed)", - "title": "Date First Licensed" - }, - "defensive_driving_course": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Completed a defensive-driving / accident-prevention course, last 3 years", - "title": "Defensive Driving Course" - }, - "dob": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Date of birth, YYYY-MM-DD", - "title": "Dob" - }, - "drivers_license_number": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Driver's license number — identity like the name, supplied only when a carrier's needs entry asks for it (some carrier forms insist on one for every rated driver before quoting). This entry is every driver's ONE home for it, the applicant's included", - "title": "Drivers License Number" - }, - "education": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'", - "title": "Education" - }, - "employment_status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'", - "title": "Employment Status" - }, - "exclusion_reason": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Why an excluded driver doesn't drive, e.g. 'never had a license' — carriers (Allstate) require it for an excluded spouse", - "title": "Exclusion Reason" - }, - "first_name": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Legal first name — live carrier forms insist on naming every listed driver (a married applicant's spouse especially); the applicant's own name rides in `identity` instead (logged as PII, never echoed)", - "title": "First Name" - }, - "gender": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Gender" - }, - "industry": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Industry" - }, - "last_name": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Legal last name (see first_name)", - "title": "Last Name" - }, - "license_state": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Two-letter state that issued this driver's license", - "title": "License State" - }, - "marital_status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Marital Status" - }, - "occupation": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Occupation" - }, - "relation": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "\"self\" (default for the first driver), \"spouse\", \"child\", \"parent\", \"other\"", - "title": "Relation" - }, - "rideshare_use": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Drives for ride-share or delivery (Uber, Lyft…) — personal policies exclude livery use, so this changes eligibility and rate", - "title": "Rideshare Use" - }, - "sr22_required": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Needs an SR-22 / financial-responsibility filing", - "title": "Sr22 Required" - }, - "status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'licensed' (default) / 'permit' / 'not licensed' / 'excluded' — an excluded driver is listed on the household but not rated", - "title": "Status" - }, - "violations": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ViolationInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record.", - "title": "Violations" - }, - "years_licensed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Years Licensed" - }, - "years_licensed_outside_us": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Years licensed outside the US; 0 = never held a licence abroad — GEICO, The General and Dairyland's live quote forms require the answer", - "title": "Years Licensed Outside Us" - }, - "years_licensed_us": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Years licensed in the US, when it differs from years_licensed", - "title": "Years Licensed Us" - } - }, - "title": "DriverInput", - "type": "object" -} - changed
Input schema / $defs / HeldPolicyInput / descriptionPrevious value: -"A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies."New value: +"A policy the household already holds." - changed
Input schema / $defs / HeldPolicyInput / properties / carrier / descriptionPrevious value: -"Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount"New value: +"Who writes it, e.g. \"State Farm\"" - removed
Input schema / $defs / HeldPolicyInput / properties / in_force / descriptionRemoved value: -"False for a policy that has lapsed or been cancelled" - added
Input schema / $defs / HomeAskAdded value: +{ + "additionalProperties": true, + "properties": { + "aop_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "All-other-perils deductible in dollars, e.g. 1000", + "title": "Aop Deductible" + }, + "coverage_a": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dwelling limit in dollars — the dwelling's replacement cost", + "title": "Coverage A" + }, + "coverage_e": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal liability limit in dollars, e.g. 300000", + "title": "Coverage E" + }, + "coverage_f": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000", + "title": "Coverage F" + } + }, + "title": "HomeAsk", + "type": "object" +} - added
Input schema / $defs / LinesInputAdded value: +{ + "additionalProperties": true, + "description": "The coverage to price, one entry per line.", + "properties": { + "auto": { + "anyOf": [ + { + "$ref": "#/$defs/AutoAsk" + }, + { + "type": "null" + } + ], + "default": null + }, + "home": { + "anyOf": [ + { + "$ref": "#/$defs/HomeAsk" + }, + { + "type": "null" + } + ], + "default": null + }, + "renters": { + "anyOf": [ + { + "$ref": "#/$defs/RentersAsk" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "title": "LinesInput", + "type": "object" +} - added
Input schema / $defs / LiveQuoteProfileAdded value: +{ + "additionalProperties": true, + "description": "The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model — when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`.", + "properties": { + "age": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption.", + "title": "Age" + }, + "auto": { + "anyOf": [ + { + "$ref": "#/$defs/WalkAutoBlock" + }, + { + "type": "null" + } + ], + "default": null + }, + "city": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "City" + }, + "companion_policies": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/HeldPolicyInput" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Policies the household already holds, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}]", + "title": "Companion Policies" + }, + "credit_range": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'Excellent' / 'Good' / 'Fair' / 'Poor' — omit it in CA, HI, MA and MI", + "title": "Credit Range" + }, + "dob": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "YYYY-MM-DD; alternative to age", + "title": "Dob" + }, + "education": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'", + "title": "Education" + }, + "effective_date": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Policy start date, YYYY-MM-DD", + "title": "Effective Date" + }, + "employment_status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'", + "title": "Employment Status" + }, + "gender": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Gender" + }, + "home_ownership_status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted", + "title": "Home Ownership Status" + }, + "industry": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Industry" + }, + "marital_status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'Single' / 'Married' / …", + "title": "Marital Status" + }, + "memberships": { + "anyOf": [ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Organizations the applicant belongs to, e.g. ['Costco', 'AAA']", + "title": "Memberships" + }, + "military_affiliation": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'active' / 'veteran' / 'family' / 'none'", + "title": "Military Affiliation" + }, + "military_branch": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Military Branch" + }, + "military_rank_paygrade": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "e.g. 'E-5'", + "title": "Military Rank Paygrade" + }, + "military_service_end_year": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Military Service End Year" + }, + "military_service_start_year": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Military Service Start Year" + }, + "months_at_residence": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Months At Residence" + }, + "occupation": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Occupation" + }, + "prior_insurance": { + "anyOf": [ + { + "$ref": "#/$defs/WalkPriorInsuranceInput" + }, + { + "type": "null" + } + ], + "default": null + }, + "property": { + "anyOf": [ + { + "$ref": "#/$defs/PropertyBlock" + }, + { + "type": "null" + } + ], + "default": null + }, + "residence_type": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / …", + "title": "Residence Type" + }, + "state": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Two-letter code; derived from zip_code when omitted", + "title": "State" + }, + "street_address": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Street Address" + }, + "unit": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Unit" + }, + "zip_code": { + "description": "REQUIRED — 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption.", + "maxLength": 200, + "title": "Zip Code", + "type": "string" + } + }, + "required": [ + "zip_code" + ], + "title": "LiveQuoteProfile", + "type": "object" +} - changed
Input schema / $defs / LossInput / descriptionPrevious value: -"One prior property loss, dated."New value: +"One prior property loss." - changed
Input schema / $defs / LossInput / properties / amount / descriptionPrevious value: -"Amount paid out in dollars, if known"New value: +"Paid out, dollars" - changed
Input schema / $defs / LossInput / properties / on / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / LossInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome"New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - removed
Input schema / $defs / PriorInsuranceInputRemoved value: -{ - "additionalProperties": true, - "description": "The insurance carried now. `since`/`until` are the fact behind every way\na form asks how long it ran — tenure is derived from the dates, never sent\nas its own number.", - "properties": { - "carrier": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Current carrier's name", - "title": "Carrier" - }, - "insured": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Currently insured?", - "title": "Insured" - }, - "lapse": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Any lapse in coverage in the last 12 months", - "title": "Lapse" - }, - "limits": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Bodily-injury limits carried now, e.g. \"100/300\" — carriers ask it of the insured", - "title": "Limits" - }, - "since": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "When this coverage started — ISO 8601, reduced precision welcome (\"2019\")", - "title": "Since" - }, - "until": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "When it ends/ended — ISO 8601, reduced precision welcome; omit while the cover is still in force", - "title": "Until" - } - }, - "title": "PriorInsuranceInput", - "type": "object" -} - changed
Input schema / $defs / PropertyBlock / descriptionPrevious value: -"The dwelling's facts — used by home AND renters. Accepted and recorded\ntoday; priced once a property line launches."New value: +"The dwelling, for home and renters." - changed
Input schema / $defs / PropertyBlock / properties / household / descriptionPrevious value: -"How many people live in the home"New value: +"Number of people living in the home" - changed
Input schema / $defs / PropertyBlock / properties / losses / descriptionPrevious value: -"Prior property losses, each DATED (carrier forms ask when). [] means asked-and-loss-free; omit the field if never asked"New value: +"Prior property losses, each dated. [] means none; omit if unknown" - removed
Input schema / $defs / PropertyBlock / properties / miles_to_fire_station / descriptionRemoved value: -"Road miles to the responding fire station — a rating axis at several carriers" - changed
Input schema / $defs / PropertyBlock / properties / purchased / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / purchased / descriptionPrevious value: -"When the home was purchased — ISO 8601, reduced precision welcome (\"2021\" / \"2021-06\"). Carrier forms ask it outright."New value: +"When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD" - changed
Input schema / $defs / PropertyBlock / properties / renovation_permit_year / descriptionPrevious value: -"Year of the last permitted renovation (plumbing/electrical/heating/roof)"New value: +"Year of the last permitted plumbing, electrical, heating or roof work" - changed
Input schema / $defs / PropertyBlock / properties / replacement_cost / descriptionPrevious value: -"Estimated dwelling replacement cost in dollars, if the user has one"New value: +"Dwelling replacement cost estimate, dollars" - removed
Input schema / $defs / PropertyBlock / properties / roof_layers / descriptionRemoved value: -"How many layers of roofing are on the house" - changed
Input schema / $defs / PropertyBlock / properties / roof_year / descriptionPrevious value: -"Year the roof was last fully replaced"New value: +"Year the roof was last replaced" - changed
Input schema / $defs / PropertyBlock / properties / seismic_retrofit / descriptionPrevious value: -"Whether an older home has been seismically retrofitted (asked in CA)"New value: +"Whether the home has been seismically retrofitted" - changed
Input schema / $defs / PropertyBlock / properties / units / descriptionPrevious value: -"How many families the building holds"New value: +"Number of families the building holds" - removed
Input schema / $defs / QuoteProfileRemoved value: -{ - "additionalProperties": true, - "description": "The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.", - "properties": { - "age": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption.", - "title": "Age" - }, - "auto": { - "anyOf": [ - { - "$ref": "#/$defs/AutoBlock" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The auto line's facts: drivers[] and vehicles[]" - }, - "city": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "City" - }, - "companion_policies": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/HeldPolicyInput" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it", - "title": "Companion Policies" - }, - "credit_range": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'Excellent' / 'Good' / 'Fair' / 'Poor'. Not a rating input in CA, HI, MA, or MI (credit-based auto rating is banned there) — omit it and don't ask shoppers in those states.", - "title": "Credit Range" - }, - "dob": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Date of birth, YYYY-MM-DD (alternative to age)", - "title": "Dob" - }, - "education": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'", - "title": "Education" - }, - "effective_date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Desired start date for the new policy, YYYY-MM-DD", - "title": "Effective Date" - }, - "employment_status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'", - "title": "Employment Status" - }, - "gender": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Gender" - }, - "home_ownership_status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted; carrier forms ask which", - "title": "Home Ownership Status" - }, - "industry": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Industry beside the occupation, e.g. 'Finance and Insurance' — GEICO's live quote form insists on it", - "title": "Industry" - }, - "marital_status": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'Single' / 'Married' / …", - "title": "Marital Status" - }, - "memberships": { - "anyOf": [ - { - "items": { - "maxLength": 200, - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Organizations the applicant belongs to, e.g. ['Costco', 'AAA'] — group/affinity plans (CA §1861.12) discount on them", - "title": "Memberships" - }, - "military_affiliation": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'active' / 'veteran' / 'family' / 'none' — USAA quotes only military-affiliated households", - "title": "Military Affiliation" - }, - "military_branch": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Branch of service, e.g. 'Army', 'Navy' (USAA asks)", - "title": "Military Branch" - }, - "military_rank_paygrade": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Rank / pay grade, e.g. 'E-5' (USAA asks)", - "title": "Military Rank Paygrade" - }, - "military_service_end_year": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Military Service End Year" - }, - "military_service_start_year": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Military Service Start Year" - }, - "months_at_residence": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "How long at the current address, in months", - "title": "Months At Residence" - }, - "occupation": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Occupation as carriers collect it, e.g. 'Accountant'", - "title": "Occupation" - }, - "prior_insurance": { - "anyOf": [ - { - "$ref": "#/$defs/PriorInsuranceInput" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The insurance carried now — carrier, dates, limits held" - }, - "property": { - "anyOf": [ - { - "$ref": "#/$defs/PropertyBlock" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The dwelling's facts — home and renters alike" - }, - "residence_type": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / …", - "title": "Residence Type" - }, - "state": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Two-letter state code, e.g. 'CA' (derived from zip_code when omitted)", - "title": "State" - }, - "street_address": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Street address (line 1) — sharpens territory rating and is required for live carrier submissions (logged as PII, never echoed)", - "title": "Street Address" - }, - "unit": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Apartment/unit number (address line 2) — a renter or condo dweller in a multi-unit building needs it for live carrier submissions", - "title": "Unit" - }, - "zip_code": { - "description": "REQUIRED — 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption.", - "maxLength": 200, - "title": "Zip Code", - "type": "string" - } - }, - "required": [ - "zip_code" - ], - "title": "QuoteProfile", - "type": "object" -} - added
Input schema / $defs / RentersAskAdded value: +{ + "additionalProperties": true, + "properties": { + "coverage_c": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal-property (contents) limit in dollars, e.g. 30000", + "title": "Coverage C" + }, + "coverage_d": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Loss-of-use limit in dollars", + "title": "Coverage D" + }, + "coverage_e": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal liability limit in dollars, e.g. 100000", + "title": "Coverage E" + }, + "coverage_f": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000", + "title": "Coverage F" + }, + "deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "All-perils deductible in dollars, e.g. 500", + "title": "Deductible" + } + }, + "title": "RentersAsk", + "type": "object" +} - changed
Input schema / $defs / VehicleInput / properties / body_style / descriptionPrevious value: -"Trim / body style as the carrier lists it, e.g. \"XLT AWD 4D GAS\""New value: +"Trim / body style, e.g. \"XLT AWD 4D GAS\"" - removed
Input schema / $defs / VehicleInput / properties / bought_new / descriptionRemoved value: -"Whether the vehicle was new when bought (Allstate asks)" - changed
Input schema / $defs / VehicleInput / properties / cost / descriptionPrevious value: -"What the vehicle cost new, whole dollars — some carriers' live quote forms (Kemper) insist on it"New value: +"Cost new, whole dollars" - changed
Input schema / $defs / VehicleInput / properties / garaging_zip / descriptionPrevious value: -"ZIP where THIS vehicle is garaged, when it differs from the household's zip_code — auto rating keys on the garaging territory, so a stated garaging ZIP is what gets rated"New value: +"ZIP where this vehicle is kept, when different from zip_code" - changed
Input schema / $defs / VehicleInput / properties / purchase_date / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / purchase_date / descriptionPrevious value: -"When the vehicle was bought — ISO 8601, \"2021-06\" or \"2021\" welcome"New value: +"When bought: YYYY, YYYY-MM or YYYY-MM-DD" - removed
Input schema / $defs / VehicleInput / properties / vin / descriptionRemoved value: -"17-character VIN — live carrier forms prefer it over year/make/model" - changed
Input schema / $defs / ViolationInput / descriptionPrevious value: -"One citation, as it will be declared. Dated, because carriers\nprice WHEN it happened — counts and windows are derived, never sent."New value: +"One moving violation." - changed
Input schema / $defs / ViolationInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome: \"2024\", \"2024-06\", or \"2024-06-15\". A year IS a date."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - added
Input schema / $defs / ViolationInput / properties / on / patternAdded value: +"^\\d{4}(?:-\\d{2}){0,2}$" - added
Input schema / $defs / WalkAutoBlockAdded value: +{ + "additionalProperties": true, + "description": "Omit it for a household without a car.", + "properties": { + "drivers": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/WalkDriverInput" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Drivers" + }, + "vehicles": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/VehicleInput" + }, + "maxItems": 10, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Vehicles" + } + }, + "title": "WalkAutoBlock", + "type": "object" +} - added
Input schema / $defs / WalkDriverInputAdded value: +{ + "additionalProperties": true, + "description": "One driver on the policy. The applicant is the driver with relation\n\"self\"; any of their details restated here must match the profile's top\nlevel.", + "properties": { + "accidents": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/AccidentInput" + }, + "maxItems": 20, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none.", + "title": "Accidents" + }, + "age_first_licensed": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Age when first licensed", + "title": "Age First Licensed" + }, + "date_first_licensed": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "YYYY-MM-DD; alternative to age_first_licensed", + "title": "Date First Licensed" + }, + "defensive_driving_course": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Completed a defensive-driving course in the last 3 years", + "title": "Defensive Driving Course" + }, + "dob": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "YYYY-MM-DD", + "title": "Dob" + }, + "drivers_license_number": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Drivers License Number" + }, + "education": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'", + "title": "Education" + }, + "employment_status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'", + "title": "Employment Status" + }, + "exclusion_reason": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Exclusion Reason" + }, + "first_name": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "First Name" + }, + "gender": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Gender" + }, + "industry": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Industry" + }, + "last_name": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Last Name" + }, + "license_state": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Two-letter code of the licensing state", + "title": "License State" + }, + "marital_status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Marital Status" + }, + "occupation": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Occupation" + }, + "relation": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "\"self\" / \"spouse\" / \"child\" / \"parent\" / \"other\"", + "title": "Relation" + }, + "rideshare_use": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Drives for ride-share or delivery", + "title": "Rideshare Use" + }, + "sr22_required": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Sr22 Required" + }, + "status": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "'licensed' (default) / 'permit' / 'not licensed' / 'excluded'", + "title": "Status" + }, + "violations": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/ViolationInput" + }, + "maxItems": 20, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record.", + "title": "Violations" + }, + "years_licensed": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Years since first licensed", + "title": "Years Licensed" + }, + "years_licensed_outside_us": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Years licensed outside the US", + "title": "Years Licensed Outside Us" + }, + "years_licensed_us": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Years licensed in the US", + "title": "Years Licensed Us" + } + }, + "title": "WalkDriverInput", + "type": "object" +} - added
Input schema / $defs / WalkPriorInsuranceInputAdded value: +{ + "additionalProperties": true, + "description": "The insurance carried now.", + "properties": { + "carrier": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Carrier" + }, + "insured": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Insured" + }, + "lapse": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Any lapse in coverage in the last 12 months", + "title": "Lapse" + }, + "limits": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Bodily-injury limits held, e.g. \"100/300\"", + "title": "Limits" + }, + "since": { + "anyOf": [ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Start date: YYYY, YYYY-MM or YYYY-MM-DD", + "title": "Since" + }, + "until": { + "anyOf": [ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force", + "title": "Until" + } + }, + "title": "WalkPriorInsuranceInput", + "type": "object" +} - changed
Input schema / properties / lines / anyOfPrevious value: -[ - { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/CoverageSelectionInput" - }, - { - "type": "null" - } - ] - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "$ref": "#/$defs/LinesInput" + }, + { + "type": "null" + } +] - removed
Input schema / properties / lines / titleRemoved value: -"Lines" - changed
Input schema / properties / profile / $refPrevious value: -"#/$defs/QuoteProfile"New value: +"#/$defs/LiveQuoteProfile"
- Changed
quote_insurance100 fields changed- removed
Input schema / $defs / AccidentInput / descriptionRemoved value: -"One accident, dated, on the driver who had it." - changed
Input schema / $defs / AccidentInput / properties / amount / descriptionPrevious value: -"Total damage paid out in dollars, if known"New value: +"Damage paid out, dollars" - removed
Input schema / $defs / AccidentInput / properties / at_fault / descriptionRemoved value: -"Whether this driver was at fault" - changed
Input schema / $defs / AccidentInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome (\"2023\")."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - added
Input schema / $defs / AccidentInput / properties / on / patternAdded value: +"^\\d{4}(?:-\\d{2}){0,2}$" - added
Input schema / $defs / AutoAskAdded value: +{ + "additionalProperties": true, + "properties": { + "bi": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"", + "title": "Bi" + }, + "coll_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Collision deductible in dollars, e.g. 500", + "title": "Coll Deductible" + }, + "comp_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comprehensive deductible in dollars, e.g. 500", + "title": "Comp Deductible" + }, + "medpay": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Medical-payments limit in dollars, e.g. 5000", + "title": "Medpay" + }, + "pd": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Property-damage liability limit in $000s, e.g. 100", + "title": "Pd" + }, + "um": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\"", + "title": "Um" + } + }, + "title": "AutoAsk", + "type": "object" +} - changed
Input schema / $defs / AutoBlock / descriptionPrevious value: -"The auto line's facts: who drives, and what. Omit the whole block for a\nhousehold that isn't asking about a car — nothing about a vehicle is ever\nassumed for a profile without one."New value: +"Omit it for a household without a car." - changed
Input schema / $defs / AutoBlock / properties / drivers / anyOfPrevious value: -[ - { - "items": { - "$ref": "#/$defs/DriverInput" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/DriverInput" + }, + "maxItems": 10, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / AutoBlock / properties / vehicles / anyOfPrevious value: -[ - { - "items": { - "$ref": "#/$defs/VehicleInput" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/VehicleInput" + }, + "maxItems": 10, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / CoverageSelectionInputRemoved value: -{ - "additionalProperties": true, - "description": "The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply.", - "properties": { - "aop_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "HOME: all-other-perils deductible in dollars, e.g. 1000", - "title": "Aop Deductible" - }, - "bi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"", - "title": "Bi" - }, - "coll_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Collision deductible in dollars, e.g. 500", - "title": "Coll Deductible" - }, - "comp_deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Comprehensive deductible in dollars, e.g. 500", - "title": "Comp Deductible" - }, - "coverage_a": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "HOME: dwelling limit in dollars — set it to the dwelling's replacement cost (the profile's property.replacement_cost when known)", - "title": "Coverage A" - }, - "coverage_c": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: personal-property (contents) limit in dollars, e.g. 30000 — the anchor an HO-4 rates off", - "title": "Coverage C" - }, - "coverage_d": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: loss-of-use limit in dollars — omit to keep the engine's carrier default (commonly a fixed ratio of the contents limit)", - "title": "Coverage D" - }, - "coverage_e": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS/HOME: personal liability limit in dollars, e.g. 100000 (renters) / 300000 (home)", - "title": "Coverage E" - }, - "coverage_f": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS/HOME: guest medical (medical payments to others) limit in dollars, e.g. 1000", - "title": "Coverage F" - }, - "deductible": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "RENTERS: all-perils deductible in dollars, e.g. 500", - "title": "Deductible" - }, - "medpay": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Medical-payments limit in dollars, e.g. 5000 — omit to keep the carrier's default", - "title": "Medpay" - }, - "pd": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Property-damage liability limit in $000s (NOT dollars), e.g. 100", - "title": "Pd" - }, - "um": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\" — omit to keep the carrier's default", - "title": "Um" - } - }, - "title": "CoverageSelectionInput", - "type": "object" -} - changed
Input schema / $defs / DriverInput / descriptionPrevious value: -"One driver on the policy. Exactly one driver is the applicant\n(`relation` omitted or \"self\") and takes their demographics from the\nprofile's top level — restating them here is fine when they agree,\nan error when they don't."New value: +"One driver on the policy. The applicant is the driver with relation\n\"self\"; any of their details restated here must match the profile's top\nlevel." - changed
Input schema / $defs / DriverInput / properties / accidents / anyOfPrevious value: -[ - { - "items": { - "$ref": "#/$defs/AccidentInput" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/AccidentInput" + }, + "maxItems": 20, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / age_first_licensed / descriptionPrevious value: -"Age when first licensed, typically 16-18 (Liberty Mutual asks)"New value: +"Age when first licensed" - changed
Input schema / $defs / DriverInput / properties / date_first_licensed / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / date_first_licensed / descriptionPrevious value: -"Date first licensed, YYYY-MM-DD (alternative to age_first_licensed)"New value: +"YYYY-MM-DD; alternative to age_first_licensed" - changed
Input schema / $defs / DriverInput / properties / defensive_driving_course / descriptionPrevious value: -"Completed a defensive-driving / accident-prevention course, last 3 years"New value: +"Completed a defensive-driving course in the last 3 years" - changed
Input schema / $defs / DriverInput / properties / dob / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / dob / descriptionPrevious value: -"Date of birth, YYYY-MM-DD"New value: +"YYYY-MM-DD" - removed
Input schema / $defs / DriverInput / properties / drivers_license_numberRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Driver's license number — identity like the name, supplied only when a carrier's needs entry asks for it (some carrier forms insist on one for every rated driver before quoting). This entry is every driver's ONE home for it, the applicant's included", - "title": "Drivers License Number" -} - removed
Input schema / $defs / DriverInput / properties / exclusion_reason / descriptionRemoved value: -"Why an excluded driver doesn't drive, e.g. 'never had a license' — carriers (Allstate) require it for an excluded spouse" - removed
Input schema / $defs / DriverInput / properties / first_nameRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Legal first name — live carrier forms insist on naming every listed driver (a married applicant's spouse especially); the applicant's own name rides in `identity` instead (logged as PII, never echoed)", - "title": "First Name" -} - removed
Input schema / $defs / DriverInput / properties / last_nameRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Legal last name (see first_name)", - "title": "Last Name" -} - removed
Input schema / $defs / DriverInput / properties / license_stateRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Two-letter state that issued this driver's license", - "title": "License State" -} - changed
Input schema / $defs / DriverInput / properties / relation / descriptionPrevious value: -"\"self\" (default for the first driver), \"spouse\", \"child\", \"parent\", \"other\""New value: +"\"self\" / \"spouse\" / \"child\" / \"parent\" / \"other\"" - changed
Input schema / $defs / DriverInput / properties / rideshare_use / descriptionPrevious value: -"Drives for ride-share or delivery (Uber, Lyft…) — personal policies exclude livery use, so this changes eligibility and rate"New value: +"Drives for ride-share or delivery" - removed
Input schema / $defs / DriverInput / properties / sr22_required / descriptionRemoved value: -"Needs an SR-22 / financial-responsibility filing" - changed
Input schema / $defs / DriverInput / properties / status / descriptionPrevious value: -"'licensed' (default) / 'permit' / 'not licensed' / 'excluded' — an excluded driver is listed on the household but not rated"New value: +"'licensed' (default) / 'permit' / 'not licensed' / 'excluded'" - changed
Input schema / $defs / DriverInput / properties / violations / anyOfPrevious value: -[ - { - "items": { - "$ref": "#/$defs/ViolationInput" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/ViolationInput" + }, + "maxItems": 20, + "type": "array" + }, + { + "type": "null" + } +] - added
Input schema / $defs / DriverInput / properties / years_licensed / descriptionAdded value: +"Years since first licensed" - removed
Input schema / $defs / DriverInput / properties / years_licensed_outside_usRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Years licensed outside the US; 0 = never held a licence abroad — GEICO, The General and Dairyland's live quote forms require the answer", - "title": "Years Licensed Outside Us" -} - removed
Input schema / $defs / DriverInput / properties / years_licensed_usRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Years licensed in the US, when it differs from years_licensed", - "title": "Years Licensed Us" -} - changed
Input schema / $defs / HeldPolicyInput / descriptionPrevious value: -"A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies."New value: +"A policy the household already holds." - changed
Input schema / $defs / HeldPolicyInput / properties / carrier / descriptionPrevious value: -"Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount"New value: +"Who writes it, e.g. \"State Farm\"" - removed
Input schema / $defs / HeldPolicyInput / properties / in_force / descriptionRemoved value: -"False for a policy that has lapsed or been cancelled" - added
Input schema / $defs / HomeAskAdded value: +{ + "additionalProperties": true, + "properties": { + "aop_deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "All-other-perils deductible in dollars, e.g. 1000", + "title": "Aop Deductible" + }, + "coverage_a": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dwelling limit in dollars — the dwelling's replacement cost", + "title": "Coverage A" + }, + "coverage_e": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal liability limit in dollars, e.g. 300000", + "title": "Coverage E" + }, + "coverage_f": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000", + "title": "Coverage F" + } + }, + "title": "HomeAsk", + "type": "object" +} - added
Input schema / $defs / LinesInputAdded value: +{ + "additionalProperties": true, + "description": "The coverage to price, one entry per line.", + "properties": { + "auto": { + "anyOf": [ + { + "$ref": "#/$defs/AutoAsk" + }, + { + "type": "null" + } + ], + "default": null + }, + "home": { + "anyOf": [ + { + "$ref": "#/$defs/HomeAsk" + }, + { + "type": "null" + } + ], + "default": null + }, + "renters": { + "anyOf": [ + { + "$ref": "#/$defs/RentersAsk" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "title": "LinesInput", + "type": "object" +} - changed
Input schema / $defs / LossInput / descriptionPrevious value: -"One prior property loss, dated."New value: +"One prior property loss." - changed
Input schema / $defs / LossInput / properties / amount / descriptionPrevious value: -"Amount paid out in dollars, if known"New value: +"Paid out, dollars" - changed
Input schema / $defs / LossInput / properties / on / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / LossInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome"New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - changed
Input schema / $defs / PriorInsuranceInput / descriptionPrevious value: -"The insurance carried now. `since`/`until` are the fact behind every way\na form asks how long it ran — tenure is derived from the dates, never sent\nas its own number."New value: +"The insurance carried now." - removed
Input schema / $defs / PriorInsuranceInput / properties / carrier / descriptionRemoved value: -"Current carrier's name" - removed
Input schema / $defs / PriorInsuranceInput / properties / insured / descriptionRemoved value: -"Currently insured?" - removed
Input schema / $defs / PriorInsuranceInput / properties / lapseRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Any lapse in coverage in the last 12 months", - "title": "Lapse" -} - removed
Input schema / $defs / PriorInsuranceInput / properties / limitsRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Bodily-injury limits carried now, e.g. \"100/300\" — carriers ask it of the insured", - "title": "Limits" -} - changed
Input schema / $defs / PriorInsuranceInput / properties / since / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / since / descriptionPrevious value: -"When this coverage started — ISO 8601, reduced precision welcome (\"2019\")"New value: +"Start date: YYYY, YYYY-MM or YYYY-MM-DD" - changed
Input schema / $defs / PriorInsuranceInput / properties / until / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / until / descriptionPrevious value: -"When it ends/ended — ISO 8601, reduced precision welcome; omit while the cover is still in force"New value: +"End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force" - changed
Input schema / $defs / PropertyBlock / descriptionPrevious value: -"The dwelling's facts — used by home AND renters. Accepted and recorded\ntoday; priced once a property line launches."New value: +"The dwelling, for home and renters." - changed
Input schema / $defs / PropertyBlock / properties / household / descriptionPrevious value: -"How many people live in the home"New value: +"Number of people living in the home" - changed
Input schema / $defs / PropertyBlock / properties / losses / descriptionPrevious value: -"Prior property losses, each DATED (carrier forms ask when). [] means asked-and-loss-free; omit the field if never asked"New value: +"Prior property losses, each dated. [] means none; omit if unknown" - removed
Input schema / $defs / PropertyBlock / properties / miles_to_fire_station / descriptionRemoved value: -"Road miles to the responding fire station — a rating axis at several carriers" - changed
Input schema / $defs / PropertyBlock / properties / purchased / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / purchased / descriptionPrevious value: -"When the home was purchased — ISO 8601, reduced precision welcome (\"2021\" / \"2021-06\"). Carrier forms ask it outright."New value: +"When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD" - changed
Input schema / $defs / PropertyBlock / properties / renovation_permit_year / descriptionPrevious value: -"Year of the last permitted renovation (plumbing/electrical/heating/roof)"New value: +"Year of the last permitted plumbing, electrical, heating or roof work" - changed
Input schema / $defs / PropertyBlock / properties / replacement_cost / descriptionPrevious value: -"Estimated dwelling replacement cost in dollars, if the user has one"New value: +"Dwelling replacement cost estimate, dollars" - removed
Input schema / $defs / PropertyBlock / properties / roof_layers / descriptionRemoved value: -"How many layers of roofing are on the house" - changed
Input schema / $defs / PropertyBlock / properties / roof_year / descriptionPrevious value: -"Year the roof was last fully replaced"New value: +"Year the roof was last replaced" - changed
Input schema / $defs / PropertyBlock / properties / seismic_retrofit / descriptionPrevious value: -"Whether an older home has been seismically retrofitted (asked in CA)"New value: +"Whether the home has been seismically retrofitted" - changed
Input schema / $defs / PropertyBlock / properties / units / descriptionPrevious value: -"How many families the building holds"New value: +"Number of families the building holds" - changed
Input schema / $defs / QuoteProfile / descriptionPrevious value: -"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it."New value: +"The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model — when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`." - removed
Input schema / $defs / QuoteProfile / properties / auto / descriptionRemoved value: -"The auto line's facts: drivers[] and vehicles[]" - changed
Input schema / $defs / QuoteProfile / properties / companion_policies / descriptionPrevious value: -"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it"New value: +"Policies the household already holds, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}]" - changed
Input schema / $defs / QuoteProfile / properties / credit_range / descriptionPrevious value: -"'Excellent' / 'Good' / 'Fair' / 'Poor'. Not a rating input in CA, HI, MA, or MI (credit-based auto rating is banned there) — omit it and don't ask shoppers in those states."New value: +"'Excellent' / 'Good' / 'Fair' / 'Poor' — omit it in CA, HI, MA and MI" - changed
Input schema / $defs / QuoteProfile / properties / dob / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / dob / descriptionPrevious value: -"Date of birth, YYYY-MM-DD (alternative to age)"New value: +"YYYY-MM-DD; alternative to age" - changed
Input schema / $defs / QuoteProfile / properties / effective_date / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / effective_date / descriptionPrevious value: -"Desired start date for the new policy, YYYY-MM-DD"New value: +"Policy start date, YYYY-MM-DD" - changed
Input schema / $defs / QuoteProfile / properties / home_ownership_status / descriptionPrevious value: -"'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted; carrier forms ask which"New value: +"'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted" - removed
Input schema / $defs / QuoteProfile / properties / industry / descriptionRemoved value: -"Industry beside the occupation, e.g. 'Finance and Insurance' — GEICO's live quote form insists on it" - changed
Input schema / $defs / QuoteProfile / properties / memberships / descriptionPrevious value: -"Organizations the applicant belongs to, e.g. ['Costco', 'AAA'] — group/affinity plans (CA §1861.12) discount on them"New value: +"Organizations the applicant belongs to, e.g. ['Costco', 'AAA']" - changed
Input schema / $defs / QuoteProfile / properties / military_affiliation / descriptionPrevious value: -"'active' / 'veteran' / 'family' / 'none' — USAA quotes only military-affiliated households"New value: +"'active' / 'veteran' / 'family' / 'none'" - removed
Input schema / $defs / QuoteProfile / properties / military_branchRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Branch of service, e.g. 'Army', 'Navy' (USAA asks)", - "title": "Military Branch" -} - removed
Input schema / $defs / QuoteProfile / properties / military_rank_paygradeRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Rank / pay grade, e.g. 'E-5' (USAA asks)", - "title": "Military Rank Paygrade" -} - removed
Input schema / $defs / QuoteProfile / properties / military_service_end_yearRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Military Service End Year" -} - removed
Input schema / $defs / QuoteProfile / properties / military_service_start_yearRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Military Service Start Year" -} - removed
Input schema / $defs / QuoteProfile / properties / months_at_residence / descriptionRemoved value: -"How long at the current address, in months" - removed
Input schema / $defs / QuoteProfile / properties / occupation / descriptionRemoved value: -"Occupation as carriers collect it, e.g. 'Accountant'" - removed
Input schema / $defs / QuoteProfile / properties / prior_insurance / descriptionRemoved value: -"The insurance carried now — carrier, dates, limits held" - removed
Input schema / $defs / QuoteProfile / properties / property / descriptionRemoved value: -"The dwelling's facts — home and renters alike" - changed
Input schema / $defs / QuoteProfile / properties / state / descriptionPrevious value: -"Two-letter state code, e.g. 'CA' (derived from zip_code when omitted)"New value: +"Two-letter code; derived from zip_code when omitted" - removed
Input schema / $defs / QuoteProfile / properties / street_address / descriptionRemoved value: -"Street address (line 1) — sharpens territory rating and is required for live carrier submissions (logged as PII, never echoed)" - removed
Input schema / $defs / QuoteProfile / properties / unit / descriptionRemoved value: -"Apartment/unit number (address line 2) — a renter or condo dweller in a multi-unit building needs it for live carrier submissions" - added
Input schema / $defs / RentersAskAdded value: +{ + "additionalProperties": true, + "properties": { + "coverage_c": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal-property (contents) limit in dollars, e.g. 30000", + "title": "Coverage C" + }, + "coverage_d": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Loss-of-use limit in dollars", + "title": "Coverage D" + }, + "coverage_e": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Personal liability limit in dollars, e.g. 100000", + "title": "Coverage E" + }, + "coverage_f": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000", + "title": "Coverage F" + }, + "deductible": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "All-perils deductible in dollars, e.g. 500", + "title": "Deductible" + } + }, + "title": "RentersAsk", + "type": "object" +} - changed
Input schema / $defs / VehicleInput / properties / body_style / descriptionPrevious value: -"Trim / body style as the carrier lists it, e.g. \"XLT AWD 4D GAS\""New value: +"Trim / body style, e.g. \"XLT AWD 4D GAS\"" - removed
Input schema / $defs / VehicleInput / properties / bought_new / descriptionRemoved value: -"Whether the vehicle was new when bought (Allstate asks)" - changed
Input schema / $defs / VehicleInput / properties / cost / descriptionPrevious value: -"What the vehicle cost new, whole dollars — some carriers' live quote forms (Kemper) insist on it"New value: +"Cost new, whole dollars" - changed
Input schema / $defs / VehicleInput / properties / garaging_zip / descriptionPrevious value: -"ZIP where THIS vehicle is garaged, when it differs from the household's zip_code — auto rating keys on the garaging territory, so a stated garaging ZIP is what gets rated"New value: +"ZIP where this vehicle is kept, when different from zip_code" - changed
Input schema / $defs / VehicleInput / properties / purchase_date / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^\\d{4}(?:-\\d{2}){0,2}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / purchase_date / descriptionPrevious value: -"When the vehicle was bought — ISO 8601, \"2021-06\" or \"2021\" welcome"New value: +"When bought: YYYY, YYYY-MM or YYYY-MM-DD" - removed
Input schema / $defs / VehicleInput / properties / vin / descriptionRemoved value: -"17-character VIN — live carrier forms prefer it over year/make/model" - changed
Input schema / $defs / ViolationInput / descriptionPrevious value: -"One citation, as it will be declared. Dated, because carriers\nprice WHEN it happened — counts and windows are derived, never sent."New value: +"One moving violation." - changed
Input schema / $defs / ViolationInput / properties / on / descriptionPrevious value: -"When it happened — ISO 8601, reduced precision welcome: \"2024\", \"2024-06\", or \"2024-06-15\". A year IS a date."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD" - added
Input schema / $defs / ViolationInput / properties / on / patternAdded value: +"^\\d{4}(?:-\\d{2}){0,2}$" - changed
Input schema / properties / lines / anyOfPrevious value: -[ - { - "additionalProperties": { - "$ref": "#/$defs/CoverageSelectionInput" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "$ref": "#/$defs/LinesInput" + }, + { + "type": "null" + } +] - removed
Input schema / properties / lines / titleRemoved value: -"Lines" - added
Output schema / $defs / SkippedLinesAdded value: +{ + "additionalProperties": true, + "properties": { + "lines": { + "items": { + "type": "string" + }, + "title": "Lines", + "type": "array" + }, + "message": { + "title": "Message", + "type": "string" + } + }, + "required": [ + "lines", + "message" + ], + "title": "SkippedLines", + "type": "object" +} - changed
Output schema / properties / skipped / anyOfPrevious value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "$ref": "#/$defs/SkippedLines" + }, + { + "type": "null" + } +] - removed
Output schema / properties / skipped / titleRemoved value: -"Skipped"
2 tool updates
- Changed
live_carrier_quotes83 fields changed- removed
Input schema / $defs / AccidentInput / properties / on / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / AccidentInput / properties / on / defaultRemoved value: -null - added
Input schema / $defs / AccidentInput / properties / on / typeAdded value: +"string" - added
Input schema / $defs / AccidentInput / requiredAdded value: +[ + "on" +] - changed
Input schema / $defs / CoverageSelectionInput / descriptionPrevious value: -"The coverage to price, as actual numbers on named axes — the value type\nof every entry in the ``lines`` map, so it publishes each line's axes side\nby side (a line reads only its own; the map key says which apply).\n\nTyped for the same reason as ``QuoteProfile``: with a bare dict the schema\npublished ``additionalProperties: true`` and nothing else, so callers\nguessed key names (\"bodily_injury\") and burned a round trip on the\nselection-required refusal before learning the real ones. The fields are\nall optional HERE because completeness is judged server-side\n(``coverage_ask``, per line): an incomplete selection must reach the\nengines' rich ``coverage_selection_required`` payload — which names the\nmissing axes, a common choice, and (auto) the state's legal minimum — not\ndie as a generic schema validation error. ``extra=\"allow\"`` keeps the\nparser's accepted aliases (``bi_limit``, ``collision_deductible``,\n``uim``…), the rarer home axes (B/C/D ratios, hurricane/water deductibles,\n``endorsements``), and wider overrides working."New value: +"The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply." - changed
Input schema / $defs / DriverInput / properties / accidents / descriptionPrevious value: -"Accidents, each dated. An empty list means none."New value: +"Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none." - changed
Input schema / $defs / DriverInput / properties / drivers_license_number / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / education / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / employment_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / exclusion_reason / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / first_name / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / gender / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / industry / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / last_name / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / license_state / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / marital_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / occupation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / relation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / violations / descriptionPrevious value: -"Moving violations, each dated. An empty list means a clean record."New value: +"Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record." - added
Input schema / $defs / HeldPolicyInputAdded value: +{ + "additionalProperties": true, + "description": "A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies.", + "properties": { + "carrier": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount", + "title": "Carrier" + }, + "in_force": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "False for a policy that has lapsed or been cancelled", + "title": "In Force" + }, + "line": { + "description": "What the policy insures: \"home\", \"renters\", \"condo\", \"auto\", \"life\", \"umbrella\"…", + "maxLength": 200, + "title": "Line", + "type": "string" + } + }, + "required": [ + "line" + ], + "title": "HeldPolicyInput", + "type": "object" +} - changed
Input schema / $defs / LossInput / properties / kind / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / carrier / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / limits / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / construction_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / devices / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / foundation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / garage / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / occupancy / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / protection_class / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / roof_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / descriptionPrevious value: -"The household being quoted: a line-neutral core plus per-line blocks\n(#1106). Every fact has a declared posture (`foresee.postures`): a few\nare REQUIRED — the ZIP, the applicant's age (or dob), and, when quoting\nauto, each vehicle's year/make/model — because they have no neutral\nrateable value; YOU supply those, inventing a concrete value from context\nwhen the user was vague and telling them so. Everything else is optional:\nomissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.\n\nTyped (rather than a bare dict) so the connector schema tells the model the\nexact field names: an untyped profile made models guess keys (\"zip\"), the\nvalue was silently ignored, and the engines rated a default location.\n``extra=\"allow\"`` keeps two things working unadvertised: the legacy flat\nspellings (``vehicle_year``, ``spouse_dob``, ``currently_insured``,\n3-year incident counts…), which fold onto the blocks — a flat key\ndisagreeing with a block is a hard error naming both — and richer keys\nflowing through to the engines unchanged."New value: +"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it." - changed
Input schema / $defs / QuoteProfile / properties / city / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / companion_policies / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/HeldPolicyInput" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / companion_policies / descriptionPrevious value: -"Lines the household already HOLDS elsewhere, e.g. [\"home\"] — a held companion policy applies each carrier's multi-policy factor"New value: +"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it" - changed
Input schema / $defs / QuoteProfile / properties / credit_range / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / education / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / employment_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / gender / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / home_ownership_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / industry / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / marital_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / memberships / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_affiliation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_branch / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_rank_paygrade / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / occupation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / residence_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / state / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / street_address / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / unit / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / $defs / QuoteProfile / properties / zip_code / maxLengthAdded value: +200 - changed
Input schema / $defs / VehicleInput / properties / anti_theft / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / body_style / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / garaging_zip / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / make / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / model / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / ownership / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / primary_use / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / trim / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / vin / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / ViolationInput / properties / kind / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / ViolationInput / properties / kind / defaultRemoved value: -null - changed
Input schema / $defs / ViolationInput / properties / kind / descriptionPrevious value: -"The violation in plain words: \"speeding\", \"DUI\", \"reckless \"\"driving\", \"running a red light\"…"New value: +"The violation in plain words: \"speeding\", \"DUI\", \"reckless driving\", \"running a red light\"…" - added
Input schema / $defs / ViolationInput / properties / kind / maxLengthAdded value: +200 - added
Input schema / $defs / ViolationInput / properties / kind / minLengthAdded value: +1 - added
Input schema / $defs / ViolationInput / properties / kind / typeAdded value: +"string" - removed
Input schema / $defs / ViolationInput / properties / on / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / ViolationInput / properties / on / defaultRemoved value: -null - added
Input schema / $defs / ViolationInput / properties / on / typeAdded value: +"string" - added
Input schema / $defs / ViolationInput / requiredAdded value: +[ + "on", + "kind" +] - removed
Output schema / $defs / AgentStatusSummary / descriptionRemoved value: -"One live agent's status in a dispatch envelope's structuredContent." - removed
Output schema / $defs / AgentStatusSummary / properties / line / descriptionRemoved value: -"The line this agent quotes — entry identity is (carrier, line): a bundled dispatch carries the same carrier once per line" - removed
Output schema / $defs / AgentStatusSummary / properties / premium / descriptionRemoved value: -"Verbatim as the carrier's page printed it" - removed
Output schema / $defs / AgentStatusSummary / properties / status / descriptionRemoved value: -"'in_progress' / 'complete' / 'failed'" - removed
Output schema / $defs / AgentStatusSummary / properties / term_months / descriptionRemoved value: -"The term the printed premium covers, in months — when known, present the monthly equivalent (premium ÷ term_months), never a term figure as a monthly one; when absent, the monthly equivalent is unknown" - removed
Output schema / descriptionRemoved value: -"structuredContent of live_carrier_quotes — one shape for both moments:\nthe commissioning receipt and the collected progress/results envelope." - removed
Output schema / properties / assumptions / descriptionRemoved value: -"Unasserted form facts this dispatch resolved to declared no-claim answers (never a discount claim) — each entry names the profile path (field) and the value submitted (assumed). Relay every one with the results; a user who corrects one re-calls with the real value in the profile" - removed
Output schema / properties / coverage_selection / descriptionRemoved value: -"The ask the walks TYPED — what each headline premium is for. A walked profile answers any ask without re-submitting: if the user's ask differs, read each quote's bound cover and variants (the carrier's other recorded options) and present the match" - removed
Output schema / properties / example_arguments / descriptionRemoved value: -"On a profile_required refusal: a correctly-wrapped call to imitate — re-call with the user's facts in this shape" - removed
Output schema / properties / needs / descriptionRemoved value: -"Facts carrier forms insist on that the profile does not carry, per carrier (scope). Each entry's fields[] pairs the walk's own ask with the exact profile/identity schema path to supply it under (field) — collect the answers from the user and re-call; never invent them" - removed
Output schema / properties / recover / descriptionRemoved value: -"On a partial receipt: how to add the skipped carriers without re-submitting the walked ones — re-call with the missing facts merged AND carriers set to exactly recover.carriers (a changed profile is a new dispatch; unscoped, it would re-walk everyone)" - removed
Output schema / properties / status / descriptionRemoved value: -"'in_progress' / 'partial' / 'complete' — re-call the tool with the same arguments to collect"
- Changed
quote_insurance97 fields changed- removed
Input schema / $defs / AccidentInput / properties / on / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / AccidentInput / properties / on / defaultRemoved value: -null - added
Input schema / $defs / AccidentInput / properties / on / typeAdded value: +"string" - added
Input schema / $defs / AccidentInput / requiredAdded value: +[ + "on" +] - changed
Input schema / $defs / CoverageSelectionInput / descriptionPrevious value: -"The coverage to price, as actual numbers on named axes — the value type\nof every entry in the ``lines`` map, so it publishes each line's axes side\nby side (a line reads only its own; the map key says which apply).\n\nTyped for the same reason as ``QuoteProfile``: with a bare dict the schema\npublished ``additionalProperties: true`` and nothing else, so callers\nguessed key names (\"bodily_injury\") and burned a round trip on the\nselection-required refusal before learning the real ones. The fields are\nall optional HERE because completeness is judged server-side\n(``coverage_ask``, per line): an incomplete selection must reach the\nengines' rich ``coverage_selection_required`` payload — which names the\nmissing axes, a common choice, and (auto) the state's legal minimum — not\ndie as a generic schema validation error. ``extra=\"allow\"`` keeps the\nparser's accepted aliases (``bi_limit``, ``collision_deductible``,\n``uim``…), the rarer home axes (B/C/D ratios, hurricane/water deductibles,\n``endorsements``), and wider overrides working."New value: +"The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply." - changed
Input schema / $defs / DriverInput / properties / accidents / descriptionPrevious value: -"Accidents, each dated. An empty list means none."New value: +"Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none." - changed
Input schema / $defs / DriverInput / properties / drivers_license_number / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / education / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / employment_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / exclusion_reason / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / first_name / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / gender / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / industry / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / last_name / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / license_state / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / marital_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / occupation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / relation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / DriverInput / properties / violations / descriptionPrevious value: -"Moving violations, each dated. An empty list means a clean record."New value: +"Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record." - added
Input schema / $defs / HeldPolicyInputAdded value: +{ + "additionalProperties": true, + "description": "A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies.", + "properties": { + "carrier": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount", + "title": "Carrier" + }, + "in_force": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "False for a policy that has lapsed or been cancelled", + "title": "In Force" + }, + "line": { + "description": "What the policy insures: \"home\", \"renters\", \"condo\", \"auto\", \"life\", \"umbrella\"…", + "maxLength": 200, + "title": "Line", + "type": "string" + } + }, + "required": [ + "line" + ], + "title": "HeldPolicyInput", + "type": "object" +} - changed
Input schema / $defs / LossInput / properties / kind / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / carrier / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PriorInsuranceInput / properties / limits / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / construction_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / devices / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / foundation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / garage / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / occupancy / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / protection_class / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / PropertyBlock / properties / roof_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / descriptionPrevious value: -"The household being quoted: a line-neutral core plus per-line blocks\n(#1106). Every fact has a declared posture (`foresee.postures`): a few\nare REQUIRED — the ZIP, the applicant's age (or dob), and, when quoting\nauto, each vehicle's year/make/model — because they have no neutral\nrateable value; YOU supply those, inventing a concrete value from context\nwhen the user was vague and telling them so. Everything else is optional:\nomissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.\n\nTyped (rather than a bare dict) so the connector schema tells the model the\nexact field names: an untyped profile made models guess keys (\"zip\"), the\nvalue was silently ignored, and the engines rated a default location.\n``extra=\"allow\"`` keeps two things working unadvertised: the legacy flat\nspellings (``vehicle_year``, ``spouse_dob``, ``currently_insured``,\n3-year incident counts…), which fold onto the blocks — a flat key\ndisagreeing with a block is a hard error naming both — and richer keys\nflowing through to the engines unchanged."New value: +"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it." - changed
Input schema / $defs / QuoteProfile / properties / city / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / companion_policies / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "$ref": "#/$defs/HeldPolicyInput" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / companion_policies / descriptionPrevious value: -"Lines the household already HOLDS elsewhere, e.g. [\"home\"] — a held companion policy applies each carrier's multi-policy factor"New value: +"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it" - changed
Input schema / $defs / QuoteProfile / properties / credit_range / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / education / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / employment_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / gender / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / home_ownership_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / industry / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / marital_status / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / memberships / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "maxLength": 200, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_affiliation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_branch / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / military_rank_paygrade / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / occupation / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / residence_type / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / state / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / street_address / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / QuoteProfile / properties / unit / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / $defs / QuoteProfile / properties / zip_code / maxLengthAdded value: +200 - changed
Input schema / $defs / VehicleInput / properties / anti_theft / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / body_style / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / garaging_zip / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / make / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / model / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / ownership / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / primary_use / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / trim / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / VehicleInput / properties / vin / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / $defs / ViolationInput / properties / kind / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / ViolationInput / properties / kind / defaultRemoved value: -null - changed
Input schema / $defs / ViolationInput / properties / kind / descriptionPrevious value: -"The violation in plain words: \"speeding\", \"DUI\", \"reckless \"\"driving\", \"running a red light\"…"New value: +"The violation in plain words: \"speeding\", \"DUI\", \"reckless driving\", \"running a red light\"…" - added
Input schema / $defs / ViolationInput / properties / kind / maxLengthAdded value: +200 - added
Input schema / $defs / ViolationInput / properties / kind / minLengthAdded value: +1 - added
Input schema / $defs / ViolationInput / properties / kind / typeAdded value: +"string" - removed
Input schema / $defs / ViolationInput / properties / on / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / ViolationInput / properties / on / defaultRemoved value: -null - added
Input schema / $defs / ViolationInput / properties / on / typeAdded value: +"string" - added
Input schema / $defs / ViolationInput / requiredAdded value: +[ + "on", + "kind" +] - removed
Output schema / $defs / BundleSummary / descriptionRemoved value: -"One carrier's bundle arithmetic when a call prices several lines\ntogether. Totals are two REAL ratings of the same profile — the carrier's\nmulti-policy factors applied and cleared — never a percentage: the\nfactors apply per line and per coverage, and each shows in that line's\nown quote cell like any other applied factor. This block only adds the\ncross-line sums those cells cannot carry." - removed
Output schema / $defs / BundleSummary / properties / bundle_total / descriptionRemoved value: -"Monthly total across those lines rated together — the sum of this carrier's headline `monthly` in each line's by_line cell" - removed
Output schema / $defs / BundleSummary / properties / lines / descriptionRemoved value: -"The lines this carrier priced together" - removed
Output schema / $defs / BundleSummary / properties / savings / descriptionRemoved value: -"standalone_total − bundle_total, USD per month" - removed
Output schema / $defs / BundleSummary / properties / standalone_total / descriptionRemoved value: -"Monthly total for the same lines each rated alone" - removed
Output schema / $defs / CarrierQuoteSummary / descriptionRemoved value: -"One carrier's headline in a quote result's structuredContent." - removed
Output schema / $defs / CarrierQuoteSummary / properties / carrier_quote_url / descriptionRemoved value: -"The carrier's own quoting portal — where a purchase completes" - removed
Output schema / $defs / CarrierQuoteSummary / properties / monthly / descriptionRemoved value: -"Point-estimate monthly premium, USD" - added
Output schema / $defs / CarrierQuoteSummary / properties / rated_vs_askedAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Rated Vs Asked" +} - removed
Output schema / $defs / CarrierQuoteSummary / properties / warnings / descriptionRemoved value: -"Per-carrier honesty notes — off-ladder-ask divergence, unconfirmed eligibility, no direct purchase path — relay them with the price" - removed
Output schema / $defs / LineQuoteSummary / descriptionRemoved value: -"One priced line's headline block inside ``by_line``: the ask, the\nprices, and the declared honesty blocks — what was assumed, what to ask\nthe user to sharpen it, who couldn't price the ask and why, and which\ngiven inputs these rates don't price. Surface all of them." - removed
Output schema / $defs / LineQuoteSummary / properties / assumptions / descriptionRemoved value: -"Omitted facts priced at a declared stand-in value — relay them with the prices; never present an assumed price as a measured one. An entry carrying `path` names the exact profile field to send the user's real answer under; a path-less entry is answered by completing the incident entries already sent" - removed
Output schema / $defs / LineQuoteSummary / properties / coverage_selection / descriptionRemoved value: -"The ask this line was priced at, echoed verbatim" - removed
Output schema / $defs / LineQuoteSummary / properties / failures / descriptionRemoved value: -"Carriers that could not price this exact ask, each with the reason (limit not offered, eligibility…) — they dropped out, they are not cheap or missing" - removed
Output schema / $defs / LineQuoteSummary / properties / input_flags / descriptionRemoved value: -"Given inputs that look wrong (e.g. an odometer reading sent as annual mileage)" - removed
Output schema / $defs / LineQuoteSummary / properties / not_rated / descriptionRemoved value: -"Inputs the caller GAVE that these rates do not price (a second vehicle, rideshare use…) — relay each note verbatim" - removed
Output schema / $defs / LineQuoteSummary / properties / tighten_by / descriptionRemoved value: -"The missing facts that most move the price — offer to re-quote with the user's answers, each sent under its matching assumptions (or input_flags) entry's `path`" - removed
Output schema / descriptionRemoved value: -"structuredContent of the quote tools: headline numbers only, keyed by\nline from the first scan (#1106) so a second line's launch never diffs\nthis schema.\n\nThe content channel carries the full sub-coverage/ladder detail; this stays\nconcise on purpose, and carries no internal identifiers (GHI #1101)." - removed
Output schema / properties / bundle / descriptionRemoved value: -"Per-carrier bundle totals, keyed like by_line's carrier_key, when one carrier priced several of the asked lines together. Absent means no bundle pricing was computed — never present multi-line prices as bundled unless this block says so" - removed
Output schema / properties / by_line / descriptionRemoved value: -"Each priced line's carriers, cheapest first" - removed
Output schema / properties / coverage_required / descriptionRemoved value: -"Lines needing a coverage ask, each naming its own axes" - added
Output schema / properties / denseAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Dense" +} - removed
Output schema / properties / example_arguments / descriptionRemoved value: -"On a profile_required refusal: a correctly-wrapped call to imitate — re-call with the user's facts in this shape" - removed
Output schema / properties / presentation / descriptionRemoved value: -"How to present priced results — rides with them" - removed
Output schema / properties / profile_required / descriptionRemoved value: -"Required profile facts still missing (field → what to pass). Nothing is priced while any is open: supply each — if the user didn't state one, pass your best concrete value and present it to them as your assumption" - removed
Output schema / properties / skipped / descriptionRemoved value: -"Lines not priced, with the honest reason — relay it"
2 tool updates
- First observed
live_carrier_quotes - First observed
quote_insurance
Related MCP Connectors
Real, bindable home & auto insurance quotes via MCP — actual carrier rates, not estimates. Texas today, expanding across the US. AI agents can check eligibility, run a live multi-carrier quote, compare options (carrier names hidden until bind), and hand the customer a secure link where a licensed agent finalizes coverage — never an automated purchase. No sign-up or API key required; optional free partner keys for integrators.
Machine-learning-backed insurance premium estimates from Mylo, comparing 100+ carriers.
AI agents compare and sign up for Texas utility plans: electricity, internet, gas, water, trash.
Insurance brokerage for AI agents — quote, bind, and settle in USDC
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to get real home & auto insurance quotes and start binding through a network of licensed independent agencies.1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to compare live insurance quotes across Nigerian insurers, check for overpayments, and provide hosted checkout links.MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides tools for motor insurance quoting, including vehicle lookups, postcode risk assessments, and premium calculations. It enables users to generate and compare car insurance quotes through natural language interactions.-
- FlicenseNot gradedqualityDmaintenanceProvides an AI-powered insurance assistant with tools for customer, policy, claim, premium, fraud detection, and policy renewal operations.-
Glama MCP Gateway
Add one secure layer between your agents and this server.