Rating Bee
Honest Reviews. Fair Ratings. Second Chances.

Rating Bee: roadmap review and recommendations

What the plan gets right, what to change, and answers to the Section 16 questions on hours, costs, dependencies and the fastest path to five restaurants.

Bottom line

What you're building: a review site where the stars come from people who actually paid. The restaurant's own receipt proves the visit. The score shows how the place is doing now, not how it did years ago. A restaurant that had a bad night can win the customer back in the open. And paying Rating Bee never buys a better score. That's "Honest Reviews. Fair Ratings. Second Chances." and it's a real gap. Google and Yelp can't tell you who actually ate there, and they don't really give a business a second chance.

Verdict: the plan is sound and unusually disciplined: each stage has a gate, you have honest revenue expectations, and trust rules apply from day one. It can be built. I checked the riskiest technical assumption, receipt QR codes on Clover, against Clover's own documentation, and it works roughly the way you hoped (details below). The changes I recommend are mostly about order and integrity, not size.

The five changes that matter most
  1. Close the "cherry-picking" hole. If staff hand review invitations only to happy tables, the "verified" score becomes a marketing score. Invitations must reach every paying customer (printed on every receipt, or a sticker/table QR anyone can use with their receipt). Hand-delivered invitations should be labeled and capped.
  2. Make "Second Chances" a defined, legal process. Under the FTC's 2024 review rule, a refund or freebie can't be tied to changing a review. The Resolution Center needs firm rules: the original review always stays, only the customer can update it, and offers are never conditional.
  3. Sell reputation tools first, advertising later. In year one consumers won't visit in large numbers, so coupons, promotions and sponsored spots have little value. What a restaurant will pay for now: verified feedback, alerts, a recovery inbox, a website badge and monthly reports. Move "Bee Featured" to the growth stage.
  4. Plan for Clover's billing rule. Clover's docs say app fees for Clover merchants must be billed through Clover, and you keep 70%. Confirm how that applies to Rating Bee before you fix prices.
  5. Pilot without waiting for any POS approval. Build "Receipt Match": the customer scans a sticker QR and types the receipt number and total, and Rating Bee checks them against the restaurant's POS (or the owner confirms with one tap). This works with Clover, Square and Toast restaurants on day one. Clover's printed-receipt QR replaces it once approved.

Added October 24: full directory, the "On Google" box and Founding Critics

Full directory, city by city. Every restaurant gets a page from day one, loaded from Foursquare Open Source Places (Apache 2.0, free, covers the US, and we're allowed to keep it). Bay Area first, then one city at a time. The US has roughly a million restaurants, and adding listings costs nothing per listing. Owners can claim and correct their page. Search engines index a page once it's claimed or has a Rating Bee review, so we don't publish thousands of thin pages.

"On Google" box. Each restaurant page has a clearly labeled box showing Google's rating, review count, a few reviews and photos, loaded live from Google when the visitor taps it. Google's rules: only Place IDs may be stored; everything else is fetched fresh, shown with the Google logo and each author's name and profile link, and on a Google map if a map is used. It's never counted in FreshScore or mixed with Rating Bee reviews, so "verified" keeps its meaning.

Google cost (list prices checked Oct 24). Free amounts are per month and count page views, not businesses. Rating and review count: 1,000 free, then $20 per 1,000. Reviews: 1,000 free, then $25 per 1,000. Photos: 1,000 free, then $7 per 1,000 each. Example: 10,000 box openings a month with 3 photos each is about $425. Tap-to-load and a 3-photo limit keep this tied to real interest.

Founding Critics, now in the pilot. An invite-only group of 10–25 Bay Area people you pick, each with a critic badge and profile. Critics pay for their own meals by default, and those reviews count normally. Hosted (free or discounted) visits get a visible "Hosted visit" label and don't count toward FreshScore. No one is rewarded for a positive review, and restaurants can't preview or approve a critic's review. The full marketplace, where restaurants invite and host critics, comes later.

Effect on the estimate: directory import 15–25 h, Google box 10–15 h and Founding Critics 25–40 h add about 50–80 h. Pilot total ≈ 355–570 h, likely 11–14 weeks. Hosting moves to Cloudflare (Workers, D1 database, R2 for photos), the same setup as the CCA portal, in place of Vercel/Supabase. Both versions of the concept are in the clickable concept, tabs 5 and 6.

What I verified (primary sources, Oct 24, 2026)

Verified third-party facts and what they mean for Rating Bee
TopicWhat the source saysWhat it means for Rating Bee
Clover Smart ReceiptsAn app sets one receipt text and one URL. Clover prints the URL as a QR code at the bottom of paper receipts and adds ?m=merchant&o=order&p=payment. Changes take up to 10 hours to reach devices. The app name prints on the receipt.Every receipt gets a QR code tied to a real order with no staff action, which is the ideal "no cherry-picking" invitation. The link isn't a secret, so the server must check every order with Clover's API (paid, not refunded, recent, used once). Name the app "Rating Bee".
Clover private appsA private app isn't listed in the App Market and is shared by a direct link. It still needs an approved production developer account and app approval (functional video and description).The pilot doesn't need a public listing, but it does need Clover's approval. Apply in week 1.
Clover billing"All app fees … must be implemented within the Fiserv or Clover platforms. You receive 70%."A $39 plan sold to a Clover merchant through the app may net about $27. Ask Clover Developer Relations whether web-only premium features can be billed through Stripe.
ToastPartner integrations need a formal application and certification. Separately, a restaurant can buy self-service "standard API access" (read-only) from the Toast Shop.Full Toast partnership is a later-stage effort. A pilot Toast restaurant might use standard access for Receipt Match. Confirm Toast's terms allow sharing those credentials.
SquareEach payment record carries a short receipt_number, the order, the location and the total.Receipt Match can work on Square: receipt number + total + time window, checked against the Payments API. No per-receipt QR printing is assumed.
Google PlacesPlace IDs may be stored indefinitely. Other content can't be cached or stored except where allowed, and needs Google attribution. "IDs only" Text Search and Place Details are free without limit. Place Details Essentials: 10,000 free/month, then $5 per 1,000. Pro: 5,000 free, then $17. Ratings and reviews (Enterprise + Atmosphere): 1,000 free, then $25.Store only the Place ID. Updated Oct 24: show Google's rating, reviews and photos live in a separate, credited "On Google" box that is never part of FreshScore (see "Added October 24").
Open place dataFoursquare Open Source Places is published under Apache 2.0.A free, legally reusable starting list of East Bay restaurants (verify each before showing it).
FTC rule, 16 CFR Part 465 (Aug 2024)§465.4: no compensation conditioned on a review's sentiment. §465.5: insider reviews need disclosure. §465.7: no groundless threats to remove reviews, and no hiding reviews by rating while implying all are shown (neutral, equally applied rules are allowed).This shapes the Resolution Center, staff self-reviews and moderation (see the trust section). Moderation must be sentiment-neutral and documented.
Your current domainratingbee.com is a WordPress "Rating Bee Local SEO" site on the shared Hostinger plan that had the October malware cleanup.Host the platform separately on managed cloud. Don't put customer data on the shared WordPress account.

Recommended changes to the plan

  1. Three verification levels, shown on every review: "Receipt verified" (POS-confirmed automatically), "Business confirmed" (owner confirmed a manual invitation or receipt) and "Unverified". Only the first two count toward FreshScore. Show "how reviews were collected" on every profile.
  2. Lock the FreshScore formula now and publish it (proposed formula below, and you can try it in the prototype). Fix one contradiction in the plan: reviews older than 36 months can't stop counting toward a "current" score that only uses 12 months anyway. The 36-month rule really affects the all-time rating. Pick one: keep "all-time" truly all-time (my recommendation; the archive is only a display tab), or rename it "3-year rating".
  3. One person, one current vote: FreshScore uses each customer's latest verified review of a business. A return visit is a new review, which is a natural second chance.
  4. Every review waits the same short hold (for example 24 hours for fraud checks), whatever its stars. The business is notified of all reviews the same way. Never hold back only negative reviews.
  5. Sign-in without passwords: email magic link at first, phone only for higher reviewer levels. This avoids SMS registration fees and delays in the pilot.
  6. No native apps in year one. A fast mobile website covers scan → review in under 60 seconds.
  7. Add a website badge/widget to the free or paid tier. It's the one thing every restaurant can use on day one, it brings traffic back to Rating Bee, and it fits your web-design client base. (Google won't show star snippets for a business's own reviews of itself, so sell the badge as trust, not SEO.)
  8. Move sponsored placements, coupons and promotions from Stage 5 to Stage 9. Start Stage 5 with reputation features.
  9. Set targets by channel. A QR code at the bottom of a receipt will convert at a much lower rate than an invitation handed over with a request. Track "receipts printed → scans → completed reviews" separately from hand-delivered invitations. A single 10% target will mislead you.
  10. Clear the names before printing stickers: run a trademark search on "Rating Bee" and "FreshScore" (food and review marks crowd the "fresh" space).
  11. Legal basics before public launch: Terms, Content Guidelines (the rules every removal cites), a Privacy Policy, a takedown/appeal process, and a California-licensed attorney's review. Use them in every sales conversation, because Yelp-style "pay us or else" accusations are the main reputational risk for this business model.
  12. Keep sales and moderation separate from day one, even if you're both people for now: a written rule that subscription status is never visible in moderation tools.

Proposed FreshScore (transparent and hard to game)

FreshScore = (5 × 3.5 + Σ weight × stars) ÷ (5 + Σ weight)

  • Counts only Receipt-verified and Business-confirmed reviews from the last 12 months, using each customer's latest review. Hosted/critic reviews are excluded.
  • Weight 1.0 for reviews 0–6 months old and 0.5 for 6–12 months. That's simple enough to explain on a sticker.
  • The "5 × 3.5" acts like five neutral starting votes. A new place with three 5-star reviews shows 4.25, not 5.0, so tiny samples can't top the rankings.
  • No score is shown until a business has 5 counted reviews ("New on Rating Bee · 3 verified reviews").
  • The profile always shows: FreshScore (12 months), all-time rating, total reviews, verified reviews, and how reviews were collected.

Second Chances: the Resolution Center rules

  1. The customer's review publishes on the normal schedule. Nothing waits on the business.
  2. On a 1–3 star review, the customer can choose "Let the business contact me". Only then does the business see a private way to reach them.
  3. The business can reply publicly and/or privately. An offer (refund, visit) must be unconditional. The platform shows: "Offers can't depend on changing your review."
  4. The customer, and only the customer, marks the case "Resolved" or "Not resolved" and may post an update. The original stays visible under "Original review".
  5. FreshScore uses the customer's current rating. The profile shows a public "resolution rate". This is your differentiator: it rewards fixing problems, not hiding them.
  6. Any message asking a customer to change or remove a review is reportable and can lead to suspension.

Q1–3, Q11: engineering hours, calendar time and what runs in parallel

Hours are for an experienced full-stack developer working with a specification, including testing. Calendar times assume about 30 focused hours a week from one builder, plus your reviews. Outside approvals are listed separately and are not promises.

Revised scope and estimates by category
Work itemCategoryYour estimate (h)My estimate (h)Notes
Stage 1: spec, schema, policies, clickable concept1 · First pilot40–7030–45Partly done with this review and the attached prototype.
Stage 2: core platform (profiles, search, sign-in, reviews + photos, labels, FreshScore, responses, Resolution Center, claiming, admin, audit log, invitations)1 · First pilot120–200150–230Slightly higher: ownership verification, moderation/appeals and the audit trail are where review sites usually get underestimated.
Receipt Match (sticker QR + receipt number/total, owner one-tap confirm)1 · First pilot—25–40New. Unblocks the pilot for any POS.
Stage 3: Clover smart receipts + order validation, refunds, disconnect1 · First pilot60–12050–90Smaller than feared: the QR is a Clover setting, and the work is OAuth, order checks and webhooks.
Stage 4: pilot tooling (metrics dashboard, onboarding kit, sticker/print files) + support1 · First pilot50–9040–70Plus your time recruiting restaurants.
Stage 5a: Stripe plans, permissions, billing history, reputation reports, badge widget, alerts2 · First paying90–15070–110Coupons, announcements and sponsored spots moved to growth.
Stage 5b: coupons, promotions, announcements, sponsored labeling3 · Growth40–60Only valuable once consumer traffic exists.
Stage 6: reviewer levels, profiles, collections, privacy3 · Growth80–14060–100Followers and the ambassador page move to optional.
Stage 9: city/category pages, filters, sitemap, structured data, analytics3 · Growth70–12060–100Build pages only where real reviews exist.
Stage 8: Square full integration (OAuth, matching, digital invites, listing)3 · Growth100–22060–110Receipt Match does most of the groundwork.
Stage 8: Toast partner integration3 · Growth100–220100–180Only after Toast accepts the partner application.
Stage 7: Invite-a-Critic marketplace4 · Optional80–13070–110After paid demand is proven.
Native iOS/Android apps, followers, comparison pages, ad network, new categories4 · Optional—300+Defer until there are paying customers and repeat consumer visits.
Required for first pilot
295–475 h · minimum 6 weeks, likely 9–12 weeks to five live restaurants
Required for first paying customers
+70–110 h · 3–4 weeks, built during the pilot
Required for growth
+320–550 h (including Square and Toast) · months 4–9
Optional future
370+ h · after month 9 and only on demand

Can run at the same time

Q4: outside dependencies

Outside dependencies and how to reduce the risk
DependencyBlocksHow to reduce the risk
Clover developer account + private app approvalAutomatic receipt QRApply in week 1; pilot on Receipt Match until approved. Clover doesn't publish an approval timeline, so budget 2–6 weeks (my assumption).
Clover billing rule (70% share)Pricing for Clover merchantsWritten answer from Clover Developer Relations before Stage 5.
Toast partner programToast automationApply early. Use standard API access or owner confirmation for Toast pilot restaurants.
Square developer + (later) App MarketplaceSquare automation and listingReceipt Match first; list later.
Stripe accountPaid plansYou already run Stripe for wdm-portal, so open a separate Rating Bee account.
Email sender domain (SPF/DKIM/DMARC)Sign-in links and alertsSet up in week 1 on a mail subdomain.
Attorney review; trademark searchPublic launch and sticker printingStart in week 1.

Q5: technology. Keep your stack, with three adjustments

  • Keep: Next.js + TypeScript, PostgreSQL + PostGIS, Stripe, managed auth, object storage. You already run Next.js + Supabase + Stripe + Resend in production (wdm-portal), so I recommend Supabase (Postgres, PostGIS, auth, storage and row-level security in one) on Vercel, with Resend for email and Sentry for errors.
  • Not Cloudflare D1 (used for the CCA portal) for this project: it's SQLite and has no PostGIS for "restaurants near me".
  • Adjustment 1: treat reviews as an append-only history (every edit is a new version, every moderation action is a logged event). That makes "auditable" and "the original stays" automatic.
  • Adjustment 2: one "verification adapter" interface (verifyEvidence(location, evidence) → verified | confirmed | rejected) with Clover, Square, Toast and Manual behind it. New POS systems plug in without touching reviews or scoring.
  • Adjustment 3: store the minimum transaction evidence (POS name, merchant/location, order and payment IDs, amount, time, status). Never store card data, and never store customer phone or email from the POS.
Core data model (first draft)

merchants → locations (PostGIS point, hours, category, google_place_id) · pos_connections (adapter, encrypted tokens, status) · evidence (location, adapter, external order/payment id, amount, time, status) · invitations (token hash, location, channel, expires, used_at) · users (role: consumer/owner/critic/admin; level) · reviews (location, user, evidence, verification level, hosted flag) · review_versions (stars, text, photos, created_at, reason) · responses · resolution_cases (opted_in, status set by customer) · moderation_actions (policy clause, actor, appeal) · audit_log · score_snapshots (daily FreshScore per location) · subscriptions (Stripe or Clover).

Q6–8: monthly operating costs (estimates)

Assumes roughly 50 / 500 / 5,000 reviews a month and modest photo use. Prices are list prices checked Oct 24, 2026, except Supabase and Sentry (which I couldn't confirm today) and SMS volume (my assumption). People costs (moderation, support, sales) aren't included and will be larger than the software.

Estimated monthly software cost by number of active business listings
Item100 listings1,000 listings10,000 listings
Web hosting (Vercel Pro $20 + usage)$20$20–60$150–500
Database, auth, storage (Supabase Pro + compute)$25–35$60–150$300–800
Photo storage (R2 $0.015/GB, no egress fees)$0–1$1–5$15–60
Email (Resend: free 3k/mo; $20 for 50k)$0–20$20$90–200
SMS, if used (Twilio $0.0083/segment + 10DLC fees)$0$20–80$200–800
Monitoring/uptime (Sentry + uptime check)$0$26–50$80–300
Google Places (IDs only + Essentials in free tier)$0$0–50$50–500
Domain, backups, misc$5–10$10–30$50–150
Total software≈ $50–90≈ $160–450≈ $950–3,300

Q7, API costs by volume: if Rating Bee keeps its own directory, a business search costs almost nothing (your own database). Calling Google on every search is what gets expensive: Text Search Pro is $32 per 1,000 after 5,000 free a month, so 100,000 Google-powered searches would be about $3,000/month. Store the Place ID, show your own data, and call Google only for "Directions". Pay-per-use costs: Stripe 2.9% + 30¢ per charge plus 0.7% Billing (about $1.40 on a $29 plan). Clover-billed plans: you keep 70%. Window stickers and printing are a separate marketing cost.

Q9: security, app review and production testing

  • Clover Dev Kit device (from Clover's developer store) to prove a printed receipt end to end, plus a sandbox test merchant.
  • A functional demo video for Clover's app review (about 1 day).
  • Before the public launch: an outside security review or penetration test of sign-in, invitations and the admin area (a budget line in the low thousands; get quotes).
  • Attorney review of Terms, Content Guidelines and Privacy; consider media/cyber liability insurance.
  • Fraud checks built in: one review per order or payment, invitation expiry, rate limits per device/IP (stored hashed), blocking owners/staff from reviewing their own business, and alerts for unusual bursts of reviews.

Q10–12: ways to save, what to defer, and the shortest path to five restaurants

Ways to save or go faster

  • Receipt Match instead of waiting for POS approvals.
  • Reuse the wdm-portal stack and patterns (Stripe, Supabase, Resend).
  • Foursquare open data + owner claims instead of paid listing data.
  • Email sign-in only in the pilot (no SMS).
  • Recruit from your existing ~210 business clients and their referrals.
  • Pick pilot restaurants on Clover first.

Defer until there are paying customers

  • Native apps, followers, ambassador page
  • Invite-a-Critic marketplace
  • Sponsored placements, ads, coupons
  • Toast partner build, public App Market listings
  • Comparison pages, cities beyond the pilot
Shortest realistic path to five live restaurants
WeekBuildYou (business side)
1Final spec, repo, database, sign-in, deploy pipelineDecide the open questions below; apply to Clover/Square/Toast; trademark search; line up 5–8 restaurants (Clover first)
2–3Profiles, review flow, verification labels, FreshScore, owner dashboard, responsesAttorney starts on Terms/Guidelines/Privacy; sticker design
4Receipt Match, owner confirm, Resolution Center, admin moderation + audit logSign pilot agreements; print stickers and table cards
5Clover sandbox order checks; fraud limits; pilot metrics dashboard; security passStaff walkthroughs (10 minutes per restaurant)
6Soft launch with 5 restaurants on Receipt MatchOn-site launch day at each restaurant
7–12Clover receipt QR when approved; fixes; Stripe plansWeekly owner check-ins; customer interviews; first pricing conversations

Decisions I need from you

  1. All-time rating: truly all-time with the archive as a display tab (recommended), or a "3-year rating"?
  2. After a resolution, does FreshScore use the customer's updated rating (recommended, with the original kept visible) or always the original?
  3. Do unverified reviews appear on profiles (recommended: yes, labeled, not scored) or not at all?
  4. Pilot restaurants: do you already know 5 in Walnut Creek/Concord/Martinez/Benicia, and which POS they use?
  5. Decided: the new platform replaces ratingbee.com on Cloudflare and the old WordPress site is retired.
  6. The first 10–25 Founding Critics to invite.
  7. "On Google" box: tap-to-load (recommended) or always shown?
Biggest risks: (1) restaurants not handing out or keeping up invitations, so automatic receipt printing matters more than any feature; (2) few consumers in year one, so the restaurant must get value even with no consumer traffic; (3) any appearance of pay-to-play, so the separation rules and transparency reports must exist before the first sale.