Proposal engine
Prices self-funded proposals and generates the deck.
- Per-deal time
- 7.9 to 5.0 hrs
- Tests
- ~200
- Pricing
- deterministic
- Status
- internal production
Prices self-funded proposals and generates the deck.
Takes an RFP packet as uploaded (census, current plan documents, renewal letters, whatever the broker sends), classifies each document, and pulls the assumptions a quote depends on into an editable form. Prices three scenarios off the stop loss factors directly instead of off indexed current rates, so funding doesn't drift under enrollment changes. Reads the stop loss quotes that come back, lays them side by side by option, and generates the proposal document and the broker deck.
It doesn't chase the underwriters, and it doesn't decide anything. Every parsed value shows up as a suggestion someone confirms. That's a design choice, not a limitation.
An Excel rating workbook only one person could run, four separate email chains per deal to stop loss underwriters in four different formats, manual transcription of quote PDFs into a comparison sheet, and a proposal assembled by hand. I was checking every number before it went out, because one wrong figure in a firm proposal is a problem you can't take back.
FastAPI on Cloud Run, Postgres on Cloud SQL, identity-aware proxy in front of everything so access is governed by the same environment the rest of the company uses. Secrets in Secret Manager. The pricing engine is deterministic and covered by about 200 tests; the money-critical paths have the tightest coverage. Document parsing is per-underwriter, and only two of the five formats we see are parsed today. The rest are still manual by design until the parsers are proven.
Built with Claude Code. I wrote the spec and the acceptance tests, reviewed every diff on the pricing paths, and had our consulting underwriter validate the logic before anything touched a live quote.
Underwriting time per deal dropped from about 7.9 hours to about 5, and the savings land in transcription, workbook building, and proposal assembly. Cost per deal comes down whether volume grows or not. The bigger change is that I'm no longer the second set of eyes on arithmetic, and the proposal no longer depends on nobody fat-fingering a workbook.
Sending submissions to underwriters from the engine instead of four email chains. Parsers for the remaining three quote formats. Per-proposal access control so real member data can run through it.