Not a live product

Run sheet

Private page, not linked from the navigation. Every figure below is read from the engine when this page loads, so it matches what the demo will actually show. Seven beats, about ninety seconds each.

The live path works. Typing a real website reads the site, finds the company at Companies House from the number or the trading name in the title, and reconciles the two. Verified on cardiffroofer.co.uk (resolves to CARDIFF ROOFING LIMITED, 13928851) and cardiffasphaltroofing.co.uk (CARDIFF ASPHALT LIMITED, 13959898), both reaching roofer at high confidence.

Prefer a website over a company name when going live. A name finds the filed record but the engine has to guess the domain to find the site, and a guess often misses. A website reaches both sources. Expect fewer needs than a seeded business either way: there is no ledger, so no payroll, no assets and no turnover. Say that out loud rather than letting it look like a weaker engine.

You are opening on the AEO and SEO work, so the bridge is a ladder: being found by LLMs is the work so far, being usable by agents is next, being proactive is the product, and owning claims is the position nobody has taken. Each beat below is one rung.

1. The audit: one input instead of twenty

/audit?demo=ridgeline-roofing

Say: Simply Business asks four questions in ChatGPT and about a dozen on the web. This asked for a company name.

Point at: The verdict panel is the whole answer in one line, and the company name is only the eyebrow above it. Then scroll to "Where this came from": three sources, what each returned, and the real timings, filling in at the speed they actually took. The trade card beside it keeps the disagreement, filed SIC code says builder and the website says roofer, instead of picking silently. That is the mis-selling risk, surfaced.

2. The finding that pays for the whole thing

/audit?demo=ridgeline-roofing

Say: Payroll started in March. That made Employers’ Liability a legal duty in March. They have public liability and tools cover, and no employers’ liability.

Point at: "Where the cover stands" is the table to point at: six lines, and what is indicated against what is actually held, which is the first version of this screen that ever showed the second number. Two of six held. Tools & Materials is insured for £3,000 against an indicated £7,500, and the sum insured was set in 2019. Open the "Why" on that row: the average clause line is the one that lands with a claims person.

b. The same finding as a clock, if there is time. Thirty seconds, no context switch: press Your cover in the strip. This is the screen the customer gets between audits, and it answers a different question from the one above: not what to buy, but what moved. One list, newest first, of every dated thing this business has. 7 of them happened after 1 May 2019, which is the last time anybody set a level, and the line across the middle is the argument: every decision sits below it. 6 of the things above it are tools arriving on the register, worth £7,300 to replace today, and one of them is the month wages started, which is what made Employers' Liability a duty. Then scroll one block further to "What changed since the engine last looked", which is the half that makes this a process rather than a report: the same books read twice, six weeks apart. One finding is gone, and the page says so, because a finding that has gone is the only evidence this can ever have that somebody acted on what it told them. The rest carry an age. Say the line: nothing anybody uploads is kept to do that, and a ledger is still read in the request that carried it and thrown away. What is kept is what this page told them, and when.

Finish on the bottom of that page: the message to send a broker, written out with the figures in it, and the line saying nothing here sends it. That is the same device the accountant gets in beat 6, from the other end.

3. The register, and why a ledger cannot do this

/register?demo=ridgeline-roofing

Say: Xero and FreeAgent hold what a tool cost and what it is worth after depreciation. Insurance needs what it costs to replace. Those are different numbers and nobody joins them up.

Point at: Three numbers on the dark panel, left to right, and they are the whole wedge: £6,635 is what the books say these cost, £7,300 is what replacing them would cost, and they are insured for £3,000. Then scroll to the register itself and open "How this was valued" on any row: every line shows its own arithmetic and the bank line that evidences the purchase.

4. The register is theirs to maintain, and maintaining it is almost no work

/register?demo=ridgeline-roofing#capture

Say: This is the bit the claims handler asked for. The important thing is not that a business can maintain a register, it is that four of these six items put themselves on it: a bank statement described them, and the engine valued them at replacement cost with nobody typing anything.

Point at: "What only you can add" is the beat. Three things a bank line cannot carry, and each one reduced to a single box.

a. 4 items have no serial number, which is the field a tool theft claim turns on. One box each: type one and press Add, and it corrects the row the ledger already found rather than opening a second row for the same tool.

b. Paste a product page. Press "A cordless combi drill, £229" and watch the shop's own structured data fill the form in: name, manufacturer, model number, list price. Say that this is a fact with a source, exactly like everything the audit extracts, and that it is a draft rather than an addition. Then add the purchase date and press Add. The two sample pages are served by this prototype and say so on their face, because the real path depends on a retailer answering an automated request and most large ones refuse.

c. Add an item the ledger never saw by hand, a £900 tool bought two years ago, and watch the three figures move together. The £900 becomes £992 of replacement value, which is the line to say out loud: the price is typed, the replacement value is derived, and no form on the page offers to set a sum insured.

Finish on the two capture routes that are not built, at the bottom of the page. Saying that out loud is worth more than a drawn interface would be. Then "Where these edits live": on this business they live in the page address, because Ridgeline is one of four fictional ones and storing an edit against it would make one reader's register everybody's. If anybody asks whether a real customer would lose their register by losing a link, the answer is on the account: sign up, add a business and open its register, and it is kept against the account with nothing in the address bar. What is never kept is the ledger, which is still read in the request that carried it and thrown away. On a business of your own, upload a file against it and the register fills itself the way this fixture's did: what is kept is what the file proved and the lines it found, and the file goes when the request does. That is beat 1b, and it is the sentence on this screen becoming true about somebody's own books for the first time.

c. And the same thing without the file, which is beat 1c. The "Ledger" screen on a business of your own is where FreeAgent connects, and there is a production FreeAgent app registered on this deployment now, so the button is there and pressing it sends you to FreeAgent's own consent screen. Be exact about what that is and is not: an app being registered is not an authorisation being made, nobody has completed one here, and it needs a real FreeAgent login to finish. So either connect a real book before the meeting and demo the connected state, or upload the CSV and say plainly that the connection is built and unexercised. Do not promise a live connection in the room without checking that screen first. What is worth pointing at either way is the line at the top of it, because it is the half of this that matters to an underwriter: every ledger figure in this product now says the date it was last true, and past 35 days it is reported as out of date rather than as today's. A stale reading presented as current is a statement about somebody's insurance made from last year's books, and that is the failure this cannot afford.

d. And the beat that is the whole thesis, which is that nobody pressed anything. Further down the same screen is "What looks at this when nobody asks". A pass runs every night over every business on every account: it refreshes the books it can reach, works out where each business stands, and writes a line only on the nights something actually changed. Press "Run that pass now" in the room and read what it says afterwards. The sentence to say out loud is that this is the first thing in the product that does anything without being asked, and it is the difference between a report somebody requests and a position somebody is kept in. Be equally plain about the half that is not there: it notices and it cannot tell anybody. There is no sender on this deployment, so a change found at 3am waits for somebody to open a screen, and the page says exactly that.

d2. And the screen it waits on, which is the one beat 2b showed on a fixture. Press "Your cover" in the strip of a business of your own. Same screen, real business: what it stands at, what has arrived on the register since, and then "What changed since the engine last looked", which on this business is the pass's own rows rather than this page's. Reload it in front of them. Nothing moves, and that is the point worth saying out loud: opening the page records nothing, because a run is a reading and not a rendering, so the difference cannot be consumed by the person it is for. On a fixture the render is the read, because a fixture has no stored books and nothing else ever looks at one, which is why the same screen writes a row there and none here.

5. The claim: the headline nobody has claimed

/claim?demo=ridgeline-roofing

Say: Eleven insurers put a quote calculator in ChatGPT this year. Every one stops at quote. Nobody has filed a claim through an agent, in the UK or anywhere.

Point at: Open on the claim itself rather than the transcript, because the point of this beat is that the screen is short.

a. The page opens asking one question, which is what happened, and each option says what it would bring across. Choose the tool theft and watch the panel change: 6 items, £7,300 at replacement value, 5 with a purchase record, none of which the customer is asked to remember. Say the line here: this person is standing next to a van at six in the morning, and the hard part of a tool theft claim is already done.

b. Answer the 5 questions, one box at a time, and watch the bar fill. Two of them are marked as the ones that decide it rather than describe it: forced entry, because theft from an unattended vehicle without it is commonly excluded, and the crime reference. Every box says why it is being asked. No claim for a demo business is written down and there is no JavaScript on the page: each answer is in the address bar, which is also how you would send the claim to somebody.

b2. On a business of your own, the same screen keeps it, and the difference is one sentence. Ridgeline belongs to nobody, so its claim is a URL and nothing else. Open the same screen on a business on your own account and there is a button that keeps the claim, so it is on the phone and on the laptop and you finish it tomorrow. What is kept is what the customer said, which is the kind of loss and the words they typed, and the items are not in it: they are read off that account's register every time the page is drawn, so taking a line off the register takes it off the claim. Say the two lines that matter if anybody asks how far this goes. There is no status on it, because how complete it is is worked out from the answers every time, and a claims table with a status somebody works through is a claims handler. And keeping is not sending: nothing here has ever reached anybody who did not open a page.

c. Press "Send it to a handler" and read the URL out loud if anybody asks where it went. The handler screen leads on "Nothing to request", which is the finding rather than the reference, and shows the two deciding answers before the account. Then the position at the date of loss: £3,000 held against £7,300 on the claim, side by side, and no third number worked out from them. A person decides the claim. Nothing in here settles anything, and that is the line to say before anybody asks.

d. If anybody asks whether the agent half of that opening line is real rather than a story about a form, the agent screen is the second half of this beat. Two things to point at, in this order. The URL in the panel: an assistant assembles the whole claim as an address and hands it to the customer to read and send, because no claim is written down, so it never has to be trusted with the claim itself. Press "Open that claim" and the page arrives filled in. Then press "Issue this key" on the accountant's one and read the table: 7 of the 9 tools, and open_claim is not among them. Say the line: an accountant may spot the gap and tell the client, and a practice that fills in a significant part of a claim form is doing a regulated activity, so the tool is missing from the list rather than refused inside it. That is the answer to the compliance question before it is asked, and it is the half nobody else has.

d2. The key on this screen is the demo kind, and the difference is worth one sentence. Ridgeline belongs to nobody, so its key is a signed sentence that nothing writes down: twelve hours, and nobody can take it back, because there is nobody it belongs to. The same screen on a business of your own gives you the other kind: a key that is listed with the day it was last used and ended with a button, an install snippet a person pastes into their assistant, and no company name to pass at all, because the key is the business. If somebody asks the obvious question, which is what happens when an assistant is compromised, the answer is on that list and it takes one click. Do not claim it has been installed into anybody's Claude or ChatGPT account: that needs somebody with a password, the endpoint is proven with curl, and the screen says exactly that.

e. Finish on the queue, which is the handler's own screen: 2 of 4 cases can be decided without asking for anything, and the 2 that cannot say exactly what they are waiting on. Same engine, four different fictional ledgers. Ranked by what this person can finish, not by what the claim is worth.

6. Distribution: the accountant's Monday morning

/practice

Say: One accountancy practice connects once, and the same engine runs across every client overnight. FreeAgent and Sage allow exactly this with a single practice-level grant.

Point at: The headline is the beat: 4 calls to make, 2 of them the law, out of 10 clients. Say that the engine has always ranked this book and the old page hid it in a sorted column; the three groups are the ranking, and each group heading is the sentence you open the call with.

a. Open the first row's "What to put to them". It lands on that client's own findings, in the accountant's chrome, and the confirm step has no buttons on it: it is the list of questions to put to the client. Say the line: the practice surfaces the finding, the client takes the action, and that is a rule held by a missing button rather than by a paragraph.

b. Come back and press "Mark as called" on it. The row leaves the list, the count comes down, and it appears under "Where you got to". Then point at the address bar: this book is four fictional clients who belong to nobody, so nothing writes their marks down and they live in the URL, which is what makes the link the notebook. A practice signed in to its own book keeps its marks against its account instead, because a mark needs an owner, and the same mark then shows against that company on a crawled book at an address. On that book, press "Write the message" on a row: what comes back is a draft with the practice's own name at the bottom of it, no address on it and no button that sends it, because the sender of a message to somebody who is not your customer is the practice and never us. Press it on a row that is the practice's client and it is a different message, with the engine's own findings quoted in it and no opt-out, because writing to your own client about their own accounts is not marketing anybody.

c. Scroll to "None of this needed a client to say yes". 2 of the 10 clients have authorised nothing at all, and the table shows exactly what the engine was given about them and what it said anyway. That is the answer to "how would we start", and it is why this works on QuickBooks where a book-wide ledger connection does not. Finish on the line underneath: the oldest cover level on this book was set on 1 Jul 2018 and nothing has revisited it since.

7. The partner embed, if there is time

/partner-demo

Say: Today partner distribution in this market is an affiliate link. This is a product the partner wants on their page, because it tells their user something useful. Same engine, their branding, one script tag.

Point at: Type a company into the panel on that page and watch the audit appear inside their portal. Two things to note: the widget collects nothing and decides nothing, and the audit itself runs in a frame from our origin, which is what keeps the partner an introducer rather than arranging cover.

Every seeded page
0.1 to 0.3 seconds. Instant.
This sheet
0.5 seconds warm and about 1.7 on the first hit after a deploy. It runs the four businesses, two more for the upload comparison and the whole client book, because beat 6's figures are read rather than typed.
The client book
About 0.5 seconds. It audits ten clients in sequence, which makes it the slowest screen in the product and still faster than anybody notices.
A live audit, fast site
Around 1 second. cardiffroofer.co.uk measured 0.2 to 1.2.
A live audit by company number, which is beat 1b
Two to five seconds, re-measured on this deployment after P8 rather than carried forward. It costs more than the figure above because it reads the register as well: the profile, the officers, the PSCs, the filing history, the accounts document itself over two hops, the director's other companies, and HMRC's trade registry. About fourteen outbound calls, grouped into four waves so the wait is the sum of the waves rather than of the calls. Every seeded page is untouched at 0.1 seconds, so nothing in beats 1 to 7 got slower.
The book at one address
0.7 to 1.3 seconds for 344 companies, which is four requests. That number is the reason there is a book screen at all: at ten times the cost it would have been a job with a store behind it.
Reading every one of their filed accounts, which is the crawl
8.8 minutes measured for all 344 at EC1R 0NE, over 29 slices, against a computed floor of nine. It is a job rather than a page: three requests each, so roughly a thousand against a key Companies House limits to 600 every five minutes, and one invocation of this worker is allowed fifty subrequests. It runs in slices of twelve, sleeps between them, and carries on when nobody is watching, so the beat is to press the button and come back to it rather than to wait on stage. 219 of the 344 produced figures, 151 filed at least one employee. What it keeps is a company number and four dated figures per company, and nothing about a person.
A live audit, slow site
Up to 25 seconds, all of it waiting on their server. cardiffasphaltroofing.co.uk measured 18 to 20 on a cold first hit and 9 to 11 warm, so hitting it once before the meeting is worth doing. The read budget is 25 seconds because that site failed outright at 8 and at 15, and a real company reported as having no readable website is a worse thing to happen on stage than a wait. A spinner and a running commentary cover it, but do not pick an unknown site on stage.
A live audit, name only
Under 6 seconds either way. The engine guesses domains from the registered name, gives up quickly because they are guesses, and the result asks for the website instead of pretending the thinner audit is the whole answer. Cardiff Roofing Limited is the one to type if you want that beat: it trades at a domain no derivation of its name produces, and typing the site into the box on the result page re-runs it into the full four-line needs statement.
Source log reveal
About 1.3 seconds for three sources, stepped so it reads as an assembly rather than a flash.
Seven beats at 90 seconds
About eleven minutes of demo. Tight against the AEO opening in a half-hour slot, so plan to drop beats 7 then 6 if the conversation runs long, and treat beat 4 as the one that must survive. The client dashboard is deliberately not an eighth beat: it is beat 2b, thirty seconds on the same business one click away, because it makes beat 2's finding a date rather than a difference and because an eleven-minute demo has no room for another rung.

It is, and that objection is the right one. Agree with it, then take a ledger off them. Any audit result has an upload on it, and the sample below is one click away if nobody has a CSV to hand: /sample-ledger.csv. Download it before the meeting.

Open this exact URL, not the normal roofer: /audit?demo=ridgeline-roofing&ledger=off. That is the same business before any accounting software is connected: the filed record and the website, and nothing financial. Upload the file on that result page and the table below is what happens. Starting from the ordinary /audit?demo=ridgeline-roofing instead will not show this, because it already has a ledger, so the upload swaps one for another and the findings do not move.

Say: the seeded ledgers were written next to the code that reads them, so they prove the wiring and nothing else. This file is a bank export for a different company, and none of what appears came from anything we wrote.

Needs, before and after
3 on the public record alone, 6 once the file is read
Urgent findings
0 to 2, because payroll proves employment and Employers' Liability is then a legal duty rather than a suggestion
The ledger being read
no ledger, then 86 rows over 12 months of somebody's bank export
Turnover
not found, because a small company files no profit and loss account, then banded from the invoice receipts in the file
Payroll run rate
£60,124 a year. Run rate from 12 months of payroll, never from the span of the whole file
Register
8 owned items at replacement value, and the twelve identical van payments correctly produce none
Price
£28.69 to £44.87 a month, then £92.03 to £143.94
What the parser reports
86 rows, 66 date(s) have a first component above 12, so the day comes first. Point at that panel: it shows the columns it mapped and anything it could not settle, which is the same "every fact carries its source" rule as the rest of the page.

One seam to know about: if the upload is rejected, for instance because the wrong file was picked, "back to the audit" returns to the roofer with its own ledger rather than to the ledger-off page. Re-open the URL above rather than uploading again from there.

The file is not stored. It is read in the request that carried it, the result is rendered from it, and it is thrown away when the request ends, which is also the honest answer to where the data goes. Signed in, against a business on the account, what is kept is what the file proved and the register lines it found, never the file: that is the next beat.

Do: on the page you have just produced, scroll to What this ledger could not place. Set PLANT WORLD ROTHERHAM to Plant or machinery bought and press Apply.

Say: no pattern list will ever know every payee in a real bank export. This one matched 18 of 20 and said so, rather than reporting a business that happens to buy nothing. The correction is a statement about the payee and not about that payment, so next month's file is corrected before anybody sees it.

What it could not place
2 payees, £4,960: PLANT WORLD ROTHERHAM, WM DERBYSHIRE AND SON
Register, before and after
8 owned items, then 9
Sum insured indicated
£6,502 of tools either way, plus £4,219 of plant that was on no register at all a moment ago

The other unplaced payee is a builders' merchant, and the honest answer there is Materials, which puts nothing on a register. Worth saying out loud: not everything the engine misses is an asset, and a screen that implied it was would be the overstatement this product exists not to make.

Say it is a stub and mean it. It is anchored on Admiral’s own published rate of £6.07 a month for a carpenter at £1m, every multiplier is named on the page, and it always returns a band. The needs map above it does not change when a real rating engine replaces it, and that separation is the actual engineering claim. Ridgeline prices at £155.48 to £243.20 a month.

Nothing here binds, prices definitively or settles. The model extracts facts; a deterministic rules table decides cover; the customer confirms; a human handles the claim. Only lines with a statutory basis state a requirement, and they cite the Act. The output is framed as demands and needs, never as a personal recommendation. That is why the ChatGPT apps in the market all stop at quote, and this respects the same line by construction rather than by policy.

Calder, the living-policy case
Tools & Materials is insured for £2,500 against an indicated £7,500
Northgate, professional path
PI sized at £2,000,000 against the £1,000,000 they hold, and no public liability at all
Swiftline, appetite
Routed to the courier proposition rather than priced on the standard journey
MCP endpoint
https://itspickle.app/mcp
JSON for a partner dashboard
https://itspickle.app/api/audit?demo=ridgeline-roofing
The whole partner integration
<script src="https://itspickle.app/embed.js" data-partner="..." data-accent="#14532d"></script>
Ridgeline Roofing Ltd
The hero. Three things land at once: SIC says builder and the site says roofer, payroll started in March so EL became a legal duty, and the tools sum insured has been £3,000 since 2019 against a register worth far more. Then open the tool theft claim against the register.
Calder Electrical Services Ltd
The living-policy case. Cover is broadly right and EL is properly held, so nothing looks wrong on the surface. The finding is the sum insured: £2,500 set in 2018 against a register of test gear and cordless kit worth several times that, and the average clause means the shortfall bites on every partial loss, not just a total one.
Northgate Advisory Ltd
The professional path, and the SIC-code point. 82990 tells you nothing, so the website does all the classification work. Turnover puts PI at £2m against the £1m currently held, and there is no public liability at all despite working on client sites.
Swiftline Couriers Ltd
The appetite filter. This is the answer to "what stops it recommending things you will not write?" Hire and reward routes to the courier proposition rather than being priced on the standard tradesperson journey, and the referral note travels with the result to every surface.