@@ -29,27 +29,19 @@ const HALO =
2929//
3030// Rows and values are taken from the live "Compare plans" table
3131// (https://www.prisma.io/pricing, read 2026-07-29) so the structure matches
32- // what their users already know. Two items still need a ruling:
32+ // what their users already know.
3333//
34- // - BACKUPS is not in their live table at all. Starter/Pro/Business come from
35- // the approved V2 plan cards; Free's retention has never been supplied, so
36- // it is left as PENDING rather than guessed.
37- // - GLOBAL CACHE rows are published under "included with Prisma Postgres",
38- // but Gregory said Accelerate is being deprecated and should come off the
39- // page. Confirm whether the cache rows stay.
40- // - SUPPORT reads Community / Community / Standard / Premium on the live
41- // page, where Gregory's May notes said Community / Community / 24h / 2h.
42- // The live page wins here, as with every other figure.
34+ // Every cell carries a real figure — there are no placeholders. The four rows
35+ // that once read "TBC" (cache tag invalidations, cache purge requests, Free
36+ // backups, support tiers) were restored from the pre-rebrand pricing table at
37+ // apps/site/src/app/pricing/pricing-data.ts (commit 528ab05fc^), which is the
38+ // same live table this one was modelled on. If a figure genuinely moves, edit
39+ // it — don't reintroduce a placeholder, since the page has no legend
40+ // explaining one (that note was pulled on the client's instruction 2026-07-30).
4341//
44- // The reader-facing legend under this table ("TBC — awaiting confirmation…, an
45- // em dash means not included") was removed on the client's instruction
46- // (2026-07-30). It was half internal note anyway and shouldn't ship to Prisma's
47- // users. Consequence: nothing on the page now spells out the TBC-vs-em-dash
48- // distinction, so the badge's title tooltip is the only affordance left. The
49- // three open questions above are tracked here and in the project's open-items
50- // list — they are NOT resolved just because the note is gone.
51- const PENDING = "TBC" ;
52-
42+ // One open question remains, and it is about the group, not a value: Gregory
43+ // said Accelerate is being deprecated, so confirm whether the GLOBAL CACHE
44+ // rows belong on the page at all.
5345const YES = "yes" ;
5446
5547type Row = { label : string ; values : [ string , string , string , string ] } ;
@@ -183,16 +175,21 @@ const GROUPS: Group[] = [
183175 icon : Layers ,
184176 color : "text-prism-cyan-500" ,
185177 rows : [
186- // Live values are $0.0020 / $0.0010 per 1,000 and 5/5/10/20 purges per
187- // hour, but Gregory said Accelerate is being deprecated — so whether
188- // this group belongs on the page at all is unresolved. Placeholder .
178+ // Live-page values, restored from the pre-rebrand table
179+ // (apps/site/src/app/pricing/pricing-data.ts at 528ab05fc^). Free and
180+ // Starter get no tag invalidations at all, hence the em dash .
189181 {
190182 label : "Cache tag invalidations" ,
191- values : [ PENDING , PENDING , PENDING , PENDING ] ,
183+ values : [
184+ "—" ,
185+ "—" ,
186+ "$0.002 per 1,000, max 10,000 per day" ,
187+ "$0.001 per 1,000, max 100,000 per day" ,
188+ ] ,
192189 } ,
193190 {
194191 label : "Cache purge requests" ,
195- values : [ PENDING , PENDING , PENDING , PENDING ] ,
192+ values : [ "5 per hour" , "5 per hour" , "10 per hour" , "20 per hour" ] ,
196193 } ,
197194 ] ,
198195 } ,
@@ -205,10 +202,12 @@ const GROUPS: Group[] = [
205202 rows : [
206203 { label : "Query insights" , values : [ YES , YES , YES , YES ] } ,
207204 { label : "View and edit your data" , values : [ YES , YES , YES , YES ] } ,
205+ // Free has no backups: /postgres/database/backups says snapshots are a
206+ // Starter, Pro, and Business feature, so the em dash is the right cell.
208207 {
209208 label : "Backups" ,
210209 values : [
211- PENDING ,
210+ "—" ,
212211 "Daily, 7-day retention" ,
213212 "Daily, 7-day retention" ,
214213 "Daily, 30-day retention" ,
@@ -221,9 +220,13 @@ const GROUPS: Group[] = [
221220 icon : Shield ,
222221 color : "text-prism-red-500" ,
223222 rows : [
224- // live page: Community / Community / Standard / Premium
225- // Gregory (May): Community / Community / 24h / 2h — unresolved, so placeholder
226- { label : "Support" , values : [ PENDING , PENDING , PENDING , PENDING ] } ,
223+ // Live page: Community / Community / Standard / Premium. Gregory's May
224+ // notes said Community / Community / 24h / 2h; the live page wins, as
225+ // with every other figure in this table.
226+ {
227+ label : "Support" ,
228+ values : [ "Community" , "Community" , "Standard" , "Premium" ] ,
229+ } ,
227230 {
228231 label : "Compliance" ,
229232 values : [ "GDPR" , "GDPR" , "GDPR, HIPAA" , "GDPR, HIPAA, SOC 2, ISO 27001" ] ,
@@ -241,18 +244,6 @@ function Cell({ value, highlight }: { value: string; highlight: boolean }) {
241244 if ( value === YES ) {
242245 return < CheckBold className = "size-4 text-prism-cyan-500" aria-label = "Included" /> ;
243246 }
244- // A placeholder means "we have not been given this" — it must never read as
245- // "not included", which is what the em-dash means.
246- if ( value === PENDING ) {
247- return (
248- < span
249- title = "Awaiting confirmation from Prisma"
250- className = "inline-flex rounded border border-dashed border-black/20 px-1.5 py-0.5 text-xs font-medium text-muted-foreground/70"
251- >
252- { PENDING }
253- </ span >
254- ) ;
255- }
256247 return (
257248 < span
258249 className = { cn (
@@ -381,7 +372,7 @@ export function PricingSpecTable() {
381372 together, which keeps the comparison the table exists to make.
382373 The uniform-row collapse is what makes that affordable. Roughly
383374 half the rows are identical across all four plans (every
384- "Unlimited", every all-plans check, every four-way TBC ), so
375+ "Unlimited", every all-plans check, every flat per-unit price ), so
385376 those render as one line instead of a four-cell grid. Without it the pivot would be roughly twice as
386377 long for no added information — and it has the side effect of
387378 making the rows where plans actually DIFFER the visually
0 commit comments