Internal proposal · In active build

A single risk picture for every merchant in the Redbrain book.

Combines what only Redbrain can see — invoicing history, payment terms, current CPC exposure — with what the rest of the world can see, so finance, commercial and leadership all read from the same dashboard.

01 — The problem

Redbrain’s exposure isn’t abstract — it’s 30 to 60 days of CPC spend.

As a CSS, Redbrain pays Google for clicks now and invoices the merchant for those clicks 30 to 60 days later. A merchant that fails owing a billing cycle of spend takes a real bite out of the P&L.

The CSS working-capital cycle is brutal: cash out daily to Google, cash in monthly from merchants. Standard credit-insurance products don’t price CPC receivables cleanly. Begbies Traynor and Red Flag Alert publish risk scores but they don’t know which merchants are ours, what they owe us today, or whether their payment behaviour has changed.

A merchant rarely fails without warning. The signals are mostly there, but scattered: in the finance team’s aged-debt report, in commercial’s account notes (“they’ve asked to switch to monthly billing”), in trade press, in Companies House filings nobody reads until it’s too late. The work this system does is collect them in one place and surface the ones that matter.

Bad debt from merchant failure is the most preventable hit on the P&L. It only takes us by surprise because the signals were never in the same room.

Three decisions this needs to drive

Decision 01

Who to onboard.

New merchant pitching to join the CSS programme. Should we take them on at all, and on what terms? Today: a manual check. Tomorrow: a score on day one, with the external signals doing the work the commercial team can’t in 20 minutes.

Decision 02

What terms to set.

Existing merchant up for renewal, or a step-change in their spend. Are 30-day terms still appropriate, or should they move to weekly billing? Should we cap their daily spend until trust builds? The score plus exposure data answers it directly.

Decision 03

When to tighten.

The hard one. Existing customer, things changing. DSO drifting up. A profit warning in trade press. A CFO resignation at Companies House. The system pings finance and commercial in the same alert — before the merchant becomes a problem.

02 — How it fuses

Internal data first. External signals as confirmation.

The unique advantage is that Redbrain has data on these merchants that nobody outside the company can see. The external signals are valuable, but they’re a layer on top.

Internal · Tier 0

Invoicing & payment history

Days Sales Outstanding by merchant and over time. Late-payment patterns. Term-change requests (“can we move to quarterly?”). Payment-method changes. This is the strongest single-source signal in the system because it’s direct evidence, not inference.

Internal · Tier 0

Current exposure

Outstanding CPC spend by merchant, billing-cycle stage, days-to-next-invoice. Combined with the risk score, gives finance an exposure-weighted view: a 90/100 risk score on a merchant with £50 outstanding matters less than a 60/100 score on one with £80,000.

External · Tier 1

Companies House & Gazette

Statutory filings, charges, officer changes, winding-up petitions, late accounts. Free, structured, legally definitive. The earliest external signal — sometimes weeks before press coverage.

External · Tier 2

Trade & mainstream press

Retail Gazette, Drapers, The Grocer, Retail Week, plus mainstream business press. Profit warnings, CVA rumours, store closures, layoffs. LLM-classified for severity and merchant relevance.

External · Tier 3

Merchant website health

Site uptime, careers-page change (job listings drying up), discount depth (sustained 50%+ off across the catalogue). Operational tells from the retailer’s own front end.

External · Tier 4

Social & reviews

Glassdoor on unpaid expenses, Trustpilot on order non-delivery, Reddit on customer service collapse. Noisy and processed last — but corroborating when other signals are already firing.

All six sources feed into the same risk score and the same exposure view. The two internal sources are weighted more heavily because they’re behaviour, not commentary. A merchant whose payments are slipping today is a stronger signal than a merchant whose trade press is wobbly.

03 — Who uses it

Same data, three views.

Finance, commercial, and leadership ask different questions of the same merchant book. Each gets a view that answers theirs first.

View 01 · Finance

Credit control.

Sorted by exposure-weighted risk. The merchants that could hurt us, ranked by how much they could hurt us for.

  • Outstanding spend per merchant
  • DSO trend, last 90 days
  • Days to next invoice
  • Recommended action by merchant
  • Alerts on term-change requests
View 02 · Commercial

Account management.

Sorted by merchant relationship. Heads-up before a difficult conversation; context for term-tightening discussions.

  • External signals on your accounts
  • News mentions in last 30 days
  • Renewal & review dates
  • Onboarding-decision score
  • Recent Companies House activity
View 03 · Leadership

Portfolio risk.

Sorted by total book exposure. Where the concentration is, what’s moving, how the portfolio looks today versus a quarter ago.

  • Total exposed CPC across the book
  • Risk-band distribution
  • Sector concentration heatmap
  • Quarter-on-quarter risk drift
  • Top 10 movers, up and down

Finance view, on a representative sample

Below is what the finance dashboard would look like with a small sample of merchants. Data is illustrative, not live — but the columns, sort order and action recommendations are exactly what v1 will ship.

redbrain.internal/merchant-risk/finance
Finance · Credit control
Commercial · Accounts
Leadership · Portfolio
Merchant
Exposure
DSO 90d
Payment trend
Risk score
Recommended action
Carpetright LtdCRN 02294875 · £42,800 outstanding
£42.8k
52d ↑ from 38d
Slipping · 5/5 cycles
88
Require prepayment
Debenhams Retail LtdCRN 00083395 · £18,200 outstanding
£18.2k
47d ↑ from 31d
Slipping · 4/5 cycles
92
Pause & review
Cath Kidston Brand LtdCRN 12018392 · £8,940 outstanding
£8.9k
61d ↑ from 35d
Late 3/5 cycles
76
Move to weekly billing
River Island Holdings LtdCRN 01457154 · £24,100 outstanding
£24.1k
36d · stable
2 mentions in press
54
Watch · review at renewal
Secretsales.com LtdCRN 05098945 · £6,400 outstanding
£6.4k
29d · stable
No change
34
Continue, standard terms
Next plcCRN 04412362 · £61,300 outstanding
£61.3k
28d · stable
Improving
18
Continue, standard terms
£161k
Total exposure shown
£70k
At elevated risk
6
Data streams per merchant
Daily
Refresh cadence
04 — Status

What’s built. What’s not.

Honest accounting. Every module is built and deployable. What’s pending: wiring real Redbrain finance data into the CSV pipeline, a commercial scraping provider for Glassdoor/Reddit, and the first week of tuning against live signals.

01
Companies House crawlerProfile, filing history, charges. Rate-limited (KV-backed soft cap at 580/5min), idempotent. Running against the seeded merchant book.
Workers + Neon Built
02
News RSS ingestionCron-driven scrape every 30 min. URL-hash dedup. Queues articles for classification. ~100 UK + Germany sources available in the optional seed file.
Workers + Queues Built
03
Signal store & schemaNeon Postgres. Merchants, signals, risk scores, raw snapshots, job runs, settings, watchlist tags, alert rules. Built to accept internal-data sources alongside external.
Neon Built
04
LLM article classifierReads raw articles, identifies merchants by alias matching, classifies distress severity with Claude Haiku 4.5. Returns structured JSON; auto-emits press signals.
Haiku + Workers Built
05
Invoicing & payment-history ingestionCSV-ingest worker watches an R2 bucket, picks up daily invoice CSVs from Redbrain finance, upserts into Neon. DSO computed nightly from a database view.
R2 + Workers Built
06
Current-exposure ingestionSame csv-ingest worker handles daily outstanding-balance snapshots. Schema supports billing-cycle stage, overdue carve-out, days-to-next-invoice.
R2 + Workers Built
07
Risk-score aggregatorHourly job. Severity weights with 90-day recency decay, internal-signal 1.5x boost, exposure-aware action recommendations. Every parameter tunable from the dashboard.
Workers Built
08
Dashboard (three views + tools)Next.js on Cloudflare Pages. Finance, commercial, leadership views, plus settings (sliders), watchlist (tags), alerts. Live merchant search.
Pages + Neon Built
09
Merchant-website healthHourly uptime check on website root + careers page. Careers-page job-count diff — flags signal on 30%+ drop week-on-week. Heuristics cover Workday, Greenhouse and common patterns.
Workers Built
10
Social & review sweepTrustpilot tracking built — rating drops, new 1-star surges. Glassdoor and Reddit scaffolded with documented integration points for a commercial scraping provider.
Workers + 3rd-party Trustpilot live
11
Alerts & integrationsEmail (Resend), Slack webhook, SMS (Twilio). Threshold-based with per-rule suppression windows. Channel routing per recipient. Provider keys add live sending.
Workers + providers Built

All eleven modules are now built. What remains is wiring real Redbrain data into modules 05 and 06 (replacing the seeded CSVs with the live finance feed), adding a commercial scraping provider for Glassdoor/Reddit in module 10, and the inevitable first-week tuning. See build plan for the one-day deploy.