Generative Assets · Industry demonstration · 394
A calculator that refuses to give you a number.
Longstop Commercial Recoveries is a fictional Subiaco debt-recovery firm. The page has one job: turn “can you chase this” into an instruction, with the commission, the age and the honest warning already on the screen. Its hardest design problem is that the most valuable thing a collection agency can tell you is that a debt is not worth chasing — so the signature had to be built to say that out loud.
The concept
Debt collection is the industry where a marketing page is most tempted to lie. Every competitor quotes a recovery rate; almost none of them can prove it for your ledger, because the number depends entirely on your debtors and not at all on the collector. So the page is built around a deliberate refusal: it will price the work, it will price the commission as a conditional, and it will not tell you how likely you are to be paid.
The direction is a ledger and a clock. Cool grey-green paper, an ageing ladder drawn down it, recovery green for money that comes back and limitation indigo for the six-year rule running underneath. Quiet, exact, unaggressive — the visual argument is that this is bookkeeping, not intimidation.
Held deliberately off the three AI-default palettes: the display face is a serif, so the ground is a cool grey-green with zero warm cream and the accent pair is green and indigo with no terracotta anywhere; the site is light rather than near-black-plus-acid; and there are no hairline broadsheet column rules — the ladder is the structure. The ledger figures are set in mono rather than in the serif so the numbers read as numbers.
The signature: the ageing ladder
One inline SVG, rebuilt synchronously on every state change and animated from a single requestAnimationFrame loop. Four ageing bands stack from 0–90 days at the top to over six years at the bottom, tinted progressively darker as the paper ages. The debt is drawn as a horizontal bar seated in its band; the commission rate is stamped at the right of the seated band while the other three step quietly beside it; the bar splits into mint (what comes back to you) and a hatched slice (our commission), both conditional. Underneath, a six-year limitation scale runs 0 to 7 years with this debt’s age bracketed on it and the longstop marked.
The axis is fixed at $75,000, and that is the argument
The money axis never rescales. $75,000 is the WA Magistrates Court general procedure ceiling, so the scale is the jurisdiction: a $2,500 invoice should look like a $2,500 invoice next to a $50,000 one, and the $10,000 minor-case line stays where it actually is. A fixed axis has one cost — the smallest state. A $500 debt is 0.67 % of the axis and would draw as a hairline, so the bar has a pinned minimum length of 8 % of the axis ($6,000 worth of bar) with its true figure labelled beside it and the note drawn to a minimum length — the figure is the truth (short form at ≤640 px: min length — read the figure). Four of the ten pinned amounts sit under that floor: $500, $1,000, $2,500 and $5,000. The other six draw true.
The likelihood curve carries no numbers, ever
A curve falls behind the bands from top-left to bottom-right. It has no axis, no ticks, no percentages and no tooltip, and it is labelled LIKELIHOOD · NO SCALE at its own tail with the legend pinned under the drawing:
shape only — we don’t publish a recovery rate we can’t prove for your ledger.
That is the whole point of the element. Everyone in this trade knows old debt is harder to collect; nobody can honestly put a figure on your old debt from a landing page. Drawing the shape and refusing the number is more informative than a fabricated percentage and more honest than saying nothing.
The statute-barred state is a designed refusal, not an empty control
Every chip set has a selection and the stepper has a floor, so the page never reaches a blank state by accident. It does reach one deliberately: at over six years no commission is quotable at all. The bar draws in statute-barred grey seated in the bottom band, the scale marker sits past the longstop, the rate stamp reads NOT QUOTABLE, the field call and the escalation to filing both disable with their own on-page reasons, and the badge’s second line is replaced by over six years — read the note before you spend anything. The commission clause and the “to you” clause are absent, not zeroed — the verification asserts their absence explicitly, on the badge, in the ledger, in the hero figure and in the drawn scene.
Where the price badge goes
At ≥641 px the badge sits on the scene, top-right, inside a head band whose height is a function of the measured badge height rather than a fixed aspect ratio. The pinned clearance formula (badge + margin ÷ band fraction) wanted a sheet about a third taller than the ladder needed, so the escape hatch applies: the band grows past its nominal fraction instead of the sheet, and the binding contract is the rectangle-intersection assert — the badge’s box never touches the drawn ladder, checked at 375, 1000 and 1200. At ≤640 px the badge docks directly beneath the artwork. Because the ladder’s frame is constant by design, the badge carries line 1 + line 2 only; the fee ledger and the plain-text screen-reader mirror carry the full templates at every width.
Palette
Argued from a debtors ledger: paper, the green of money that came back, the indigo of the clock. Every ratio below was computed with WCAG arithmetic from the shipped hex and then re-measured against the rendered tokens.
#E9EAE8
Ledger paper
The page ground. Cool grey-green, deliberately not cream — the display face is already a serif and cream would land the page squarely on the first AI-default palette.
#1A1D1C
Ink black
Body ink and the primary button fill.
14.07:1 on paper · 16.98:1 on cards · 11.58:1 on the hairline tint · white on ink 16.98:1#0F6B52
Recovery green
The recovered portion, the commission mark, the money that comes back. Clears as text unminted, so no second ink was needed — but it measures only 4.41:1 on the hairline tint, so green copy never sits on a tinted row.
5.36:1 on paper · 6.47:1 on cards · white on green 6.47:1 · hover #0A5240 9.15:1#3B4A85
Limitation indigo
The six-year rule, the clock, the disabled-with-reason notes and the statute-barred badge. Also clears unminted.
6.95:1 on paper · 8.39:1 on cards · white on indigo 8.39:1 · hover #2C3865 11.29:1#4E5652
Muted ink
Secondary copy, mono labels and the map’s minor type. Minted so it clears comfortably on every ground it can land on, including the lightest band fill.
6.27:1 on paper · 7.56:1 on cards · 5.16:1 on the hairline tint · 5.68:1 on band 0–90#DDE0DC → #A3ACA5
The four ageing bands
Paper darkening with age. Every one clears the body ink.
12.75 · 10.86 · 8.95 · 7.28 : 1 against the ink#8FC9B6
Recovered mint
The share of the bar that would come back to you. Labelled in body ink.
9.06:1 against the ink#8E9691
Statute-barred grey
The bar and the scale marker once the debt is past six years. The colour of a debt with the life gone out of it.
5.60:1 against the inkMap labels are body-ink class with a paper-coloured halo (paint-order: stroke) wherever they cross a coloured fill, so no label relies on the accent tokens.
Two halo remedies came out of measuring the drawing rather than the palette. Recovery green measures 4.86 / 4.14 / 3.41 : 1 against the three seated band fills — fine as a fill, not as type — so the seated rate stamp and the conditional caption are never set straight onto the band: both carry a white halo and read on white at 6.47:1. And the unseated bands take a lightened fill rather than an opacity, so each band label’s halo can be its band’s exact colour and the likelihood curve can never strike through a label. The four lightened fills measure 14.29 / 13.01 / 11.65 / 10.40 : 1 against the ink and 6.36 / 5.79 / 5.19 / 4.63 : 1 against the muted ink.
Type
- Newsreader 600 (display). A modern text serif with real colour on the page, argued from the fact that this business runs on correspondence — the letter of demand is the product, so the headings are set in the face a letter would be set in.
- Inter 400/500/600 (workhorse). Body, controls, forms. 17 px base, 16 px minimum on every form field so mobile Safari does not zoom.
- Spline Sans Mono 500, one role only. Ledger figures, eyebrows, badges and scene labels. Nothing else in the page is monospaced, so a mono glyph always means “this is a number or a reference”.
- The moment of bravery. The conditional is set enormous in the hero: $1,530 at up to 80 px in the mono, and beneath it the word if in the serif italic at exactly the same size as the figure, with WE RECOVER $8,500 running out of it in small tracked mono. The typography carries the honesty: the conditional is as big as the number.
The fee model
Two kinds of money, and the page never mixes them. The certain charge is the path fee: small, fixed, payable whatever happens. The commission is contingent — amount × rate, quoted only ever as a conditional, with amount − commission shown as what would be left for the client.
| Line | Charge | Kind |
|---|---|---|
| Letter of demand, ACCC/ASIC-compliant, seven days | $88 per debtor | Certain |
| Phone recovery | no upfront fee | Inside the commission |
| Field call on a business debtor, metro | $240 a call | Certain |
| Escalate to filing | $88 + filing at cost | Certain + item-dependent |
| Commission, 0–90 days | 12 % | Contingent |
| Commission, 91–365 days | 18 % | Contingent |
| Commission, 1–6 years | 25 % | Contingent |
| Commission, over 6 years | not quotable | Designed refusal |
The estimator’s cheapest certain output is $88, which is exactly the services grid’s floor, and its dearest is $328 ($88 letter + $240 field call). The grid is 10 amounts × 4 ages × 3 debtor types × 4 paths = 480 cells, of which 90 are blocked by the two refusal rules (60 field-call cells, 30 filing cells) and 390 are priced.
Money is held in cents, and the whole grid was enumerated
Every rate runs through integer arithmetic: commissionCents = amount × pct, which is exact because it is algebraically (amount × 100) × pct ÷ 100 with the division cancelling. Every pinned amount is a multiple of $500, and 12 %, 18 % and 25 % of $500 are $60, $90 and $125 — so every reachable commission is a whole dollar. An independent oracle re-derived the model from the anchors and enumerated all 480 cells: 0 non-integer and 0 non-whole-dollar results, and the headless harness then drove all 390 priced cells in the real page and compared each against that oracle.
| Scenario | Certain | Rate | Commission | To you |
|---|---|---|---|---|
| Rest state — $8,500, 91–365 days, company, letter + phone | $88 | 18 % | $1,530 | $6,970 |
| $20,000, 91–365 days, field call | $328 | 18 % | $3,600 | $16,400 |
| $500, 0–90 days, letter | $88 | 12 % | $60 | $440 |
| $12,500, 1–6 years, letter | $88 | 25 % | $3,125 | $9,375 |
| $75,000, 1–6 years, letter | $88 | 25 % | $18,750 | $56,250 |
| $8,500, over 6 years, company, letter + phone | $88 | — | not quotable | not quotable |
| $8,500, 91–365 days, escalate to filing | $88 + at cost | 18 % | $1,530 | $6,970 |
The fee with no number
Court filing fees are set by the court’s fee schedule, not by us. They depend on the claim’s size and the court’s current schedule, and they are the client’s money passed through at cost — so no figure for them is printed anywhere on the page, and that declaration appears everywhere the total appears: on the badge as $88 now + court filing fees at cost (short form $88 + filing at cost), as an at-cost ledger row with no amount, in the control note, in the services grid, in the FAQ and in the screen-reader mirror. A price-less line here is a designed state, not missing data.
Forced states, and what happens on the way back
Two independent constraints close the field call, and one of them also closes the escalation to filing. Both are real-world limits, not UI decoration.
| Path | Company | Sole trader | Consumer | Over 6 years |
|---|---|---|---|---|
| Letter of demand — $88 | Available | Available | Available | Available |
| Letter + phone recovery — $88 | Available | Available | Available | Available (the forced fallback) |
| Letter + field call — $328 | Available | Available | Disabled — ACCC/ASIC | Disabled — limitation |
| Escalate to filing — $88 + at cost | Available | Available | Available | Disabled — limitation |
- Consumer closes the field call: “the ACCC and ASIC debt collection guideline sets limits on contacting a person at home. We don’t doorstep consumers — we escalate in writing.”
- Over six years closes it again, for a different reason: “we’re not knocking on a door about a debt that may no longer be enforceable.” Each disabled cell carries the reason that is actually true of that cell rather than one string stretched over both.
- The force: selecting a blocking value while on the field call forces the path to letter + phone recovery and remembers the field call, marked with an indigo ring on the remembered chip.
- Partial unwind: from field call + consumer + over 6 years, switching the debtor back to company relaxes one constraint but the statute bar still blocks — the page holds phone recovery rather than stepping through intermediates. Moving the age to 1–6 years then restores the field call. Both halves of that chain are driven in the harness, in both orders (debtor-first and age-first), and both hold.
- Memory invalidation: an explicit path pick clears the memory, so nothing is silently restored later. The same force and restore applies to escalation to filing.
- Clicking a disabled chip is a no-op — asserted, not assumed.
Three iteration passes
Each pass drove the real controls in headless Chrome and asserted output, and each ended in a native-resolution screenshot review at 375, 1000 and 1200. Asserts prove state; only pixels prove composition, and this build is a case study in that — every defect below except one was invisible to the assert suite.
Craft
- Two scene labels sat on top of each other. The band label 0–90 DAYS and the curve label LIKELIHOOD · NO SCALE were both anchored to the top-left of the first band and rendered as 0–9L0IKDAYSD. 172 asserts were green at the time. The curve is now labelled at its own tail, bottom-right, lifted clear of the tail stroke.
- The travelling highlight on the money bar was actively misleading. The liveness device was a soft white sheen walking across the bar — beside a split (mint / hatched) that carries real meaning, it read as a second, meaningless split. It was removed entirely and the liveness moved to a pulse that walks the six-year limitation rule, which is semantically the right thing to animate on this page: the clock is what runs.
- The badge forced a sheet a third taller than the drawing wanted. The pinned clearance formula gave a 1,268-unit sheet because the badge’s line 1 wrapped to two lines at 262 px. Widening the badge to 48 % and dropping line 1 to 19 px un-wrapped it; the head band now grows past its nominal fraction instead of the sheet (the stated escape hatch), and the rectangle-intersection assert still holds.
- “$1,530” rendered as “$1 ,530” at display size. A monospaced comma sits alone in a full-width cell, which at 80 px reads as a typo — the same family as a flex gap putting a space before a comma. The separator now gets its own tightened box in the hero figure.
- “THIS DEBT” was printing underneath the legend. The limitation scale’s band was 70 units tall while its own content needed about 94, so the marker label landed inside the likelihood legend. The scale band was raised to 96 units and the marker baseline re-derived from it.
- The masthead call button was 42 px tall against a 44 px tap-target floor. Raised. Also: the hero eyebrow was widowing “EST. 2009” onto a second line at 375, so it was shortened and its tracking tightened below 420 px.
- The whole hero fell out of the 1200×750 thumbnail. The headline ran five lines and pushed the display moment below the fold. The headline was cut to one clause, the second clause moved into the lede, and the vertical rhythm tightened — the entire conditional ($1,530 and the giant serif if) now sits wholly inside the first 750 px, asserted on the element’s bottom edge, not just its top.
- Straight apostrophes across the page copy were converted to typographic ones, which also brought the on-page filing declaration into exact agreement with the string the badge, ledger and mirror share.
Depth
- The second read: the seat the debt has just left. Changing the age now leaves a dashed outline of the previous bar in its previous band, fading over about 1.15 s. The ladder’s entire argument is that a debt falls down it and gets dearer, and you only actually see the fall if the old seat lingers for a beat. It is suppressed on the first draw, under reduced motion, and across a resize (the old rectangle belongs to the old geometry frame), and the settle flag waits for it so no screenshot is taken mid-fade.
- The conditional, stated in words on the drawing. At $8,500 the hatched commission slice is about 10 px wide — the split is legible at $50,000 and invisible at $2,500. A caption now sits on the seated band’s right shoulder reading IF RECOVERED · $6,970 TO YOU · $1,530 OURS, with a pinned full form, a mid form, a short form and a shortest form chosen by measuring the text against the space actually left beside the band label. In the statute-barred state it becomes NO COMMISSION QUOTABLE ON A DEBT THIS OLD — carrying neither a figure nor a “to you” clause, which the harness asserts by absence.
- The refusal was deepened past the badge. The statute-barred state now also swaps the badge to indigo, greys the bar and the scale marker, prints NOT QUOTABLE as the rate stamp, replaces the hero figure with “not quotable” set in the serif, hides the giant if row entirely, and drops the commission and “to you” rows out of the ledger rather than zeroing them.
- Motion timing. First draw eases at τ = 185 ms; every subsequent state change snaps at 85 ms, so a stepper tap reads as a response rather than a replayed entrance. The clock pulse floors at 0.30 opacity and the curve breathes between 0.38 and 0.50 — the signature is visibly alive at any capture instant, with no phase arithmetic against the 7-second settle.
Hardening
- The Chanel cut. Six full-height money gridlines ran down through the four bands, competing with the only two vertical marks that carry meaning — the band edges and the $10,000 minor-case line. They were cut back to short stubs under the axis row. The drawing got quieter and the minor-case line got its emphasis back.
- 375 px. Masthead checked first: the wordmark’s right edge against the call button’s left edge, explicitly, with a non-negative gap. Zero overflow offenders and scrollWidth = 375; every tap target at least 44 px; the h1, both CTAs and the trust line all above the fold without scrolling; the badge docks beneath the artwork and takes the pinned short form of line 2 while the mirror keeps the full one.
- A caption crowding its neighbour at 375. The split caption was placed using a character-count estimate of the band label’s width, which was too generous on the mono face — at 375 the two ran together into one line of text. The label is now measured with getComputedTextLength() and a real 26-unit gap is reserved, so the caption steps down to a shorter form instead of crowding.
- Form patterns proved, not read. Chrome compiles pattern attributes as v-flag regexes, which reject literals older flavours accepted, and a dead pattern looks exactly like a working one. Every pattern is driven with a deliberately invalid value through checkValidity() and must reject, then with a valid value and must accept.
- Rapid-fire. Ten control clicks dispatched in a single evaluate with no settle between them — the swap race that per-control drives structurally cannot see. Every handler bumps the draw token before it swaps state, and the page settles on the expected scenario with zero console errors.
- Reduced motion, resize and visibility. A matchMedia check kills the loop and snaps the scene to its settled frame; the figures are identical either way. The rAF delta is clamped at zero as well as capped, the loop parks on document.hidden, and resize rebuilds the scene behind a 150 ms debounce with the badge re-measured.
- Final read. The words “guaranteed” and “we’ll recover” do not appear on the page, and no recovery-rate percentage appears anywhere — all three asserted against rendered text, not source.
The shipped harness runs 184 assertions against an independently reimplemented oracle, including all 390 priced grid cells, both halves of the partial unwind in both orders, every stepper step, every chip, the rapid-fire drive, a two-frame pixel diff for liveness, and screenshot captures at three widths in both the normal and the statute-barred state.
Conversion decisions
- The phone leads on mobile, the form leads on desktop. A creditor deciding whether to escalate wants a person. The masthead carries a click-to-call at every width, a sticky call/quote bar sits at the bottom below 641 px, and the primary hero CTA is the phone number in full.
- The signature is above the enquiry, and it hands off to it. The form’s amount, age, debtor type and description are pre-filled from whatever the visitor set on the ladder, so a demo interaction arrives as a warmer lead. The description field stops being pre-filled the moment it is touched.
- Form fields are the ones a recovery officer would actually ask for — name, phone, your suburb, amount outstanding, how overdue, who owes it, and the story. Nothing about the debtor’s identity is collected on a public form: that conversation belongs on the phone.
- The refusal is the conversion argument. “We tell you when it isn’t worth chasing” is in the h1, the lede, the FAQ, one of the three reviews and the callback promise beside the submit button. In a trade where the prospect’s main fear is being churned, the willingness to say no is the strongest thing on the page.
- The confirmation is local and honest. Hidden on load and on an empty submit, shown only after a valid filled submit, and it repeats the conditional rather than a promise — with a line saying plainly that nothing was sent.
Local SEO we’d implement for the real business
The demonstration page carries only WebPage and CreativeWork structured data describing itself as a demonstration — marking up a fictional firm as a real local business would put invented data into a real search index. Below is the markup a real Longstop would ship, as a code sample rather than live JSON-LD. The top-level type is FinancialService, an actual schema.org organization subtype; debt recovery has no dedicated subtype, so the specialty is carried by knowsAbout and a hasOfferCatalog naming each service at its real fee.
This panel deliberately ships no Review and no AggregateRating, even as a sample. Debt collection is a regulated activity governed by the ACCC/ASIC Debt collection guideline, and a star rating in a search result is a marketing claim about how well a collector extracts money from people. Advertising on that is the wrong incentive to publish, and it invites exactly the behaviour the guideline exists to limit. Testimonials belong on the page as prose. For a trade where ratings genuinely help a customer choose, we would ship them; here we would not, and we would tell the client why.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FinancialService",
"@id": "https://longstop.com.au/#firm",
"name": "Longstop Commercial Recoveries",
"additionalType": "https://en.wikipedia.org/wiki/Debt_collection",
"description": "Commercial debt recovery across Perth — letters of demand, phone
recovery, field calls on business debtors and escalation to the
WA Magistrates Court.",
"url": "https://longstop.com.au/",
"telephone": "+61 8 9XXX XXXX",
"email": "office@longstop.com.au",
"image": "https://longstop.com.au/img/rokeby-road-office.jpg",
"logo": "https://longstop.com.au/img/longstop-mark.svg",
"priceRange": "$$",
"currenciesAccepted": "AUD",
"address": {
"@type": "PostalAddress",
"streetAddress": "Suite 0, 000 Rokeby Road",
"addressLocality": "Subiaco",
"addressRegion": "WA",
"postalCode": "6008",
"addressCountry": "AU"
},
"geo": { "@type": "GeoCoordinates", "latitude": -31.9483, "longitude": 115.8261 },
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:30",
"closes": "17:00"
}],
"areaServed": [
{ "@type": "City", "name": "Perth" },
{ "@type": "AdministrativeArea", "name": "Western Australia" }
],
"knowsAbout": [
"Commercial debt recovery",
"Letters of demand",
"Limitation Act 2005 (WA)",
"WA Magistrates Court minor case and general procedure claims",
"ACCC and ASIC Debt collection guideline"
],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Recovery services",
"itemListElement": [
{ "@type": "Offer", "priceCurrency": "AUD", "price": "88",
"itemOffered": { "@type": "Service",
"name": "Letter of demand, per debtor" } },
{ "@type": "Offer", "priceCurrency": "AUD", "price": "240",
"itemOffered": { "@type": "Service",
"name": "Field call on a business debtor, Perth metro" } },
{ "@type": "Offer",
"itemOffered": { "@type": "Service",
"name": "Phone recovery — commission only on funds recovered" } }
]
},
"sameAs": [
"https://www.linkedin.com/company/longstop-recoveries"
]
}
</script>
Alongside it: a verified Google Business Profile at the Subiaco address in its real category, an FAQPage block generated from the six questions already on the page, per-industry landing content (fabrication, wholesale, professional practices) rather than thin per-suburb pages, and BreadcrumbList markup once there is more than one page.
What would change for the real client
- The enquiry becomes a matter. The form posts into the firm’s collection platform — Debtor Daddy, ezyCollect or an Actionstep matter for anything heading to court — with the ladder’s scenario attached, so the recovery officer opens the file with the amount, the age and the requested path already on the screen.
- The ledger comes from their accounting system. Most creditors send a spreadsheet. A live build would take an authorised Xero or MYOB connection and read the aged receivables report directly, so “send us a debt” becomes “tick the invoices” — and the ageing bands on this ladder become the client’s own ageing buckets rather than an illustration.
- Searches and filing. ASIC company extracts and PPSR searches through InfoTrack, credit reporting through illion or Equifax, and eLodgment into the WA Magistrates Court — which is also where the real filing fee comes from, so the at-cost line stops being a declaration and becomes a live figure quoted per claim.
- Trust accounting. Recovered funds receipted and remitted through the firm’s trust ledger with a per-payment statement, and the commission raised as an invoice against banked funds — which is the operational fact the whole “no recovery, no commission” promise rests on.
- Their reviews, and a decision about them. The trust strip picks up the firm’s real ABN, its professional indemnity certificate and a reviews feed from Google Business Profile. Whether those reviews get marked up as structured data is a conversation we would have deliberately, for the reason set out above — not a checkbox.
- The rule the page is built on does not change. The commission is quoted as a conditional, the certain charges are quoted before the work, court fees are passed through at cost, and past six years the firm says so before the client spends anything.
Honesty notes
- The firm, its reviews, its ABN and its phone number are invented, and the phone number uses a reserved pattern that cannot reach anyone. The address is suburb-level only.
- The institutions and the law are real. The Limitation Act 2005 (WA) six-year period for a simple contract debt, the WA Magistrates Court minor case ($10,000) and general procedure ($75,000) thresholds, and the ACCC/ASIC Debt collection guideline: for collectors and creditors are all genuine — getting those wrong to protect a fiction would be the dishonest choice. The page also says plainly that a written acknowledgement or a part payment can restart the limitation period, because a page that mentioned only the six years would be telling half of it.
- No recovery is ever presented as likely, promised or quantified. The words “guaranteed” and “we’ll recover” do not appear; no recovery-rate percentage appears anywhere; the likelihood curve is an unnumbered shape with its refusal legend pinned beneath it; and the commission is quoted only ever as a conditional (“$1,530 if we recover $8,500”), never as an amount anyone will receive.
- The over-six-years state is a designed refusal. No commission is quotable, the two escalation paths are disabled with their own reasons, and the page states that a demand must not misrepresent that a debt is enforceable. That state is not a failure mode of the calculator; it is the calculator’s most useful output.
- Court filing fees carry no number anywhere on the page, and the declaration that they are set by the court’s schedule rather than by the firm appears everywhere the total does.
- Demonstration reviews are written as demonstration copy, are not attributed to real people, and are deliberately not marked up as structured review data — nor is any rating markup shipped even as a sample.
- Nothing on the page is legal advice, and it says so beside the form and in the footer.