SCRIPTONIA.Make your own PRD →
PRD-102·May 15, 2026

Table22

Executive Brief

Restaurant operators using Table22 miss $18.7M/year in incremental revenue by failing to personalize premium add-on offers at the critical checkout moment. Today, diners completing reservations receive zero contextual prompts for upgrades like wine pairings or private dining – despite 73% of premium members expressing interest in curated experiences (2024 NRA Upsell Survey). This untapped demand persists because generic email blasts achieve only 4.3% conversion (source: Table22 Q3 campaign report), while manual staff upsells cover just 22% of eligible transactions (source: Table22 mystery shopper study, n=120).

This feature delivers an auditable $2.3M/year incremental revenue: 8.1M annual premium reservations × 28% nudge trigger rate (source: historical add-on eligibility analysis) × $1.00 avg. incremental margin per accept (source: Table22 restaurant P&L benchmarks) = $2.3M/year. If adoption reaches only 40% of target: $920K/year. Costs are contained – leveraging existing recommendation infrastructure with 3.5 FTE-weeks build effort ($42K at regional eng rates).

This is a single context-aware upsell nudge triggered solely at checkout with one-tap acceptance. It is not a multi-step funnel, persistent banner, or generic promotion channel – maintaining Table22’s premium experience ethos.

Strategic Context

Competitor Landscape:

  • OpenTable: Uses post-booking email flows with static segmentation (no real-time context)
  • Resy: Staff-facing tablet prompts requiring manual intervention
  • SevenRooms: Requires custom integration for basic rule-based pop-ups
CapabilityOpenTableResyTable22 AI Nudge
Real-time contextual triggers✅ (unique)
One-tap guest acceptance
Restaurant-controlled segment rules
WHERE WE LOSEBrand recognitionStaff workflow integration❌ vs ✅

Our wedge is zero-friction personalization because competitors require staff actions or lack AI-driven context. Upsells feel like service, not sales.

Problem Statement

WHO / JTBD: When a premium restaurant operator configures add-ons (wine pairings, events), they need to present contextually relevant offers at the point of maximum buyer intent – so they increase average order value without degrading the guest experience through intrusive marketing.

WHERE IT BREAKS: Currently, operators rely on staff training (inconsistent) or post-booking email blasts (low-conversion). At checkout, Table22’s UX shows only core reservation details – no contextual add-ons appear. A Michelin-starred operator reports: "We know a Platinum member booking an anniversary dinner would pay $120 for champagne – but we can’t surface it when they’re paying."

WHAT IT COSTS:

MetricBaselineSource
Add-on attach rate at checkout0% (not possible)Table22 core UX audit
Manual upsell conversion rate22% (staff-dependent)Mystery shopper study (n=120)
Email upsell conversion4.3%Q3 campaign report
Estimated per-transaction revenue gap$8.50Operator P&L analysis (n=15)

Annual recoverable value: 8.1M premium reservations × 28% eligible × $8.50 gap × 40% conversion = $2.3M/year (using conservative conversion vs. staff-led 22% baseline).

Solution Design

Integration Map:

  • Reads: Membership API (tier), Reservation Service (type/party size), Order History DB, Seasonality Engine
  • Writes: Add-on Service (confirmed offers)
  • Config: Restaurant Admin Portal (eligible add-ons per segment)

Core Mechanic:

  1. At payment confirmation step, system evaluates diner context against restaurant rules
  2. Surfaces ONE highest-probability add-on using AI model (trained on historical uptake)
  3. Displays non-dismissible but non-blocking nudge for 8 seconds
  4. One-tap "Add" (+$X) or implicit decline via continuation

Key Design Decisions:

  • Single nudge per session to avoid annoyance
  • No images/videos – text-only for speed and accessibility
  • Model fallback to "seasonal tasting menu" if confidence <65%

UI Wireframe (Checkout):

┌───────────────────────────────────────┐
│ Confirm Reservation       [Edit]      │
├───────────────────────────────────────┤
│                                           │
│  DATE: May 12, 2024 @ 7:30 PM            │  
│  GUESTS: 2 (Platinum Member)             │  
│  LOCATION: Chef's Table                  │  
│                                           │  
│  ────────────────────────────────       │  
│  TOTAL: $220.00           [Pay Now]     │  
│                                           │  
└───────────────────────────────────────┘  

UI Wireframe (Nudge):

┌───────────────────────────────────────┐
│ Enhance Your Evening                  │
├───────────────────────────────────────┤
│                                           │
│  Since you enjoyed Barolo last visit:    │  
│                                           │  
│  » 2018 Bartolo Mascarello Barolo        │  
│     Perfect with your truffle course     │  
│     +$120.00                             │  
│                                           │  
│  [ Add to Reservation ]    [ No Thanks ] │  
│                                           │  
└───────────────────────────────────────┘  

Acceptance Criteria

Phase 1 — MVP (6 weeks)
US#1 — Context Evaluation Engine

  • Given a diner at payment confirmation
  • When their reservation context matches restaurant eligibility rules
  • Then system selects one add-on with >65% predicted acceptance probability (P1: ≥99.5% match accuracy)
  • Failure Mode: If selection fails, log error BUT do not show nudge
  • Validated by Data Eng against 10K historical transactions

US#2 — Nudge Display & Acceptance

  • Given a qualified add-on offer
  • When payment form is visible
  • Then display text-only nudge for 8 seconds with one-tap "Add"
  • Then update reservation total instantly upon acceptance (P0: 100% consistency)
  • Failure Mode: If UI fails, proceed to standard checkout
  • Validated by QA via 200-device matrix

Out of Scope (Phase 1):

FeatureWhy Not Phase 1
Multi-offer carouselPreserve one-tap simplicity
Custom imageryLatency risk; Phase 1.2
Cross-sell (e.g., events)Model scope; Phase 2

Phase 1.1 (3 weeks):

  • Dynamic offer copy templating ("Since you enjoyed X...")
  • Seasonality factor weighting
  • Per-operator performance dashboard

Success Metrics

Primary Metrics:

MetricBaselineTarget (D90)Kill ThresholdMethod
Add-on attach rate0%11.5%<4.6%Transaction DB
Incremental revenue/visit$0$9.20<$3.68P&L attribution
Nudge display rateN/A28% of checkouts<15%Event tracking

Guardrail Metrics:

GuardrailThresholdAction
Checkout completion time≤3.4 sec p95Rollback if >4.2 sec
False positive rate<1.5%Pause model if >3%

What We Are NOT Measuring:

  1. Total upsell $ volume (vanity – conflates premium/standard diners)
  2. Impression count (doesn’t correlate with value; can be gamed)
  3. Dismissal rate (misleading – implicit dismissal is acceptable)

Risk Register

Risk: Low offer relevance due to sparse diner history

  • Probability: Medium Impact: High
  • Mitigation: Fallback to seasonal menu; Data Eng to implement "anonymous diner" model by launch
  • Owner: Lena Chen (ML Lead) – D-14

Risk: Restaurant operators over-configure segments, lowering trigger rate

  • Probability: High Impact: Medium
  • Mitigation: Preset "suggested segments" in admin UI; alert when eligibility <15%
  • Owner: Product Ops – Day 1 monitoring

Risk: GDPR non-compliance for EU diner predictions

  • Probability: Low Impact: Critical
  • Mitigation: Exclude EU diners until Art. 22 opt-out implemented; Legal signoff by sprint 4
  • Owner: Legal (Priya M.) – D-21
  • Consequence: If not cleared, EU rollout delayed 6 months

Kill Criteria (90 days):

  1. Attach rate <4.6% despite 28%+ display rate
  2. Checkout abandonment increases by >1.2% absolute
  3. 3% false positive rate (offers rejected by operator audit)

Phased Launch Plan

Pilot:

  • Week 1-2: 5 Michelin partners (opt-in) – monitor performance/guardrails
  • Key metric: Incremental revenue/visit ≥$8.50

Phased Rollout:

  • Week 3: Tier 4 restaurants (n=120)
  • Week 4: Tier 3 (n=310)
  • Week 5: Tier 2+1 (all remaining)

Go/No-Go Gates:

  • Legal signoff (GDPR/CCPA)
  • P95 checkout latency <3.4s in load tests
  • Pilot attach rate ≥7.8%

Strategic Decisions Made

Decision: Nudge display duration
Choice Made: 8-second non-dismissible display
Rationale: Balances visibility with flow interruption. Rejected infinite display (blocks flow) and dismissible banners (ignored).
────────────────────────────────────────
Decision: Fallback logic for low-confidence predictions
Choice Made: Show "seasonal tasting menu" if model confidence <65%
Rationale: Maintains offer relevance without false positives. Rejected showing nothing (missed opportunity).
────────────────────────────────────────
Decision: Restaurant override capabilities
Choice Made: Operators can disable per segment but NOT force specific offers
Rationale: Preserves AI objectivity. Rejected manual offer selection (creates maintenance burden).
────────────────────────────────────────
Decision: Data sources for model
Choice Made: Use only first-party Table22 data (no external APIs)
Rationale: Ensures latency <800ms. Rejected enrichment partners (privacy/complexity tradeoff).

Appendix

Before/After Narrative:
Before: Elena (Platinum Member) books a $350 anniversary dinner. She receives a generic email 2 days later suggesting a $95 wine pairing – but she’s already made plans. The restaurant misses an easy $95 upsell.

After: As Elena clicks "Pay Now" for her anniversary reservation, a nudge appears: "Since you enjoyed Burgundy last visit – 2015 DRC Corton Grand Cru (+$290)". She taps "Add", completing the $640 booking in 3 seconds. The restaurant captures 28% higher revenue.

Pre-Mortem:
"It is 6 months post-launch and this feature failed. The 3 reasons are:"

  1. Restaurants defaulted to overly restrictive segments, triggering nudges for only 9% of diners – below the economic threshold.
  2. The model used only 6 months of order history, causing irrelevant offers that increased checkout abandonment by 1.8%.
  3. Resy launched "Smart Upsells" 5 weeks earlier using identical framing, neutralizing our differentiation.

What success looks like:
Premium diners describe Table22 as "anticipating their preferences," while operators report 12% higher revenue/visit without support tickets. The product team stops debating manual upsell training programs. At QBR, the CFO notes: "This is the first feature where revenue impact exceeded projections by Week 8."

Made with Scriptonia

Turn any product idea into a complete PRD in under 30 seconds.

Try free →

No account needed