Consumer fintech (bill financing)Growth + Platform story
Real money rails, and attribution that refuses to flatter.
A consumer bill-financing fintech pays household bills and lets customers repay in installments. We engineer the platform underneath, from AI bill reading and payment rails to underwriting and collections, and the growth layer around it: offline conversions that carry real revenue, channel-by-channel attribution, and lifecycle SMS and email at real volume, all measured by rules that publish the unflattering numbers.
- Engagement
- Client
- Client
- Willow
- Sector
- Consumer fintech (bill financing)
- Story
- Growth + Platform
- On the web
- willowpays.com (opens in a new tab)
The number
The one figure we’ll stand behind.
Open the receipt for where it came from, how it was counted and when we last checked it. How we count
18,576
SMS delivered in 30 days, at a 91.1% delivery rate
Lifecycle and verification messaging for a consumer fintech, counted from the carrier, not estimated.
receipt
SOURCE · Twilio messaging records for a consumer-fintech client's production account
METHOD · Delivered-message count and delivery rate for a trailing 30-day window, verified independently against the Twilio API.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · sms-volume
How we count01 · Where they started
A fintech that pays the bills people photograph
Customers upload a utility, insurance, phone or auto bill. The company pays the vendor, and the customer repays in installments. Behind that one sentence sit documents to read, people to verify, money to move through several processors, risk to price, repayments to schedule and collections to run, every business day.
02 · The wall
Demo-grade engineering fails on money, and so does demo-grade marketing
Every step touches real money, so every step needs a system of record and an audit trail. Growth has the same problem in a different costume: ad platforms report conversions, but the business runs on funded bills. Unless the marketing numbers reconcile with the ledger, spend decisions get made on the platforms’ version of events.
03 · What we built
What we built.
Named systems, described by what they do, one part at a time.
Part 1: A three-layer AI document pipeline
Bills arrive in every format. Google Document AI reads them first, Gemini Vision takes over when it struggles, and Claude is the final layer, with health monitoring on each layer so a degraded model shows up on a dashboard before it shows up in a customer’s experience.
- Document AI → Gemini Vision → Claude fallback chain
- Health monitoring on every layer
- ZIP-code serviceability checks at intake
Part 2: Payment rails, underwriting and collections
Plaid, Stripe, Bill.com and FluidPay handle money movement. Cloud Functions run the underwriting funnel, repayment scheduler, call queue and collections states. Twilio one-time passcodes and phone verification gate signup, and an affiliate-network integration forwards sub-ID tracking through a dedicated mirror landing domain.
- Separate test, dev and production environments
- Next.js operations consoles and a weekly business-report runbook
- Affiliate sub-IDs preserved end to end
Part 3: A first-party risk model
We replaced paid third-party risk scores with the lender’s own model: LightGBM with isotonic calibration, trained on realized repayment outcomes using as-of-submission feature snapshots, so nothing from the future leaks into training. It serves explainable feature contributions and adverse-action reason codes, sits under hard-fail policy rules, records every score in a ledger, and is guarded in code so no third-party score can be used for training or serving.
- Adverse-action reason codes for compliance
- Postgres with row-level security and an append-only event ledger
- Retrained as repayment outcomes mature
Part 4: Attribution that counts funded bills, not clicks
Offline conversion uploads carry the real fee value of each funded bill back into Google’s attribution, so bidding learns from revenue instead of form fills. A channel-attribution dashboard breaks funded bills down by Google Ads campaign, affiliate, Bing, Meta, AI assistants, email and untagged traffic. It runs on a hashed, read-only mirror of production data behind Google sign-in. Ad-platform conversions are reconciled against the database, and the weekly report runs on written honesty rules: absent data never renders as zero, fresh cohorts are labeled until they settle, and weekday-mix traps are called out.
- Offline conversions carrying real fee values
- A spend planner that asks whether the next dollar is worth it, using impression-share headroom and diminishing returns
- Ad-platform conversions reconciled against the system of record
Part 5: Lifecycle messaging at real volume
Twilio carries verification and lifecycle SMS; Customer.io carries email, with Google Postmaster monitoring deliverability and review-request audiences feeding Trustpilot. Every capability that touches money or messages customers ships disarmed behind an explicit switch: conversion uploads, email writes and SMS alerts all stay off until someone turns them on.
- SMS delivery verified against the carrier’s own records
- Email with deliverability monitoring
- Money-touching features ship disarmed by default
04 · Up close
The work, up close.
Real screens and real product photography, uncropped. Select any image to enlarge it.




05 · More receipts
The supporting figures.
Same rule as the headline number: each one opens to its source, its method and the month we checked it.
~33–40%
of funded bills are Google-attributed. We publish it on purpose.
Measured, not assumed. The rest arrive through affiliates, Bing, Meta, email, AI assistants and untagged traffic, and the dashboard shows them too.
receipt
SOURCE · Channel-attribution dashboard for a consumer-fintech client, reconciled against its funded-bill database
METHOD · Ad-platform conversions compared with funded bills in the system of record over rolling windows. Absent data never renders as zero; immature cohorts are labeled, not counted.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · attribution-honesty
How we count90.8%
of leads complete phone verification (one-time passcode)
Measured lead-to-OTP completion on a consumer fintech signup funnel.
receipt
SOURCE · Production funnel data for a consumer-fintech client (lead records reconciled with verification events)
METHOD · Share of leads that completed the one-time-passcode step, measured from production records.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · otp-completion
How we countSince Aug 2021
a consumer bill-financing fintech in production on rails we engineer
Funded-bill history in the production database begins August 16, 2021.
receipt
SOURCE · Funded-bill records in a consumer-fintech client's production database
METHOD · Earliest funded-bill record in the system of record. This is a history claim, not an uptime claim.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · fintech-since
How we count2
paid risk vendors replaced by a first-party, explainable underwriting model
A calibrated LightGBM model trained on the lender’s own repayment outcomes, served with adverse-action reason codes.
receipt
SOURCE · Underwriting-model repository for a consumer-fintech client
METHOD · Model design documents and serving code; both third-party scores are blocked from training and serving by a guard in code.
VERIFIED · 2026-09
CLASS · repository
✓ every number on this site opens its receipt
CLAIM · vendor-replacement
How we count