The specialist receives a ready draft with a separate risk check.
The specialist starts from a checked draft and sees the verdict. They can edit or reject it, then send it from their own inbox.
Measured on synthetic cases
This version shows the receivables queue, a reminder draft, and a separate tone check. It connects to neither email nor a client system, so it cannot send a message.
- Recorded run
- Measured on synthetic cases
- Measurement scope
- Overdue payment reminders
- Verified
- synthetic data
Problem, solution, and result
The problem
Every overdue invoice has a different history. Drafting reminders by hand takes time, while overly aggressive wording can damage a customer relationship.
How the system works
Rules hold disputed and paused cases. One model drafts the message under the tone policy. A second looks for threats, pressure, and unsupported promises. The specialist sees the text and verdict, then decides whether to send.
What we tested
This version shows the receivables queue, a reminder draft, and a separate tone check. It connects to neither email nor a client system, so it cannot send a message.
For whom
This is a good automation candidate when overdue balances grow faster than the team can manage them and contact rules are scattered across individual employees.
Case → draft → check → person
- 01The first model drafts the message
- 02The second model checks risky language
- 03The specialist decides and sends from their own inbox
- Business type
- B2B companies with in-house receivables or amicable collections teams
- Input
- Overdue receivables with debt age, contact history, and disputes; 250 synthetic cases and 90 counterparties in the public reference view
- Boundary
- The system has no send tool, so no message leaves without a person
- Cost
- USD 0.015652 per draft including preparation and a separate check; USD 0.108711 for the complete recorded run.
- Security
- Risky wording or an unclear case status holds the draft. Only an employee can send the message.
- Speed
- We measure drafting and review time in a pilot using the client’s communication rules.
- Trace
- The history shows case data, the draft, the wording check, and the employee’s decision.
- Similar system build
- from €3,500 net (approx. $3,800) · 2–6 weeks
Reference exchange rates: USD 1 = PLN 3.72; EUR 1 = PLN 4.30. PLN amounts are rounded, with the measurement currency retained in parentheses.
Where automation stops
A person sends the message
The system stops at the draft. It has no email integration or send function. Disputed and paused cases never reach drafting. The specialist always sees why a draft was held.
- Boundary
- The system has no send tool, so no message leaves without a person
- Cost
- USD 0.015652 per draft including preparation and a separate check; USD 0.108711 for the complete recorded run.
- Security
- Risky wording or an unclear case status holds the draft. Only an employee can send the message.
- Speed
- We measure drafting and review time in a pilot using the client’s communication rules.
The largest risk
A reminder must not reach a customer who has already paid while the payment remains unreconciled. We therefore test reconciliation quality before implementation. This process should not launch when those records are unreliable.
Estimated impact
Calculate the impact at your volume
This estimate uses the stated volume. Enter your own numbers to assess the possible impact in your company. The result is confirmed only during a pilot.
Today
Modelled current scenario: 112 h
With the system
Modelled after scenario: 49 h
Time or cost saved
Modelled scenario: 45-80 h/mo, base 63 h
- Volume
- Modelled scenario: 420 cases/mo
- Formula
- 420 x 9 min / 60
- Calculation status
- medium
Data in the screenshots. The names, amounts, and documents shown in the screenshots are synthetic. Client data remains private. Measurements describe the demonstrator and are kept separate from production outcomes.
Working surfaces
The receivables specialist approves the tone and personally sends every message.
The specialist opens a queue ordered by contact risk. Each case shows its history, checked draft, and verdict. The specialist edits the text and sends it from their own inbox. The estimate below assumes 420 cases per month.
Three views for receivables work
Case queue
Receivables ordered by debt age and contact risk.
Receivable record
Invoice, conversation history, disputes, and the next allowed action.
Draft review
Message, check result, and hold reason in one place.
System screens
See how the system works in practice
These desktop and mobile screenshots come from the running application. They show the process and the points where a person makes the decision.
- Screens
- 12
- px
- 1440 · 390
- 021440×1464
A held draft with the risky phrase and checker's reason. - 031440×1100
The measurement record with sample, cost, P95, and limitations.
Open the remaining screen archive (9)
- 041440×1100
A stopped draft in its case - 051440×1100
Drafts awaiting approval - 061440×1100
Tone control - 071440×1100
Stopped drafts with reasons - 081440×1100
Disputed cases - 091440×1100
Held debtors - 101440×1100
Decision history - 111440×1100
Measurement and limitations - 121440×1100
Escalation rules
Technology stack
Two separate model calls and a code gate
Anthropic drafts and assesses risk in two independent calls. Python rules combine the results and decide whether the draft reaches a person.
- FastAPI + Pydantic
- hold the decision contract and validate case data
- Anthropic SDK
- two independent calls: the drafting model and the harm checker
- Python rules
- the deterministic gate that stops a risky draft with a reason
- PostgreSQL 17
- cases, signals, and the audit of every run
- Next.js + React
- the receivables radar, the case card, and the draft queue
The client receives the code, tone policy, test data, and documentation. Database, API, and interface run on the client side. Email remains outside the system.
Technical details and measurements
The working loop
Every draft receives a separate check
The drafting and checking models run in separate calls. A detected risk signal holds the draft and records the reason.
Receivable with contact history
Draft under the tone policy
Independent risk check
Risky wording → hold with a reason
Specialist edits and sends
System architecture
Case rules, draft, tone check, and human queue
Code first checks disputes and holds. Two separate model calls draft and assess the text. The final gate runs in code.
- 01
Radar
Contact risk is visible before the decision.
Debt age, conversation history, disputes, and holds make up a case's position on the radar. The order of work follows risk, and the specialist sees the basis of every position.
- 02
Draft
The drafter writes to the tone policy.
The model receives the case, the history, and the policy: allowed phrasing, escalation matched to the debt's age, and hard bans. The draft is produced under a closed data contract.
- 03
Check
A second model judges harm and nothing else.
The checker sees the same case as the drafter, plus the draft attached to it, but works under the opposite instruction: it does not improve the text and does not try to make the collection more effective. It looks for attributed bad faith, threats, shaming, disproportionate pressure, an ignored dispute, and a missing route to clarification; one such signal is enough for a rejection.
- 04
Gate
Code stops; a human sends.
Python rules combine both assessments into a decision: stop, or show a human. A stopped draft carries its reason, and an approved one still leaves the system only by the specialist's hand.
Why there is no sending at all
The most reliable boundary is the one that needs no guarding. The system has no mail integration and no send button, so the runtime cannot contact a client on its own. The risk does not vanish entirely: a person can still copy a draft into their own inbox, which is why they see the check's verdict and the reason for a stop before deciding.
- Two models work under opposed instructions, in separate calls
- The stop decision is made by code, with a reason
- Disputed and held cases receive no drafts
- Sending exists only outside the system, with a human
Want to assess a similar process in your company?
- A 30-minute call with the engineer who would lead the work.
- A review of the processes that cost you the most time and money.
- A written summary of what to automate first and the likely cost range.
Times are shown in your own time zone. We work with clients across time zones.
The scan is free and creates no obligation. If automation is unlikely to pay off, the written recommendation will say so.