Build or Buy an AI Visibility Stack: The Five Silent Wrong Answers an In House Build Produces

What it actually takes to run a multi engine tracker yourself, measured from the defects in our own build, with rupee prices for the alternative.

Published by AI Knows Us · Updated 17 October 2026

The expensive part of building your own AI visibility tracker is not the API bill. It is that a tracker returns a confident number whether or not it is right, and five classes of defect in ours each produced a figure that looked reasonable until somebody went looking. If you are weighing an in house build against a subscription in India, these five are the maintenance you are buying, and none appears on a cost sheet.

We sell the subscription, so take this as an interested party showing you its own bug list. The measurement is genuinely buildable, we built it, and four of the five defects below were found by a check we had to write after the fact.

One: the classifier that counted Google's own documentation as marketing

Our first published source mix said 91.3% of citations went to a vendor's or an agency's own website. It was wrong. The pattern doing the sorting insisted on a literal string being present in a URL, which pushed Google's and OpenAI's own documentation into the bucket labelled vendor marketing. The corrected figure is 85.6%, and the gap between those two numbers is the whole headline of the report.

Classification now passes through a single tested module, and the module refuses to start unless all 24 of its named examples land in the right bucket. That is the first line item in a build: not the sorting code, the test that stops it running when it is broken.

Two: the counting unit, chosen once or argued about forever

Each domain scores once per reading. On that basis the 16 October 2026 run holds 20,143 citations from 1,260 readings, over 4,947 separate hostnames. Change the unit to one row per URL occurrence and the same stored rows come to 36,576. Neither is wrong. They are different measurements wearing the same word, and they sit about sixteen apart because each answer leaned on an average of 15.99 sources.

A build chooses that rule once and never changes it. Switch from deduped to raw between rounds and a client's visibility appears to have grown by a factor nobody can explain. Write the rule into the schema, not into a document.

Three: your data provider's own fetch infrastructure, arriving as publishers

712 cited URLs in that same run belonged to nobody who publishes anything. The source was our data provider's own fetching layer: an iframe proxy and a reverse proxy mirror that both hand Google's documentation back under hostnames of their own. Leave them in and a proxy service ends up listed beside real publishers in your top domains table. Trace each one back to the document it actually serves and the self published share drops from 82.4% to 82.0%. The same exercise on the 15 October run took 85.6% down to 85.3%.

Two of our own live pages printed those hostnames in a table of publishers before this was caught, and both now carry the correction. This defect is specific to buying data rather than fetching it: the artefacts come from how the data was collected, so they are in anybody's feed, and the only way to catch them is to open any cited URL you do not recognise before it reaches a table.

Four: an HTTP 403 that was a rate limiter, and a disproof pass that proved nothing

On 16 October 2026 we ran 220 dated fetches, 11 user agent strings against 16 URLs, and 23 requests came back refused with an HTTP 403. Four hosts answered differently to different agents, which looked like a finding about who blocks which crawler.

We re-ran those four the same day in reversed agent order, 44 requests, and all 44 statuses agreed. That felt like proof and was worthless, because 44 requests to the same four hosts inside one window reproduce a rate limiter rather than test for it. What settled it was a later reading from a different network. Two of the four served the whole article at HTTP 200, a desktop browser among the agents that got it, and one of them answered HTTP 429 outright. Of the 23 recorded failures, 20 arrived with a browser challenge page sitting in the body where a refusal should have been.

The working rule is three readings rather than two. A refusal only counts once a separate session hours later repeats it, and a single 429 anywhere invalidates the batch. Two findings did hold on both readings. OpenAI's own help site turned away every OpenAI crawler we sent, plus Anthropic's and Perplexity's, and a request carrying no agent string, while serving a desktop browser. The Verge turned away PerplexityBot and ClaudeBot and nothing else. Saving every response body made this answerable without re-running the set.

Five: a restated list going stale into a false claim

Read from the operators' own documentation on 16 October 2026, OpenAI documents four crawler identities and not three: GPTBot, OAI-SearchBot, ChatGPT-User and OAI-AdsBot. Two live pages of ours carried the three agent version, one of them with the number written into a sentence, and it had gone false while nothing broke. Any component that restates somebody else's list needs a date attached and a diary entry to re-read it, because the component does not fail when the list changes. It keeps returning the old answer confidently.

What the stack is not responsible for

One number stops a lot of wasted debugging. That engine has now been read 921 times across the two runs without our domain appearing in a single answer. A column reading zero for that long is telling you about the surface, not about a bug in your collector. Build the report so each engine has its own numerator and denominator and the zero is printed rather than averaged away.

The buy side, in rupees, with the date we read it

We do not restate another company's prices, including our competitors'. The reason is a measurement rather than caution. On 17 September 2026 an engine read two comparison pages whose competitor prices carried no link, no date and no source, verified those figures itself, found them accurate, and set both pages aside as advocacy in favour of official sources. So read each vendor's current page on your buying day and log the plan name, the amount, the currency, the term, the volume it covers and the date, together.

Our own rupee prices we will quote, because they are ours and dated. Read on our own pricing page on 16 October 2026, the plans run Rs 499, Rs 2,949, Rs 11,799 and Rs 35,399 a month. The second tier specifies what the money buys: 30 questions tracked, four apps read, 540 answers recorded each month. Extra capacity runs at Rs 353 a credit, each app consuming one credit per question and Claude three. Metered data costs behave the same way whichever side of the decision you land on, which is why the three billing models behind SERP API pricing are the closest map of it.

Questions Indian teams ask before building an AI visibility tracker

Is it cheaper to call the APIs directly than to buy a tool?

On tokens alone, usually. The five defects above are the part that is not on the token bill, and four of the five produced a comfortable looking number rather than an error. Cost the classifier test, the counting rule, the proxy resolution, the three reading rule for refusals and the diary entry to re-read operator documentation, then compare. Thirty questions on two engines in a spreadsheet is buildable in an afternoon; the same thing reported to a client monthly for a year is different work.

What is the first thing to build?

The test that stops the pipeline. Our classifier now refuses to load unless 24 named examples sort correctly, and that rule is what would have caught the 91.3% figure before publication rather than after. When a check reports good news, ask what it would have reported had it been handed nothing.

How many engines should an in house build cover?

Start with the two your buyers use. Our own runs covered ChatGPT and Gemini. Perplexity, Claude and Google AI Overviews were not in either, so a build claiming five surfaces on a dataset of two has the same defect as the pages it is trying to measure.

Can an Indian agency run this as a retainer line instead?

Many should, and the comparison in India is usually a retainer rather than a second subscription. The firms taking Indian AI answers on our 15 October data are small Indian agencies publishing their own pages: upgrowth.in cited in 52 readings, themediaverse.in in 48, nicodigital.com in 44 and hawkorbit.com in 33. Where a retainer already pays somebody to read those answers every week, a licence adds a second opinion rather than a capability.

What your own tracker will tell you on the first run

Probably a small number, because ours did. Our own Indian figure for 16 October 2026 is two source appearances on ChatGPT within 210 readings, and none on Gemini. AI Knows Us exists because that reading is worth having on a schedule across five surfaces and because the pages that change it have to be written by somebody. If you build it instead, build the five guards first and the collector second, and you will spend the year arguing about the result rather than about whether the result is real. The run those figures come from is published in full in the 597 reading benchmark across ChatGPT and Gemini in three markets.

Read next

AI Visibility Audit Deliverables for a UK Agency: The Five Artefacts, and Why the Zero Column Is One of ThemWhat a British agency should hand a client at the end of an audit, including the findings that did not survive a second reading.A Workflow Standard for AI Search Optimisation: Six Stations, and Who Owns Each OneThe execution sequence an Indian agency can hold a team to, measured against what our own site serves eleven named crawlers.The Multi Engine AI Citation Audit Framework: One Column Per Engine, Never a Blended ScoreA reproducible audit design for an Indian agency, built from 1,260 readings on 16 October 2026 and the 597 that came eleven days before it.A Small UK Agency Against a Large Consultancy on AI Search Optimisation: What the Citation Data Says Each One Can OwnThree British agency domains took dozens of citations each in our readings, and none of them is a large firm. Here is what that result does and does not tell a ten person shop.AI Search Optimisation and SEO in India: What Each One Costs, and What Each Return Is Counted InMost of the production work is already inside your search invoice, two budget lines are genuinely new, and the two results are counted in units that cannot be divided by each other.A 30 Day AI Visibility Plan for an Indian Small Business, and What Two Readings Can Honestly Tell YouA dated four week sequence built against the Indian field as it was measured in October 2026, where the sites holding the answers are small Indian domains and one engine column starts at zero.

Or browse the whole archive.

See what AI says about you.

The first scan is free, it needs no account, and it asks the questions your buyers ask.

Free. No card. We ask 5 real buyer questions on 2 AI apps.

Already sure you want this? Join the waitlist. We open on 31 October 2026. It costs an email address. No card, and nothing is charged. Or talk to a person if you have a question first. Or read how we fix what it finds.