How to Write Pricing-Page Copy That Names the Price
A 25-minute website skill for pricing page copy that names the price. Hero states the number. FAQ covers refund, billing period, and what is included. Ban contact us for pricing unless the work is truly custom. ChatGPT, Claude, or Gemini, then one pass.
Anyone shipping a self-serve product can write pricing page copy in 25 minutes: a hero that names the number, one plan line, and an FAQ for refund, billing period, and what is included. Run it in ChatGPT, Claude, or Gemini before "contact us for pricing" turns checkout into a sales call.
Pricing page copy is a receipt in advance. If the number is missing, the page is a teaser.
Write the hero like a landing hero in one sentence: one claim, one number. Pull FAQ answers from questions customers already asked, not from a model's idea of objections.
Write pricing page copy in five steps
1. Put the number in the hero before any adjectives
Instruct ChatGPT, Claude, or Gemini: "Do not draft a page yet. Write one hero sentence that includes the actual price I paste. If I did not paste a number, write UNKNOWN and stop. No contact us. No custom quote. No starting at unless I named a real plan."
Paste the real number. $29 a month. $240 a year. $1,200 per seat. Not "affordable." Not "transparent pricing."
Banned: contact us for pricing, let's talk, book a demo used as a price, pricing tailored to your needs, "from just" with no checkout behind it.
If the work is truly custom — a one-off build — say so in one line and stop this skill. A SaaS seat is not custom.
2. One plan line a buyer can say out loud
Send the hero back. Instruct: "Write one plan line: name, price, billing period, who it is for in five words. Three plans max. If I named one plan, do not invent two more tiers."
Good: "Studio — $29 / month — solo editors." Bad: "Growth — for teams that want to scale." Scale is not a buyer. List what is included in nouns: seats, exports, support, storage. If a line is "priority everything," rewrite it like a product description that is not a brochure.
UNKNOWN on a limit is better than guessing "unlimited." Unlimited is a legal sentence.
3. Draft three FAQ answers you can defend
Only three questions on this pass:
- What is included.
- How billing works (monthly, annual, when it renews).
- How refunds work.
Instruct: "Answer from the policy I pasted. If a fact is missing, write UNKNOWN. Do not invent a 30-day guarantee. Do not soften a no-refund line into we will try."
ChatGPT will add an enterprise FAQ. Claude will hedge the refund. Gemini will skip the yearly total. Cut all three. If enterprise is real, it is a plan you already decided, or it is custom and off this page.
4. One human pass with the checkout open
Open the actual checkout or the Stripe test page. Read the hero, the plan line, and the three FAQ answers against the button.
Check three traps:
- A hero price that is not the number on the button.
- Monthly in the hero, annual in the FAQ, no conversion.
- Contact us sneaking back into a CTA under the grid.
Fix the words yourself. Then tell the model: "Replace only the lines I changed. Do not add a testimonial. Do not add a comparison table."
One pass. A second pass is how a pricing page grows a manifesto. If you need a search snippet, write it separately with meta description people actually click. Do not stuff the meta into the hero.
5. Ship the number. Save the bans
Paste the hero, the plan lines, and the three FAQ answers onto the page. The CTA is Get [plan] for [price], not Talk to us, unless the column is truly custom.
Save the bans and the three FAQ slots. Next price change, rerun the loop. If sales wants the number off the page "for now," you have a form. Stop.
Reusable skill card
Trigger: You are drafting /pricing and the hero still says transparent, simple, or contact us.
Input: The real price, billing period, who each plan is for, what is included in nouns, the real refund policy, plus the banned-phrase list.
Output: One hero that names the number, up to three plan lines, three FAQ answers (included, billing, refund). UNKNOWN where policy is missing.
Stop: After one pass against the live checkout. No fourth plan. No contact us for pricing unless the work is custom.
Takeaways
- The hero names the price. If the number is missing, the page is a teaser.
- Three FAQ answers: included, billing, refund. Paste policy. Do not invent.
- Contact us for pricing is banned on self-serve. Custom is the exception, named as custom.
- UNKNOWN beats unlimited. Do not ship a guessed limit.
Frequently Asked Questions
What if sales wants contact us for pricing on a self-serve plan?
Put the number on the page. Contact us is for custom scope, not for hiding a monthly fee. If the plan is self-serve, name the price.
Can the hero say starting at if add-ons exist?
Only if the starting number is a real plan a buyer can check out today. Starting at with no plan behind it is contact us in a costume.
Should ChatGPT, Claude, or Gemini invent the refund policy?
No. You paste the real policy. The model drafts plain sentences. UNKNOWN if you have not decided. Invented refunds are how you get a chargeback.
How many plans on the page?
Three or fewer. A fourth plan is a spreadsheet. If you cannot name a buyer for a column, cut it.
Where does annual versus monthly go?
In the hero or the plan line, and again in the FAQ billing-period answer. Do not hide the annual total only in a toggle the model forgot to mention.