Pricing in public, ninety days in
We posted real prices on the marketing site at launch. Ninety days later, here is what changed about the sales conversations, what surprised us, and what is still uncomfortable about it.
Ninety days ago, when the marketing site went live, we posted real prices on /pricing. Numbers, not “starting at.” Tiers, not “contact sales.” A self-serve plan with a credit card form, not a calendar invite.
In the post that explained the decision, I argued that pricing opacity in the proposal-software category is a market signal, and that the signal is not a flattering one. The major incumbents quote individually, gate pricing behind a discovery call, and price-discriminate based on what the buyer is willing to pay. We chose not to do that.
This post is the ninety-day report. What happened. What surprised me. What is still uncomfortable.
What changed in the sales conversation
The sales conversation got shorter and the people on the other end got better-qualified.
Before public pricing, an inbound demo request was a black box. The prospect could be a five-person consulting shop with no budget, a 200-person professional-services firm with a procurement process, or a 5,000-person enterprise expecting custom pricing on day one. The first call was 80% qualification — figuring out which of those three the conversation actually was — and 20% product.
After public pricing, the first call is the inverse. By the time someone books a demo, they have read the price list and decided the price is plausibly in their range. The conversation skips qualification and goes to product. The team’s calendar density is roughly the same; the conversion from first call to second call is materially higher. Self-reported, not measured against a control — but the direction is consistent.
The second-order effect is in who does not book a demo. We can see in the analytics that a meaningful fraction of /pricing visitors leave the site without booking. Those are the people who, under a quote-only model, would have produced an unproductive discovery call and then disappeared. Now they self-disqualify and we never spend the time. That is a real cost saving for the team, and a real respect for the prospect’s time too.
What surprised me
Three things I did not expect.
The competitive use of public pricing. Several prospects, in early calls, told us they used our /pricing page as the anchor in negotiations with the larger incumbents. “PursuitAgent is at X for the equivalent feature set; can you match.” Whether that anchor actually moved the incumbent’s pricing, I do not know. Whether it gave the prospect a number to start from in a category where there usually is no public number — yes, demonstrably.
That is a category effect, not a sales effect. We are pulling the negotiating floor of the category visible. The incumbents will adjust eventually, either by publishing prices themselves (unlikely in the near term) or by getting more aggressive in private discounts. Either way, the visible floor exists and prospects are using it.
The cost of the self-serve plan was higher than I expected. Not in dollars — in support load. Self-serve customers, especially the smaller ones, have specific questions that do not fit cleanly into documentation. The first wave of self-serve signups produced a noticeable bump in support tickets, and the team had to invest in the docs and the in-product help in ways we had under-budgeted. The pricing-page commitment forced an operational discipline we would not have built otherwise. That is good in the long run; it was uncomfortable in the short.
The objection I expected did not really land. I had braced for the objection “your pricing is wrong for us, we need a custom quote.” It comes up less than I thought. When it does come up, it is almost always from buyers whose procurement process requires a custom quote (federal, large-enterprise procurement). Those conversations are real and we accommodate them, but they are a small fraction of the total. Most prospects took the published pricing at face value and either bought against it or did not.
The closest thing to recurring pushback has been on the self-serve tier’s feature limits — specifically, KB size caps and seat counts. Those limits are calibrated to the price; raising them at the same price would not be sustainable. We have moved a couple of caps in response to consistent feedback, but the core shape has held.
What is still uncomfortable
Three things, in honesty.
The self-serve plan’s unit economics are tight. The price has to be low enough to be self-serve-credible — meaning a small team can buy it on a card without going through procurement — but high enough to cover the support load and the actual compute cost (which, see Wednesday’s cost-per-response post, is real). At the current price, we are net positive but not by a generous margin. If the support load grows or the compute cost moves the wrong way, the unit economics get tighter, not easier.
The fix is not to raise the price. The fix is to drive the support load down through better docs, better in-product onboarding, and better self-diagnosis tools when the system refuses on a question. We are working on each of those, but they are real investment, and the investment is on us, not on the customer.
The mid-tier price feels too round. I cannot defend the specific number with rigor. We picked it from a small sample of comparable categories, calibrated against incumbent quote ranges that customers shared with us informally, and then rounded. The rounding is honest — we did not have enough data to set a non-round number — but the result is that the price is somewhat arbitrary. A more disciplined startup would have run the pricing experiment harder. We did not, partly because we wanted to ship the launch and partly because pricing experiments are expensive in early-stage trust.
I will probably move this number once or twice in the next year as we learn what the willingness-to-pay actually is. When I do, the change will be visible on the page and called out in a post. That is the point of pricing in public — the price is on the record, and changes are on the record too.
There is a class of customer I cannot serve at the published prices. The very small customer (one or two people, occasional RFPs) cannot justify even the self-serve tier. The very large customer (federal prime contractor with ten thousand employees and a complex security review) cannot fit into the published tiers, and we accommodate them with custom procurement. Both ends of the distribution sit outside the published pricing, and that is a structural limitation of any tier-based public pricing model. I am not yet sure what to do about the very small end. The very large end will continue to be custom procurement, and that is fine.
What I would do differently
If I were going back to day zero with what I know now, two changes.
Publish the compute-cost ratio, not just the price. A real difference between us and the incumbents is that our compute cost per response is unusually transparent — we know what every retrieval and every draft and every verifier call costs us, and we can publish the rough ratio. The published price implies a margin; the published cost-ratio would implicitly state what the margin is, and that would matter to procurement-savvy buyers. We are working up to this with the engineering team’s cost-per-response post running this week.
Build the in-product self-diagnosis earlier. The support load on self-serve was a forced investment we did not anticipate. If I were starting again, I would build the in-product “your refusal happened because…” surface before the self-serve tier opened, not after. We are catching up now. The right time to build it was earlier.
What I would not do differently
The decision to publish prices at all. That stays.
The category does not have public pricing because the category’s incumbents have built businesses on price discrimination, and they have not been competitively pressured to change. That competitive pressure is what we are. Our prices are visible; theirs are not; prospects notice the asymmetry and the asymmetry is doing work for us. Even when our prices are not the cheapest — and on the high tier, we are not the cheapest — the visibility itself is a signal that we operate differently than the rest of the category.
That signal is a marketing asset and a discipline lever in roughly equal proportion. It forces us to defend our number on the merits because the number is on the page. There is no fallback to “well, the discovery call would have explained the value.” The number stands or it does not. Most of the time, it stands.
The next ninety days
A few things on the calendar.
We will probably move at least one published price in the next quarter. The direction is not decided. The change will be announced in a post.
We will publish a fuller breakdown of the unit economics — cost per response, gross margin, where the support load actually lands — once we have enough sample to be honest about the variance.
We will continue not gating prices behind discovery calls. If the strategy stops working, I will say so on this blog before we change it.
That is the ninety-day report. The decision held. The discomfort is real. The category has not adjusted yet. The conversation we are in is the conversation I wanted to be in. So far.