Custom Development
Gated Reviews That Cannot Be Faked: Tying Ratings to Completed, Paid Bookings
4 September 2026 · 6 min read
A review carousel on a profile page, fed by an open form, is one of the easiest things on a website to poison. Competitors, people who were never customers, and bots all get an equal vote with real clients. On a marketplace where a tutor’s income depends on their rating, that is not acceptable. The fix is to make a review a property of a transaction, not a free-standing object.
The rule: no booking, no review
A review can only be created against a booking record that is both marked completed and fully paid. The review form does not exist as a standalone page. It appears in the student’s own booking history, next to the specific session it belongs to, and only once that session meets both conditions. There is no endpoint that accepts a review without a valid, matching booking ID owned by the logged-in user.
One booking, one review, permanently attached
Each booking can carry exactly one review. It is linked to the booking, the student, and the tutor at creation and cannot be moved. Every public rating traces back to a real, paid session between those two specific people, and the aggregate score on a tutor profile is computed only from these linked reviews.
A moderation queue before anything goes live
A submitted review is not published immediately. It enters a queue. An admin sees the text, the rating, and the booking it is attached to, and either approves it or rejects it with a logged reason. This catches personal information, abuse, and off-topic content without giving the platform the power to quietly delete criticism: a rejected review and its reason are both recorded.
Editing and disputes
A student can update their own review within a short window, after which it is fixed. A tutor who believes a review is unfair can open a dispute, which routes to support with the full booking and message history attached. Support can annotate, and an admin can unpublish with a reason, but the underlying record stays.
What this buys the marketplace
- Every visible star rating maps to a paid transaction, by construction.
- Volume is naturally throttled to real activity, so a burst of new reviews is a signal, not noise.
- Moderation is accountable, because rejections are logged rather than silent.
- Disputes have evidence, because the review never leaves the context of its booking.
This is more work than dropping in a reviews plugin. On a platform where the rating is the product, it is the part you cannot afford to get casual about.