Concept · 04Aligned columns

Table-inspired comparison block

Treats rate selection as a comparison task. Aligned columns expose attribute-level differences at a glance — the spreadsheet view of normalized inventory.

Hotel PDPRooms & Ratesimplied context · 764 px
Comparison table · sortable columns

King Room

1 King Bed · Sleeps 2
7 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 King BedCancellation feePay online$214
Advance Purchase 30d
1 King BedCancellation feePay online$218
Non-refundable · Breakfast
1 King BedBreakfastCancellation feePay at hotel$219
Loyalty Saver
1 King BedBreakfastFree cancellationPay online$228
Best Available RateEgencia Business rate
1 King BedFree cancellationPay online$239
Flex + Parking
1 King BedFree cancellationPay online$244
Flexible · Bed & BreakfastEgencia Business rate
1 King BedBreakfastFree cancellationPay at hotel$251

Queen Room

1 Queen Bed · Sleeps 2
5 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 Queen BedCancellation feePay online$209
Best Available Rate
1 Queen BedFree cancellationPay online$216
Non-refundable · Dinner
1 Queen BedBreakfast + DinnerCancellation feePay at hotel$219
Flex · Bed & BreakfastEgencia Business rate
1 Queen BedBreakfastFree cancellationPay at hotel$224
Loyalty Saver · Breakfast
1 Queen BedBreakfastFree cancellationPay online$231
State breakdown · 3 states
State 01 / 03Default sort
Comparison table · sortable columns

King Room

1 King Bed · Sleeps 2
7 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 King BedCancellation feePay online$214
Advance Purchase 30d
1 King BedCancellation feePay online$218
Non-refundable · Breakfast
1 King BedBreakfastCancellation feePay at hotel$219
Loyalty Saver
1 King BedBreakfastFree cancellationPay online$228
Best Available RateEgencia Business rate
1 King BedFree cancellationPay online$239
Flex + Parking
1 King BedFree cancellationPay online$244
Flexible · Bed & BreakfastEgencia Business rate
1 King BedBreakfastFree cancellationPay at hotel$251

Queen Room

1 Queen Bed · Sleeps 2
5 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 Queen BedCancellation feePay online$209
Best Available Rate
1 Queen BedFree cancellationPay online$216
Non-refundable · Dinner
1 Queen BedBreakfast + DinnerCancellation feePay at hotel$219
Flex · Bed & BreakfastEgencia Business rate
1 Queen BedBreakfastFree cancellationPay at hotel$224
Loyalty Saver · Breakfast
1 Queen BedBreakfastFree cancellationPay online$231
State 02 / 03Sorted by Price
Comparison table · sortable columns

King Room

1 King Bed · Sleeps 2
7 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 King BedCancellation feePay online$214
Advance Purchase 30d
1 King BedCancellation feePay online$218
Non-refundable · Breakfast
1 King BedBreakfastCancellation feePay at hotel$219
Loyalty Saver
1 King BedBreakfastFree cancellationPay online$228
Best Available RateEgencia Business rate
1 King BedFree cancellationPay online$239
Flex + Parking
1 King BedFree cancellationPay online$244
Flexible · Bed & BreakfastEgencia Business rate
1 King BedBreakfastFree cancellationPay at hotel$251

Queen Room

1 Queen Bed · Sleeps 2
5 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 Queen BedCancellation feePay online$209
Best Available Rate
1 Queen BedFree cancellationPay online$216
Non-refundable · Dinner
1 Queen BedBreakfast + DinnerCancellation feePay at hotel$219
Flex · Bed & BreakfastEgencia Business rate
1 Queen BedBreakfastFree cancellationPay at hotel$224
Loyalty Saver · Breakfast
1 Queen BedBreakfastFree cancellationPay online$231
State 03 / 03Sorted by Cancellation
Comparison table · sortable columns

King Room

1 King Bed · Sleeps 2
7 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 King BedCancellation feePay online$214
Advance Purchase 30d
1 King BedCancellation feePay online$218
Non-refundable · Breakfast
1 King BedBreakfastCancellation feePay at hotel$219
Loyalty Saver
1 King BedBreakfastFree cancellationPay online$228
Best Available RateEgencia Business rate
1 King BedFree cancellationPay online$239
Flex + Parking
1 King BedFree cancellationPay online$244
Flexible · Bed & BreakfastEgencia Business rate
1 King BedBreakfastFree cancellationPay at hotel$251

Queen Room

1 Queen Bed · Sleeps 2
5 rates · click headers to sort
BedPayAction
Advance Purchase 21d
1 Queen BedCancellation feePay online$209
Best Available Rate
1 Queen BedFree cancellationPay online$216
Non-refundable · Dinner
1 Queen BedBreakfast + DinnerCancellation feePay at hotel$219
Flex · Bed & BreakfastEgencia Business rate
1 Queen BedBreakfastFree cancellationPay at hotel$224
Loyalty Saver · Breakfast
1 Queen BedBreakfastFree cancellationPay online$231
Design review · breakdown
What this is
Each room type is a labelled table. Columns align Rate, Bed, Meals, Cancellation, Policy, Price, and Reserve so users can scan straight down a single attribute. Click any header to sort.
Why it works
Best-in-class for like-for-like comparison. Aligned columns expose subtle differences (e.g. one rate is non-refundable but $30 cheaper) that pill-based rows hide.
Best use case
B2B travel agents and corporate bookers who already know which attributes matter and want to compare them quickly.
Tradeoffs / risks
Feels dense / spreadsheet-like. Less forgiving of long rate-plan names or many attributes. Mobile-hostile (out of scope here). Less warm than card-based concepts.
UX notes · scannability · normalization · booking confidence · provider transparency
Highest scannability across attributes. Normalization shown via the per-room table grouping; rate-plan transparency baked into the Rate column. Booking confidence comes from the explicit policy column — no hidden pills.
Hand off · Claude Code prompt

Paste this into Claude Code to regenerate this concept as a standalone interactive wireframe component.

You are building one self-contained, fully interactive wireframe-style React
component that demonstrates a single hotel "Room Normalizer" concept.

# Concept
- Number: 4 of 14
- Section: normalizer
- Name: Table-inspired comparison block
- Tagline: Aligned columns
- One-line summary: Per-room table with aligned, sortable columns: Rate, Bed, Meals, Cancellation, Policy, Price, Reserve.

# Framing
Treats rate selection as a comparison task. Aligned columns expose attribute-level differences at a glance — the spreadsheet view of normalized inventory.

# What this is
Each room type is a labelled table. Columns align Rate, Bed, Meals, Cancellation, Policy, Price, and Reserve so users can scan straight down a single attribute. Click any header to sort.

# Why it works
Best-in-class for like-for-like comparison. Aligned columns expose subtle differences (e.g. one rate is non-refundable but $30 cheaper) that pill-based rows hide.

# Best use case
B2B travel agents and corporate bookers who already know which attributes matter and want to compare them quickly.

# Tradeoffs / risks
Feels dense / spreadsheet-like. Less forgiving of long rate-plan names or many attributes. Mobile-hostile (out of scope here). Less warm than card-based concepts.

# UX notes (scannability · normalization · booking confidence · provider transparency)
Highest scannability across attributes. Normalization shown via the per-room table grouping; rate-plan transparency baked into the Rate column. Booking confidence comes from the explicit policy column — no hidden pills.

# Visual + interaction requirements
- Wireframe fidelity: monochrome, system UI, no brand color. Use Tailwind
  utility classes only. No images. Use simple borders, muted backgrounds,
  and mono labels for meta text (uppercase, tracking-widest, text-[10px]).
- Canvas width: 764px, centered. Internal content respects that frame.
- Context: this lives inside a hotel PDP "Rooms & Rates" section. Assume
  3 normalized room types (King, Queen, Double Queen) with 5–8 bookable
  rates each. Invent realistic mock data inline — rate label, bed, meals
  (room only / breakfast included), cancellation (free until N / non-refundable),
  payment (pay now / pay at hotel), price per night.
- Fully interactive: every control the concept implies must work in-browser
  with React state only — no backend, no router. Examples: accordions expand,
  tabs filter, sort headers sort, "Show N more" reveals rows, builder toggles
  recompute price live, sticky CTAs update with selection.
- Accessibility: real <button> elements, keyboard focus rings, aria-expanded
  on disclosure controls, aria-pressed on toggles.

# Deliverable
- A single default-exported React component file using TypeScript + Tailwind.
- No external UI library. Inline any small primitives you need.
- Include the mock data inline at the top of the file.
- File should run as-is when dropped into a Vite + React + Tailwind project.

Build only this concept. Do not generate the other 13.