Build log · collimer
Four August guides priced a ladder we retired in September
Four of our own guides were still quoting Collimer’s $150, $250 and $500 monthly plans on September 23, 21 days after we deleted those plans from the pricing page. Two of them also told readers the sprint price was not published. The $6,500 sprint sits on the pricing page today.
Collimer’s pricing change merged on September 2. It rewrote the pricing page, the sprint page, the structured data and llms.txt in seven files, and none of them was a guide. The four guides, published August 24, kept the old numbers.
What happens when you are building a GEO product in public?
Your own content becomes the first thing a reader can check against your own product. We publish guides on what GEO costs and how the tools price it, and each one was accurate the day it shipped. On August 24 we sold three monthly plans and scoped the sprint on a call. Nine days later both facts had changed.
Afterward, the cost guide and the tool-comparison guide still described a sprint with no published price. Two other guides set a competitor’s tiers against our monthly plans, which no longer existed. A reader who checked any of them against /pricing would have found us contradicting ourselves.
How did four guides go stale without a check noticing?
The prices were typed into prose. The guides are markdown files in the Collimer app, and the ladder appeared in them as literal numbers. The pricing commit changed the pricing config and the pages that render from it. A sentence that says “Team is $250 a month” renders from nothing, so nothing updated it and nothing failed when it became wrong.
We had already written about this failure shape. In July we made the product’s pricing config the single source of truth for site claims, and the follow-up said those checks should stop the next pricing change from drifting: how we keep the marketing site in sync with the product. We have not checked whether those checks ever read guide files. Either they never looked at the guides, or they looked and missed a plan name. The guides stayed stale for three weeks on either reading.
We found the problem on September 23 by reading. We were reading all 35 guides for a different job, turning them into build-log pitches, and the old ladder was on the page.
What did we decide?
We rewrote the four guides to the ladder that exists now: a free scan, a $99 audit and the $6,500 sprint. Competitor prices stayed as each guide recorded them. Only our side of each comparison changed.
The larger decision was about timing. Under the one-brand plan, the 35 guides move onto sandcastlelabs.ai. Moving them first would have carried the retired ladder to a new home, where it would look like current pricing on a site whose pricing page says otherwise. We fixed the copy before the move. The reasoning for the price itself is in why the price is public because the sprint is guided.
What’s next
- Merge the rewrite before any guide moves. A migration that copies stale prices is worse than no migration.
- Decide whether prices in guide prose should render from the pricing config at build time, so the next change fails a build instead of waiting for someone to read.
- Find out whether the July checks were ever pointed at guide files, and if they were, why they passed.
What we’re still figuring out
We have not measured whether anyone read the stale numbers or acted on them, so we cannot say what the three weeks cost. Prices were not the only fact that had drifted. The same read found a receipt stated with two different durations across guides and an engine list that disagreed with the methodology page. Both are corrected in the same set of edits. That makes three kinds of drift in one guide set, and we do not yet know whether the set has a fourth.
For agents: try this yourself
If you want to check your own content for retired facts, adapt one of these prompts. The full text lives in this post’s prompts sidecar, four-august-guides-priced-a-ladder-we-retired-in-september.prompts.md.
- Apply this to your own content. Take your product’s current pricing and plan names, then search every article, guide and FAQ for the plan names and dollar amounts you retired. List each hit with its file and line.
- Extend it into a build check. Pull the plan names and prices from one config, then fail the build when any content file states a plan or price the config does not contain.
Related: the last time a pricing page and the product disagreed.
How this was made
Drafted by the Chronicler from the build sessions behind this work, then edited and published by Chase.
See how the Chronicler works →Try this with your own agent
2 prompts you can hand to your own agent (or run by hand) to work with what this post documents. Edit the bracketed parts for your context.
Apply this to your own content
Take [your product]'s current pricing page and list the plan names and dollar amounts that exist today. Then list every plan name and dollar amount you have retired in the last 12 months. Search every article, guide, FAQ, changelog and help page in [your content directory] for the retired names and amounts, and for any sentence that says a price is "not published" or "contact us". Report each hit as file, line, the sentence, and whether it was accurate on the day it was written. Deliver a table of hits, plus a one-line note on which of them are still live on the public site.
Extend it into a build check
In [your repo], find where plan names and prices are defined (a pricing config or tiers file). Write a check that reads that file and scans every content file under [content directory] for dollar amounts and plan names. Fail the build when a content file states a plan or price the config does not contain, and print the file and line. Decide which content is allowed to state historical prices (for example a dated log post) and exempt only that, by an explicit marker. Deliver the check, the exemption rule, and a list of the current content files it would fail today.