# Read a competitor pricing page in six fields before you brief sales Pull packaging, pricing metric, fences, missing information, an evidence date and one buyer implication off a competitor pricing page, with Claude and a check. URL: https://www.hiresteve.ai/blog/competitor-pricing-analysis Updated: 2026-10-12 A competitor pricing page answers six questions: what each tier bundles, what you pay per, what is fenced to a higher tier, what the page leaves out, when you looked, and what a rep should say differently. Read it for all six, in that order, and write them down before you tell sales anything. Claude can do the extraction; you check it against the real page. ## Six fields, one page Open the page in a browser and scroll it once, including the comparison table and the footnotes. Then fill the six fields below. Packaging and metric come first because you cannot say what is gated until you know what the base tiers contain. The date comes last because it is the field most often skipped. Reference: the six fields, one row per competitor page | Field | What to write down | | --- | --- | | Packaging | Tier names exactly as printed, and what each one includes by name | | Pricing metric | The unit the price is charged per, plus any minimum or billing condition | | Fences | Features available only on a higher tier or as a paid add-on | | Missing | Anything a buyer would need that the page does not state | | Evidence date | The date you captured the page, and where the saved copy lives | | Buyer implication | One sentence a rep could say or ask because of this page | One row is the whole output. It becomes a dated claim in your competitor file, and it is what the [battlecard update cycle](/blog/battlecards-sales-actually-uses/how-often-to-update-battlecards) needs when a pricing or packaging change triggers a refresh. ## Ask Claude to extract, not summarize In Claude, turn on web search from the “+” button in the chat window and paste the pricing URL. With that setting on, Claude can [fetch the full content of a page you give it a URL for](https://support.claude.com/en/articles/10684626-enable-and-use-web-search). The same support page notes that a long page pulls entirely into context and can use a noticeable share of your usage limit, so give it one page, not the whole site. If the page sits behind a bot check or a login, copy the visible text from your browser and paste that instead. Either way, ask for a table, and tell Claude to write “not stated” where the page is silent. Prompt: extract a pricing page into the six fields ```prompt Read this pricing page: [URL or pasted text]. Return one table row per tier with these columns: tier name (as printed), price and the unit it is charged per, what is included by name, what is gated to a higher tier or add-on, and what a buyer would need to know that the page does not state. Write "not stated" where the page is silent. Quote the page's own wording for prices and limits. Do not infer a feature from marketing copy; list it only if the comparison table or plan card shows it. After the table, list any footnotes, billing toggles or regional options you saw. ``` For occasional page reads, an ordinary chat can be enough. If you read several competitors’ pages every month, put this instruction in the Project instructions from the [Project setup lesson](/blog/claude-project-setup) so the table comes back in the same shape each time. **Where the fetch breaks** A fetch returns the page as served, once. It cannot operate a pricing calculator, flip a monthly/annual toggle or choose a region, so on a page with any of those it may return one variant without telling you which. Read that part in the browser yourself and add what you saw to the table by hand. ## Packaging: what each tier bundles Write the tier names as the page prints them, including a free tier and any enterprise tier with no number. Under each, list what is included by name. Expand “everything in Pro, plus” into the actual items, because that phrase is where a quietly removed feature hides. Check by counting. Every tier on the rendered page is in the table, every add-on with its own price has its own row, and nothing is in the table that you cannot point to on the page. If Claude listed a feature the page only mentions in a headline, move it to the missing column with a note that it is claimed, not shown. ## The pricing metric, named precisely The metric is the unit the price is charged per: a seat, a workspace or account, a usage unit (API calls, records, storage, contacts), a flat price per tier, or custom pricing that is not stated. Orb’s guide to competitive pricing analysis calls these [pricing levers and lists seats, API calls, storage and modules as the usual ones](https://www.withorb.com/blog/competitve-pricing-analysis). Per seat and per workspace are easy to conflate, and conflating them breaks every comparison downstream: a $40 seat and a $40 workspace are different products for a fifty-person team. Record the minimums too. “From $40 per user, billed annually, five-seat minimum” is three facts, and the second and third change what a small team pays. (These figures are invented to show the shape of the fact; they are nobody’s price.) Check the small print under the price. The unit in your table must match the words next to the number, not the words in the headline. ## Fences: what is gated up A fence is a feature the page shows only above a line: a higher tier, a paid add-on, or an enterprise conversation. SSO, audit logs, API access, custom integrations and data retention are the usual ones. Fences get their own column because they show which features require a higher tier, paid add-on, or enterprise conversation. The Competitive Intelligence Alliance’s [guide to competitive pricing analysis](https://competitiveintelligencealliance.io/how-to-do-competitive-pricing-analysis/) treats feature gating as a positioning signal as well as a revenue lever. Check placement. For each fenced feature, find the cell on the page that shows it withheld from the lower tier. If the page only implies it, mark the entry “unclear” and write why. ## What is missing is data too Record what the page does not say with the same care as what it does: “Contact us” in place of a price, no seat count, no overage rate, no limits on records or storage, no currency, no contract length. The Competitive Intelligence Alliance guide notes that most B2B SaaS vendors withhold enterprise pricing entirely, and your own category peers likely do as well. An absence is a finding because it changes what a rep can claim. “They charge more than us” has no support when their price is not published. “Their enterprise price is not published; prospects have told us they were quoted around X” does. Keep the second half labelled as reported by prospects, with a date, and never let it migrate into the packaging column as if it were on the page. ## The evidence date and the one sentence for sales No pricing page carries an “as of” date, so you supply it. Write the capture date on the row and save the page as you saw it, as rendered text, a PDF or a full-page screenshot, with the date in the filename. That saved copy is the evidence date in practice. Without it, “Pro dropped from $99 to $79” is a memory with nothing to compare against next time. Orb’s guide makes the same point: one snapshot cannot show a seasonal or strategic shift; two dated snapshots can. Then write the buyer implication as one sentence a rep could say or ask, describing what changes in a conversation because of this page. An illustrative example, with an invented competitor: “Their Pro tier no longer includes SSO, so ask any prospect evaluating their mid-tier whether single sign-on is a requirement.” If you cannot write that sentence, either the read is unfinished or the page changed nothing that matters to sales. - Every tier on the rendered page is in the table, including free and enterprise tiers. - The pricing unit matches the small print next to the number, and minimums are recorded. - Each fenced feature points to a cell on the page, not to a headline. - Everything a buyer would need that the page omits is listed under missing. - The capture date is on the row and a dated copy of the page is saved. - The implication is one sentence a rep could say tomorrow. If sales is already asking about a price cut, the [response playbook for competitor pricing changes](/blog/competitor-pricing-changes) starts from this row. ## Where one read stops, and what Steve covers One fetch is a current read, not a history. A price-change claim still needs two dated captures you can inspect. Continue with reminders and dated copies while that routine remains reliable; evaluate automation when missed checks or page variants create recurring collection work. Steve tracks competitor pages and flags changes. Its website tracking runs on a weekly schedule: when a tracked page changes, Steve flags the change, suggests an update to the matching battlecard section, and posts the detected change to Slack. Steve flags that a tracked page changed; you still open the page and fill the six fields yourself. If a scheduled watch on several competitors’ pages is the part you keep dropping, see how [Steve competitive intelligence](/products/competitive-intel) tracks competitor pages; the reading stays yours. ## Frequently asked ### What should I record from a competitor pricing page? Six things. The tiers and what each bundles, the pricing metric, the features fenced to a higher tier or add-on, what the page does not say, the date you captured it, and one sentence on what changes for a rep. ### Can Claude read a competitor pricing page for me? Yes, with web search turned on. Paste the URL and ask for the tiers as a table. Then check every field against the rendered page yourself, because a fetch can miss a footnote, a billing toggle or a regional price. ### How do I know whether a competitor lowered a price? Only by comparing today’s capture with an earlier dated one. The page carries no history, so save the rendered text or a PDF with the date in the filename every time you read it. ### What does “Contact us” in place of a price tell me? That the vendor sells that tier through a sales conversation and has chosen not to publish the number. Record the absence as a finding, then ask your reps what prospects report being quoted and label those numbers as reported.