Expert guide
Insurance Agency Renewal Tracker in Excel
Every policy on the work list at the right time, and retention you can see by producer
Call us at +1 (385) 386-3860
Short answer: export policies from your agency management system into an Excel Table, add a lead-time table by line of business, calculate each policy's work-start date as expiration minus lead days, and filter a daily renewal queue by account manager. Track stage, remarketing, renewal premium and outcome, then report retention by producer and line. Add a cross-sell grid per client. For relationship tracking around it, see Excel CRM Lite.
An agency's book of business is mostly renewals. Losing a renewal because nobody started the conversation until the week before expiration is the most avoidable loss there is. Agency management systems hold the policies, but many agencies still run renewal work from spreadsheets because they need a simple queue, stage tracking and reports their system makes awkward.
Tracker Structure
| Column | Notes |
|---|---|
| Client, PolicyNo, LOB | Line of business drives lead time and workflow |
| Carrier, Effective, Expiration | From the AMS export |
| CurrentPremium | Annualised |
| Producer, AccountManager | Accountability |
| WorkStart | Calculated from expiration and LOB lead days |
| Stage | Not started, Info requested, Marketing, Quoted, Presented, Bound, Lost |
| Remarket | Y/N with reason (rate increase, claims, coverage gap, client request) |
| RenewalPremium, Outcome, LostReason | Results |
The Formulas
Lead days by line of business (tblLeadTimes: LOB, LeadDays): =XLOOKUP([@LOB], tblLeadTimes[LOB], tblLeadTimes[LeadDays], 60) Work start: =[@Expiration] - [@LeadDays] Days to expiration: =[@Expiration] - TODAY() Behind schedule (should have started, still not started): =AND(TODAY() >= [@WorkStart], [@Stage] = "Not started") Premium change at renewal: =IF([@RenewalPremium] = "", "", [@RenewalPremium] / [@CurrentPremium] - 1)
The Daily Renewal Queue
=SORT(FILTER(tblPolicies[[Client]:[Stage]],
(tblPolicies[AccountManager] = B1) *
(TODAY() >= tblPolicies[WorkStart]) *
ISNA(MATCH(tblPolicies[Stage], {"Bound","Lost"}, 0)),
"No renewals to work"), 6, 1)Sorted by expiration (6 is the Expiration column's position within the returned columns; adjust it to your layout), with Behind schedule rows highlighted in red. Add a column for large premiums so the biggest accounts are never missed.
Retention Reporting
Policies up for renewal in month (start in A2):
=COUNTIFS(tblPolicies[Expiration], ">=" & A2, tblPolicies[Expiration], "<" & EDATE(A2,1),
tblPolicies[Outcome], "<>")
Retained (renewed or rewritten):
=COUNTIFS(tblPolicies[Expiration], ">=" & A2, tblPolicies[Expiration], "<" & EDATE(A2,1),
tblPolicies[Outcome], "Renewed")
+COUNTIFS(tblPolicies[Expiration], ">=" & A2, tblPolicies[Expiration], "<" & EDATE(A2,1),
tblPolicies[Outcome], "Rewritten")
Policy retention: =Retained / UpForRenewal
Premium retention: retained renewal premium ÷ expiring premium of all policies up for renewalBreak both down by producer, line of business and carrier. Lost reasons, recorded every time, explain the numbers: price, service, coverage, client sold the business, moved to a direct writer.
Cross-Sell Grid
A client with a business owner's policy but no cyber, umbrella or workers' compensation cover is a conversation waiting to happen. Build a grid of clients against lines of business:
In a client × LOB grid, cell formula:
=IF(COUNTIFS(tblPolicies[Client], $A5, tblPolicies[LOB], B$4,
tblPolicies[Outcome], "<>Lost") > 0, "✓", "")Filter clients with three or more empty commercial lines and add those questions to their renewal review.
Renewal Review With AI
Pre-renewal summary
From policy list, premium history and claims notes, a one-page summary for the account manager.
Quote comparison
Compare expiring and renewal documents for changes in limits, deductibles, exclusions and endorsements, with page references for verification.
Client emails
Renewal reminders and information requests drafted from the row data.
Cross-sell prompts
Questions to ask based on the client's industry and the gaps in the grid.
Coverage interpretation stays with licensed staff, and client documents should go only to approved tools. The email workflow is in personalized emails from Excel with AI; document comparison follows the extraction approach in extracting PDF data with AI.
Keeping the Tracker in Sync
Refresh the policy export weekly with Power Query; keep stage, notes and outcome in a separate table keyed by policy number so refreshes do not wipe your work.
Never edit policy facts in the tracker; correct them in the AMS.
Archive bound and lost renewals to a history table each quarter for multi-year retention trends.
When several people update stages at once, a shared database such as our Access CRM avoids the conflicts of a shared workbook. For a management dashboard of retention, new business and premium by producer, see Excel dashboards and BI reporting.
FAQ
Insurance renewal tracker FAQ
Lead times, retention and AI reviews