Thicket.
← Back to Journal

Measurement

Thirty Days of Publishing: 0 of 30, Then 0 of 30 Again

A company spent a month publishing to find out whether it would change how an assistant answers its buyers. We measured before and after, the same way both times. The answer was no, and the answer was agreed to be worth knowing before anyone knew what it was.

We measured one company’s presence in an AI assistant’s answers a week after it published a substantial new piece on exactly the topic its buyers ask about, let it keep publishing, and measured again thirty days after that piece went live — same five questions, same model, same run counts. It was named in 0 of 30 runs the first time and 0 of 30 runs the second time. The useful part is not the zero. It is that both sides wrote down what a zero would mean before the first read.

The setup

A small B2B software company came to us after we showed it something uncomfortable: ask a general-purpose AI assistant the questions its buyers ask, and the company was not in the answer. Its competitors were. It wanted to know whether that was fixable by doing the obvious thing — writing good material about the topic, on its own domain, steadily.

So we ran it as an experiment rather than as a sales process. Five questions, written to sound like a buyer rather than like a marketer. Each one asked three times, in two independent draws twenty minutes apart, for thirty runs per read. One thing counted: was the company named in the answer at all. Not its rank, not its sentiment, not a score we invented. Named, or not named.

The sequence matters, so here it is exactly. The company published a substantial new piece written directly on the subject those five questions ask about. One week after that piece went live, we took the baseline read — five questions, two draws, thirty runs. It kept publishing through the rest of the month. Thirty days after the piece went live, which is three weeks after the baseline, we re-ran all five questions, both draws, same model, same counts.

The part that makes this worth reading

Before any data existed, the company’s own operator proposed the falsifier — and proposed it in both directions. Both outcomes were written down as meaningful in advance: movement in the number would mean content is the lever, and a flat zero after a month of steady publishing would mean the lever is somewhere else entirely. Research has a name for that and a whole apparatus around it — preregistration, as the Center for Open Science sets it out: the question and what would answer it are filed before the data exists, so nobody gets to reinterpret the outcome afterwards. Marketing measurement almost never does this.

We have never had a prospect do that before, and it is the only reason the result below is a finding rather than a story. A null you did not pre-commit to is just a number you get to interpret however suits you. We would have been free to call a flat line “too early to tell” and sell another three months of waiting. Writing down the meaning in advance removed that option from us, deliberately, while we still did not know which way it would land.

The result

0 of 30 at baseline. 0 of 30 at thirty days.

Not a decline from partial presence, and not a near miss. The company did not appear anywhere in any of the sixty answers across both reads — not named late in a list, not mentioned as an alternative, not present and ranked low. A month of good, on-topic, first-party publishing produced no detectable change in what the assistant says when a buyer asks who does this.

What the instrument cannot tell you

The same read produced a second finding that cuts against our own commercial interest, so it gets stated plainly. The competitors the model names are not stable. Between the two draws twenty minutes apart, the tail of the named list reshuffled: different smaller vendors surfaced in each draw, with only a core of larger platforms named in both.

That is the same magnitude of churn we measured between draws taken three weeks apart. Which means this instrument reads absence reliably — sixty runs, zero appearances, no ambiguity — and reads competitor movement not at all over a one-month window. Anyone selling you a monthly chart of your rivals’ AI standing is selling you the noise floor with a trend line drawn through it. We could have presented that reshuffle as market movement. It is not. It is the instrument breathing.

Some of that churn is not the market at all, it is the serving stack. Thinking Machines Lab’s write-up on nondeterminism in LLM inference shows that identical requests to a production endpoint can come back different even at temperature zero, and that the cause is largely how requests happen to be batched together on the server rather than the GPU floating-point story usually given. Anything reporting week-to-week movement without a control is reporting that. It is why we put a control into our own checks.

What this does not prove

One company. One category. One model. One thirty-day window. This cannot separate “first-party publishing does not work” from “it does not work this fast,” or “at this volume,” or “in this category.” Anyone telling you n=1 settles a question about content marketing is doing something other than measurement.

A zero also does not mean the true rate is zero. Treat a read’s thirty runs as independent draws — they are not quite, since five questions repeat — and the rule of three puts the 95% upper bound at roughly one in ten per read. Absence at this sample size means rare, not never.

It does line up with what the platforms say themselves. Google’s documentation on AI features tells site owners there are no additional requirements and no special optimizations for appearing in AI Overviews or AI Mode beyond ordinary search fundamentals — and that the two surfaces may use different models and techniques, which is one more reason one model’s answers are one model’s answers.

What it does kill is the most optimistic version of the pitch — that a month of solid on-topic writing on your own domain visibly changes how an assistant answers your buyers. In this case, measured the same way twice against a falsifier agreed in advance, it did not.

What it fits

It lines up with the strongest pattern in our own records: being named tracks third-party attention, not first-party output. Across two separate cohorts, companies that had already picked up coverage from other people were named in 7 of 10 and 4 of 5 cases, against 5 of 62 for companies screened without that signal. Those are raw counts on purpose — the percentages built on them imply a precision the sample sizes do not have.

We are our own clearest example of the same thing pointing the other way. We publish every day. Ask a model who does AI-visibility work and it names two competitors, not us, run after run — which is recorded in our own public index, including the entry where we are absent from our own category.

Why the company is not named

Because we asked, and no answer came. The arrangement was set out in writing at the start: we would run the measurement free through the thirty-day read, and in exchange we asked whether we could publish the result — either named, or described generically with every number intact — and we said, in those words, that no was a fine answer.

Nothing came back. Not to that, and not to anything since. We could have treated silence as a yes, and a lot of case studies are built exactly that way. Silence is not consent. So the name, the domain, the category and the five question texts stay out, every number stays in, and the thing we actually learned — which was never the company’s name — gets published anyway.

The rule this produced

Agree the falsifier before the measurement, in both directions, in writing, with the person whose outcome it is. It costs one paragraph up front and it is the difference between a null you can publish and a flat line you get to spin. The company that insisted on it got a clean answer to the question it actually asked. We got a result we are allowed to report against ourselves, which is worth considerably more than a month of billing.

If you want this read on your own category, it is the same method behind our free visibility report: the questions your buyers actually ask, run more than once, counted the same way twice. Agree the falsifier first.

Frequently asked

What exactly was measured?

Five questions a buyer in this company's category would actually type, asked of a general-purpose AI assistant. Each question was run three times, in two independent draws separated by twenty minutes, for thirty runs per read. The only thing counted was whether the company was named in the answer at all. The same five questions, the same model, and the same run counts were used for the baseline read and for the second read thirty days after that new on-topic piece went live. Nothing about the method was chosen after seeing a result.

What was the result?

Named in 0 of 30 runs at the baseline. Named in 0 of 30 runs at the second read, taken thirty days after a substantial new piece written specifically on the topic those questions ask about went live, with consistent publishing right through the stretch. The baseline itself was taken a week after that piece, so the week of indexing time it had already had did not help either. The number did not move, and it did not move in the direction of partial credit either — there was no run in which the company appeared further down a list. It was absent from every answer, both times.

Why does agreeing the falsifier in advance matter so much here?

Because without it a null is worthless. If you decide after the fact what would have counted as movement, you can always find a reading that flatters whoever is paying. Before the first measurement, both sides wrote down what each outcome would mean: movement in the number would mean content is the lever, and a flat zero after a month of steady publishing would mean the lever is somewhere else. The company's own operator proposed that framing, in both directions, before any data existed. That is the only reason this null can be reported as a finding rather than as an excuse.

Does this prove that publishing content does not help AI visibility?

No, and we will not claim it does. This is one company, one category, one model, one thirty-day window, and a single question of interest. It cannot separate "first-party publishing does not work" from "it does not work this fast," or from "it does not work at this volume," or from "it does not work in this category." What it does do is rule out the most optimistic version of the story — that a month of good, on-topic publishing on your own domain visibly changes how an assistant answers your buyers. In this case it did not, by a measurement agreed in advance.

What is the instrument's honest limit?

It reads absence reliably and competitor movement unreliably. Between two draws twenty minutes apart, the tail of the named list reshuffled — different smaller vendors appeared in each draw, with only a stable core of larger platforms named in both. That is the same magnitude of churn we measured between draws three weeks apart. So we can say with confidence that this company was absent in all sixty runs across both reads, and we cannot say whether any competitor's standing changed over the month. We reported that as a limit rather than quietly presenting the reshuffle as a trend.

Why is the company not named?

Because we asked permission to name it and never received an answer. The arrangement was explicit from the start: we would run the measurement free through the thirty-day read, and in exchange we asked whether we could publish the result — either named, or described generically with every number intact — and said plainly that no was a fine answer. No reply came, to that or to anything after it. Silence is not consent, so the name, the domain, the category and the five question texts are all withheld, and the numbers are printed exactly as recorded.

What does this fit with in your other records?

It is consistent with the strongest pattern in our data, which is that being named tracks third-party attention rather than first-party output. Across two separate cohorts, companies that had already picked up coverage from other people were named in 7 of 10 and 4 of 5 cases, against 5 of 62 for companies screened without that signal. We are our own cleanest example in the other direction: we publish every single day, and a model asked who does AI-visibility work names two competitors and not us, run after run, which is recorded in our own public index.

More from the Journal