How the PDF happens
At launch, someone typed the fee schedule into a document, exported it, and linked it from the website as "Download our price list". Then fees changed. Updating the PDF meant finding the original document, editing it, exporting, logging into the website and replacing the file, and nobody was sure how. So the PDF stayed. Two years later it is wrong on most lines, patients quote it at the desk, and reception has learned to say "prices may have changed", which is worse than no prices at all.
The PDF was never the right place for prices. It is a document; prices are data.
What prices should be on a website
Each price is a field on the treatment it belongs to. The check-up page has a price field. The hygiene page has a price field. The implants page has a "from" price field. The fees page is not a separate document; it is a table generated from those fields, so a price changed on the treatment page changes on the fees page in the same moment, and vice versa, because there is only one copy.
The practice manager updates a price by logging in, opening the treatment, changing the number in the field, and saving. Thirty seconds. No document, no export, no developer.
How it is built
On WordPress, treatments are a custom post type with a price field (and duration, clinician, FAQs). The fees page template loops through the treatments and renders the table. On a framework site, the same: a treatment record with a price property, a fees page that reads them. The principle is the same on any platform: one source, many displays.
Price fields are typed for the currency and validated, so "80" and "£80" and "from 80" cannot produce a malformed table. "From" prices are a flag on the field, not text typed into it. Membership plan prices are their own small record set shown alongside.
Where prices should appear
Not only on a fees page. Patients decide on the treatment page, so the price sits there, near the Book button: "Hygiene visit, 30 minutes, £X." The fees page exists for the patient comparing practices, and it should be linked from the main menu. Search results show prices when the structured data includes them, which the field makes automatic.
The result is that a patient searching "hygienist cost [town]" lands on the hygiene page, sees the price and the Book button together, and books. That is the conversion the PDF prevented.
Keeping them current
A single owner. One named person at the practice is responsible for prices on the website, and they are the person who knows when fees change. Usually the practice manager.
Same-day rule. When the fee schedule changes in the practice management system, the website changes that day. It takes minutes, so the rule is keepable.
A quarterly review. Every three months, the owner opens the fees page and reads it against the current schedule. Fifteen minutes.
No PDF. Delete it, and redirect the old link to the fees page. If a downloadable version is genuinely needed, generate it from the same data rather than maintaining a second copy.
The "should we show prices at all" question
Some practices hesitate to publish fees. The patient behaviour is clear: people searching for private dentistry compare prices before they book, and a practice that hides them is compared against an assumption rather than a number, usually unfavourably. "From" prices handle treatments that vary; a membership plan handles patients who want predictability. The practices with the fullest diaries almost all publish.
If regulation in your country requires fee transparency (several do for at least standard items), publishing is not optional anyway.
Migrating from the PDF
- Get the current fee schedule from the practice management system, not from the PDF.
- Create or update the treatment records with price fields.
- Build the fees page from the fields.
- Add prices to treatment pages beside the Book button.
- Add structured data with
Offerand price per treatment. - Redirect the PDF link to the fees page and delete the PDF.
- Record the walkthrough of "how to change a price" for the practice manager.
- Put the quarterly review on the calendar.
An afternoon, on a site with structured treatments. A small project on one without, and the moment to add the structure.
Where this sits
Prices as fields is how every dental practice site we build stores them, and moving prices out of a PDF is a common first task when a practice comes to us for a diagnosis. It is one of the highest-return fixes on the list because it removes an awkward desk conversation and adds a conversion at the same time.