Sync agent licensing from SureLC
The problem it solves
Right Quote doesn't know what an agent is allowed to sell. Today it can surface carriers and states an agent isn't licensed or appointed for, and licensed states are entered by hand (or pulled from Fintary, which the agency is migrating off and calls error-prone). That creates three costs:
- Wasted quoting + dead ends - agents quote carriers they can't actually submit to, and only find out at the handoff.
- Rookie mistakes - a new agent quotes outside their authorization and burns a paid lead.
- Slow recruit activation - onboarding a new producer means manually establishing what they can sell, delaying their first close - the agency's core growth lever.
Who it helps: the agency owner gets faster recruit activation + one source of truth for agent authorization; the veteran gets silent automation (only sellable carriers show, no extra steps); the new agent gets a guardrail that keeps them inside what they're licensed to sell.
What the agent experiences
On first login, the agent confirms their NPN (National Producer Number). Right Quote pulls their license + appointment record from Safe Life's SureLC account (SureLC keeps it synced from NIPR) and shows "Licensed for Life in GA, FL, TX; appointed with Mutual of Omaha, Americo" for them to confirm. From then on the funnel filters carriers and products to what they can sell, and the data refreshes on its own. We leverage the SureLC account Safe Life already runs, rather than standing up a parallel data pipe.
The flow
(Safe Life's account,
NIPR-backed)
On confirm, the backend looks up the NPN, normalizes licenses + appointments into the licensing store, and shows the agent their states for confirmation. A weekly batch job re-syncs the whole roster and surfaces renewal/change alerts. The quote funnel (S2 to S4) reads the licensing store to gate the carrier/product list.
Two feeds you pull - and Right Quote needs both
Licenses
State + line of authority (Life, Health) + status + expiration. Answers "can this agent sell this line in this state."
Appointments
Which carriers the producer is appointed/contracted with, by state. Answers "can they actually submit to this carrier."
Together these are exactly the agent-licensure filter in our carrier-priority model (agency rank first, then licensure filter).
Reference data model
producer : npn, name, agency_id producer_license : npn, state, loa, status, expires_on producer_appointment : npn, carrier, state, status
Shape only - the internal stack is the engineering team's call.
Where it touches Right Quote
| Surface | What changes |
|---|---|
| Account settings -> Licensing tab | Synced states + appointments, last-refreshed timestamp, a "Sync now" button. The agent self-config surface. |
| S2 / S4 carrier filter | Licensed state + line of authority + appointment gate the carrier/product list shown to the agent. |
| Licensure source | SureLC's API (Safe Life's existing account); replaces or reconciles with the Fintary feed used today. |
Phased rollout
Each phase ships value on its own, using progressively more of the NIPR feed. v1 is the basic, read-only slice.
| Phase | What ships | NIPR data used |
|---|---|---|
| v1 License-gated funnel | Agent confirms their NPN at first login; Right Quote looks up the PDB, shows and confirms their licensed states + lines of authority, and filters the funnel to those states. Read-only. | Licenses (state + LOA) |
| v2 Appointments + freshness | Add carrier appointments to the filter; a "Sync now" button; weekly auto-refresh; license expiration / change alerts. | Appointments (carrier + state) + NIPR monitoring |
| v3 Agency-wide | Pre-load the full agency roster in batch; an admin licensing dashboard; reconcile or cut over from Fintary. | Batch PDB + monitoring across the roster |
Filter guard (v1): NIPR appointment data can lag a brand-new same-week appointment. The filter must never hard-hide a carrier the agent can actually sell - show lagging/unconfirmed carriers with a "verify appointment" flag or a manual override, rather than removing them.
Beyond the NIPR data (Tier 2, out of scope here): carrier contracting / onboarding automation - the part that needs per-carrier integrations, not just data.
What it takes to build
- SureLC API access (v1): confirm Safe Life's SureLC multi-carrier account, get the API credentials (free with the account), and map the SureLC data fields to the licensing store. (NIPR-direct - a PDB access agreement + FCRA permissible purpose + Gateway credentials - is the fallback only.)
- Right Quote side: an NPN capture step, a sync service (on-demand at first login / "sync now" + a weekly roster batch), the licensing tables, wiring licensed-state + appointment into the funnel's carrier filter, and the Licensing settings tab.
- NPN validation: validate a self-entered NPN against the producer's name/DOB before trusting it - a typo that pulls another person's record is a data breach, not just a bug.
- Carrier-name reconciliation: map NIPR appointment carrier names to Right Quote's carrier names, reusing the existing mapping so this doesn't repeat the carrier-slug mismatch already seen in the build (PEA-244).
- Compliance: FCRA permissible-purpose handling + a retention policy for the license data (lighter than SSN/banking, but still regulated).
Effort: a few weeks of build once NIPR access is in hand. The NIPR agreement + credentials gate everything, so kick that off in parallel on day one.
Declaring permissible purpose (FCRA)
PDB data is FCRA-regulated. On the recommended v1 (read from SureLC), SureLC is the NIPR subscriber and holds the primary FCRA relationship - PP receives the data under SureLC's + Safe Life's terms, lighter than subscribing directly (PP still handles the data per FCRA). The structure below applies to the NIPR-direct fallback.
- Who holds the access (resolve first): the proposed structure is Safe Life (the agency) as the NIPR subscriber of record, with PP operating as its service provider - PP identifies the end user + purpose to NIPR per request rather than being the FCRA data recipient itself. (The alternative - PP as its own subscriber - carries PP's own FCRA obligations.) Legal picks the structure before anything is signed; everything below assumes it's settled.
- The representation: on NIPR's PDB Access Agreement, the subscriber represents and warrants it is engaged in the business of insurance and has a permissible purpose under FCRA Section 604 (15 U.S.C. § 1681b), and certifies FCRA compliance when requesting and using PDB reports.
- Our purpose: verifying the licensing and appointment status of producers who are agents transacting on Right Quote - a legitimate business need tied to the business relationship with that producer. Records are pulled only for producers in (or entering) that relationship, never arbitrary lookups.
- Permissible purpose is the legal gate, not consent. We still capture the agent's affirmative authorization at first login as good hygiene, but the §604 permissible purpose + the NIPR agreement are the basis - we do not rely on consent alone.
- Retention + audit: license data is kept only while the agent is active and deleted on offboarding; every pull is logged (who, when, which NPN, purpose) - satisfying NIPR's per-request identification requirement and our own audit trail.
- No adverse-action surprise: the data informs the agent's own funnel, not an eligibility decision about the producer - confirm with legal that this does not trip FCRA adverse-action duties.
Before go-live, legal signs off on the structure, the exact attestation language, and the specific Section 604 sub-purpose; NIPR's access form governs the final wording.
Open decisions
| Decision | |
|---|---|
| ? | NPN source: agent self-enters at first login, or pre-map from the agency roster (already have it via Fintary)? |
| ? | Cost model: per-lookup vs monitor-the-roster subscription (depends on roster size + churn). |
| ? | Fintary: cut over to NIPR for licensure, or run both and reconcile? |
| ? | Filter depth: gate on license only (simpler) or license + appointment (truer)? |
Why it's worth it
- Recruit-activation speed - the agency's core growth lever is turning recruits into producers; auto-establishing what a new agent can sell shortens time-to-first-close. This is the value the economic buyer (the owner) actually buys, and it feeds the cohort-EBITDA model.
- Fewer dead-end quotes - filtering to sellable carriers cuts wasted agent time and failed handoffs.
- Low build cost - the data already lives in Safe Life's SureLC account; Right Quote reads it rather than rebuilding the pipe.
The v1 source: read from SureLC
Read from SureLC's free API (recommended v1). Safe Life already uses SureLC for new-hire carrier appointment, so each agent's license + appointment data is already in their SureLC account and kept current. SureLC's API is free with their multi-carrier account, and it simplifies compliance: SureLC is the NIPR subscriber and carries the FCRA relationship, so PP isn't the data recipient.
NIPR-direct is the diminished option. It would only pay off if PP wanted to own the pipe and hedge away from SureLC - but Safe Life relies on SureLC for contracting and isn't leaving it, so that hedge has little value. Keep NIPR-direct as a fallback, not v1.
A SureLC equivalent = replicating the new-hire NPN-to-appointed automation Mike described - the carrier-contracting moat, a multi-year relationship-gated bet, not the data layer. Out of scope here.
Sequencing: post-go-live; it should not compete with Right Quote v1.