Worked example
A full audit walkthrough, on a company that does not exist.
We have no real case studies to show yet, and we are not going to invent any. So here is the next most useful thing: the complete output of the method applied to a fictional fintech, with every number hand-authored and labelled as such.
Why it is fictional
The alternative would be a lie.
A new company with no clients has two options for its case study page. It can publish something vague and implied, with a logo wall of companies it once spoke to and percentages with no denominators. Or it can say plainly that it has not done this for a paying client yet, and show the method instead.
We are doing the second one. When we have real results and a client willing to put their name to them, this page will change — with real data, real attribution, and the same provenance labels we use in every report.
What we will never publish
- Results attributed to an anonymous “leading fintech”
- Percentage improvements with no baseline and no denominator
- Logos of companies that are not clients
- Testimonials nobody said
The subject
Ledgerloop
- Category
- Expense management
- Description
- Fictional B2B expense management and spend-control platform for scale-up finance teams.
- Markets
- United Kingdom, Germany, United States
- Size
- 80–120 employees
- Query set
- 42 queries × 3 surfaces × 3 repetitions = 378 executions per period
- History
- 6 monthly periods, fixed query set throughout
Step 1 — Baseline
Where the company started.
Measured before anything shipped. This is the single most important artefact of the engagement, and the one most easily skipped in the rush to do something visible.
16.7%
7 of 42 queries
- Citation rate
- 4.8% (2/42)
- Avg. position
- 5.4
- Executions
- 126
26.2%
11 of 42 queries
- Citation rate
- 11.9% (5/42)
- Avg. position
- 4.1
- Executions
- 126
21.4%
9 of 42 queries
- Citation rate
- 14.3% (6/42)
- Avg. position
- 4.8
- Executions
- 126
Note the spread: 7 of 42 on one surface, 11 on another. Averaging these into “9 of 42 across AI search” would hide that the surfaces disagree, and the disagreement is diagnostic — it usually points at differences in crawler access or in which third-party sources each surface favours.
Step 2 — The competitor set
The list that changed the conversation.
The client named one competitor. The answer engines named four, and the second most visible was a company nobody in the room had been tracking.
- Spendwiseclient-declared
Named by the client in kickoff. Also the strongest performer across the tested query set.
- Tallyflowai-answer
Not on the client's competitor list. Appears in AI answers more often than the client does.
- Obol Payserp
Ranks organically for the same comparison terms; weaker inside AI answers.
- Kestrel Financemarket
Enterprise-tier overlap only. Included to test the enterprise query archetypes.
Mention rate, 42 tracked queries
Demo- Spendwise54.8% (23/42)+2.4
- Tallyflow45.2% (19/42)+7.1
- Obol Pay28.6% (12/42)-1.2
- Ledgerloopyou21.4% (9/42)+4.8
- Kestrel Finance19.0% (8/42)0.0
Step 3 — Read the answers
What the extraction actually records.
Not a summary of the answer. The raw response is stored, and the parser records structured facts about it that can be checked against the original.
best expense management platform for startups
For early-stage teams, the platforms most often recommended are:
1. Spendwise — strong free tier, widely reviewed, integrates with most accounting stacks.
2. Tallyflow — corporate cards plus expense capture in one product.
3. Obol Pay — good fit if you already use their payments product.
…
6. Ledgerloop — multi-entity support, aimed at slightly larger finance teams.
What the pipeline records
- Mentioned
- yes
- Position
- 6 of 6 named
- Matched alias
- Ledgerloop
- Framing
- listed
- Own domain cited
- no
- Competitors named
- Spendwise, Tallyflow, Obol Pay
Being named and being cited are different outcomes with different fixes. Here the company is named sixth and its own site is not among the sources — the answer was assembled from third-party pages.
The finding hiding in that single answer
The company is named — sixth, in a list of six — and its own domain is not among the sources. The answer was built from a review platform page, an industry roundup and a competitor’s comparison page.
That means the sixth-place framing was written by someone else, using someone else’s description of the product. No amount of homepage copy changes it. The fix runs through the three sources, not through the site.
This is the diagnostic that reframes what the work actually is, and it is the reason authority is a capability here rather than an upsell.
Step 4 — Findings
Observations, with evidence, and nothing else.
No adjectives, no advice, no interpretation. Each one states what was observed and what was recorded to prove it.
Comparison pages return an empty container to non-browser clients
Fetching /compare/* without JavaScript execution returns a document whose main content area contains no product data. The same URLs render fully in a browser.
- → curl of 6 /compare/* URLs: 0 product rows present in returned HTML
- → Rendered DOM in headless browser: 14 product rows present
Edge bot rule challenges non-browser user agents on two commercial templates
Requests to /pricing and /compare/* with non-browser user agents receive a 403 with a JavaScript challenge body.
- → HTTP 403 on 8 of 8 requests with a declared crawler user agent
- → HTTP 200 on the same URLs with a standard browser user agent
No alternatives page exists for the most-tested competitor
The query 'spendwise alternatives' is in the tracked set at priority 5. No page on the site targets it. A competitor's own alternatives page was cited in 4 of 9 executions.
- → Site crawl: 0 pages matching alternatives intent
- → Query q-02: subject mentioned in 4/9 executions, own domain cited in 1/9
Company description varies across five external profiles
The one-line description differs materially between the website, two review platforms, the LinkedIn profile and a directory listing. Two describe the product as accounts-payable software rather than expense management.
- → 5 external profiles collected
- → 3 distinct category descriptors in use
Organization schema present but missing sameAs and product links
Organization markup exists on the homepage. It contains name, logo and url. It omits sameAs, and no SoftwareApplication or Product markup exists anywhere on the site.
- → 1 Organization block found
- → 0 sameAs entries
- → 0 Product/SoftwareApplication blocks
Review-platform presence is thin relative to the tested competitor set
The subject holds a profile on one of three review platforms tracked for this category. Two competitors hold profiles on all three, with substantially higher review counts.
- → 1 of 3 tracked platforms
- → Review counts collected on the same day for all five companies
Zero mentions across the enterprise and pricing query archetypes
Across 2 archetypes covering 9 queries and 81 executions, the subject was named 0 times. Competitors were named in 63 of those executions.
- → 81 executions, 0 subject mentions
- → Competitor mentions: 63/81
Sitemap contains 35 URLs that do not return 200
Of 412 URLs in the sitemap, 31 return 301 and 4 return 404.
- → 412 sitemap URLs checked
- → 31× 301, 4× 404
Step 5 — Recommendations
Prioritised, owned, and honest about which parts are guesses.
Each recommendation names its hypothesis explicitly. We know what we observed. Why it is happening is an inference, and inferences get labelled.
Server-render comparison and pricing content, and allow declared AI crawlers at the edge
- Problem — observed
- The two page templates most relevant to buying decisions are either unreadable without JavaScript or blocked outright at the edge.
- Hypothesis — inferred
- Interpretation, not observation: systems that cannot retrieve the page cannot cite it, which plausibly contributes to the zero citation rate on comparison and pricing queries.
- Action
- Move product tables to server-rendered markup. Add an allow rule for declared AI crawler user agents on the bot-management policy, keeping rate limits in place.
evidence: f-01, f-02 · affects 6 tracked queries
Publish an honest alternatives page for the leading competitor
- Problem — observed
- A priority-5 query has no corresponding page, and a competitor's own comparison content is being cited in its place.
- Hypothesis — inferred
- Interpretation: comparison and alternatives content is the format these answers draw on most, and the subject currently supplies none of it.
- Action
- Build one alternatives page covering five genuine options including the subject, with accurate competitor descriptions and a stated evaluation method. Reviewed by an in-house SME before publication.
evidence: f-03 · affects 3 tracked queries
Standardise the company description across every external profile
- Problem — observed
- Three different category descriptors are in circulation, two of which place the company in the wrong category.
- Hypothesis — inferred
- Interpretation: inconsistent third-party descriptions weaken entity corroboration, which is a plausible contributor to absence from category-level queries.
- Action
- Agree one canonical boilerplate. Update all five external profiles. Add sameAs links to Organization schema pointing at each.
evidence: f-04, f-05 · affects 4 tracked queries
Establish presence on the two missing review platforms
- Problem — observed
- Review platforms were among the sources cited in the tested answers. The subject is present on one of three.
- Hypothesis — inferred
- Interpretation: review platforms appear frequently as cited sources for category queries, so absence removes a route to being named.
- Action
- Claim both profiles, complete them fully, and run a legitimate review-request programme with existing customers. No incentivised or written-for reviews.
evidence: f-06 · affects 4 tracked queries
Build a pricing explainer that answers the cost question directly
- Problem — observed
- The pricing archetype returned zero mentions across 27 executions.
- Hypothesis — inferred
- Interpretation: the site states 'contact us' and publishes no pricing structure, so there is nothing for an answer engine to quote.
- Action
- Publish a pricing page that explains the model, the variables and indicative ranges, even if exact figures stay gated.
evidence: f-07 · affects 2 tracked queries
Clean the sitemap
- Problem — observed
- 35 of 412 sitemap URLs do not return 200.
- Hypothesis — inferred
- Interpretation: low direct impact on AI visibility, but it is cheap hygiene and removes noise from crawl diagnostics.
- Action
- Regenerate the sitemap from indexable, 200-returning canonical URLs only.
evidence: f-08 · affects no tracked queries
Step 6 — Six periods later
What the measurement looks like over time.
In this illustration the mention rate moves from 7.1% (3/42) to 21.4% (9/42), +14.3 pts against baseline. Note what is not claimed: that every point of that is attributable to the work.
Timeline annotations
- 2026-04Baseline captured before any changes shipped.
- 2026-07Comparison and alternatives pages published mid-month.
- 2026-09Two industry placements went live in the first week.
How we would report this honestly
Three of those six periods moved by one query — roughly two percentage points on a 42-query denominator. That is inside the noise band for a non-deterministic system and would be reported as noise, not as progress.
The July and September steps are larger and coincide with dated work, which makes them worth discussing. They still do not prove causation, and the report would say so in those words while recommending we keep measuring.
Want this run on your actual company?
Same method, real data, your query set. The baseline is yours to keep whether or not you continue with us.
See where you stand in AI search.
An AI Search Audit tells you how often AI systems name your company, who they name instead, and what is causing the gap. Every figure comes with the method behind it.