| # | Segment | What to drop |
|---|---|---|
| 1 | Teams run themselves: invite guests, plan the month | Teams and Plan (4 min). Say one sentence about it instead. |
| 2 | Pricing tab: rebalance the week, model the members | Scenario modeler only (2 min). Keep the day-weight rebalance. |
| 3 | Book on the floor plan, then show the cancel rules | Date-range and cancel dialog (2 min). Keep the single-day booking and confirmation. |
| 4 | New space: from a floor plan to a live listing | Step 1 address search and the marker edit (2 min). Never cut the upload itself unless detection has failed. |
Name the problem in the room's own numbers before showing any software.
Three concepts they need before the demo makes sense: listing issues points, agreement carries points, booking spends points.
Show what 'done' looks like before building one live: a property with a live listing, points issued, contracted meter, booked today, margin.
The hero moment. A PDF floor plan becomes counted, priced, bookable inventory in under ten minutes, with the host reviewing every count.
Show that pricing follows demand without hourly complexity, and that the host can model the floor's economics before signing anyone.
Show how a signed deal becomes an enforceable entitlement, and hand the baton to the member side.
Prove the entitlement the host recorded is exactly what the member sees, and that the member experience is self-serve.
The second hero moment: pick a day, pick the desk on the drawing, spend points, see the refund timeline.
Show the admin tier so the host hears 'I never have to administer their people'.
Close the loop. The booking made two minutes ago is already on the host's books, attributed to a company, with points spent.
Convert. Leave with a named building, a named contact and a date.
| When | Do | Owner |
|---|---|---|
| T-7 days | Confirm which hostname is live. The script assumes www.flexhqs.com (launch group F). If F has not shipped, run on hqlite.tonymeekes.ca and clear Cloudflare Access on the demo laptop first; the room never sees the URL bar for long, but the deck's last slide must match. | Tony |
| T-7 days | Create a dedicated demo host account by Super Admin invite (invite-only, ADR-056). Do not use qahost2 or any account whose data carries SIM- or QA- prefixes; real brokers will read the screen. | Tony / Matt |
| T-7 days | Stage the demo property with a realistic name and address and ONE pre-accepted, published fallback listing (this is what Portfolio shows in segment 3 and what you switch to if detection fails in segment 4). Add photos. Leave the Pricing tab at default day weights. | Tony |
| T-7 days | Stage one member company on the fallback listing (agreement accepted, Company Admin created) with two or three historic bookings so the Used meter, Bookings list and Booked today are not empty. | Tony |
| T-2 days | Rehearse the exact floor plan PDF through New space on the live hostname. Record detected counts. On Sept 14 detection returned 0/0 on a file that had read 26/2 in August; if it does that again, the demo uses the fallback listing and segment 4 becomes a review-workbench walkthrough on the already-accepted plan. | Tony |
| T-2 days | Run the whole script once with a timer, second browser profile included. Reset the day weights and delete the rehearsal listing and agreement afterwards. | Tony |
| T-1 day | Confirm the deck's numbers still match the product: 0.8 / 1.0 / 1.3 / 1.1 / 0.8 defaults, 1.5x to 2.5x office premium, 20 business day horizon, 7 / 3 day refund tiers. | Tony |
| T-1 hour | Sign in to the host account in the main Chrome profile; open a clean second profile or incognito window, signed out, for the member. Cognito sessions last 30 days now, so no re-login is expected mid-demo. | Tony |
| T-1 hour | Browser zoom 125%, bookmarks bar hidden, notifications off, only the deck and two browser windows open. Have the floor plan PDF on the desktop and the invite link target (a notes window) ready. | Tony |
| T-1 hour | Do not open /superadmin or the Danger zone at any point. Nothing on those pages is for a prospect. | Tony |
| After | Reset day weights to defaults, revoke the live-created invite if the demo company was fictional, and note the occupancy number the host gave you in the follow-up email. | Tony |
| Quantity | Value | How |
|---|---|---|
| Day weights (default) | Mon 0.8 · Tue 1.0 · Wed 1.3 · Thu 1.1 · Fri 0.8 | Sum 5.0; host can rebalance per listing, sum must stay 5.0 |
| Office premium | clamp(1 + (workstations / offices) / 8, 1.5, 2.5) | 12 WS / 2 OFF → 1.75; frozen onto each agreement at activation |
| Points a listing issues | floor((WS + OFF × premium) × 1.2) × 20 | 12 / 2 → floor(15.5 × 1.2) = 18 seats → 360 points |
| Member bucket | cap = contracted points; +25% every Monday; clamped at cap | 120 points → +30 each Monday, forfeits above 120 |
| Seat-equivalents | contracted points / 20 | 120 points = 6 seats for a 20 business day month |
| Booking horizon | 20 business days | Beyond it: BOOKING_HORIZON_EXCEEDED |
| Refund tiers | 7 days: anyone · 3 days: admins only · inside 3: host override only | Whole calendar days to midnight where the listing is |
| Company daily cap | 80% of the floor's physical seats | Stops one company taking the whole floor |
Pulled from the Activity List. Say "not in this version" and note which ones the room cares about; that list is the pilot's roadmap input.
| ID | Activity | Status | Note |
|---|---|---|---|
MA-4.1 | Create groups | Not testable | NOT BUILT |
MA-4.2 | Set up group restrictions (certain days or periods) | Not testable | NOT BUILT |
H-3.8 | Multiple floors per listing | Not testable | NOT BUILT |
H-6.5 | Statutory holiday auto-defaults | Not testable | NOT BUILT |
H-6.6 | Min / max stay, blackout periods, lead time | Not testable | NOT BUILT |
H-8.10 | Amend an active contract | Not testable | NOT BUILT |
H-9.5 | Book or cancel on a member's behalf | Not testable | NOT BUILT - out of scope |
G-5.4 | Edit a booking | Testable with caveat | NOT BUILT - cancel and rebook |
MA-5.7 | Edit an existing booking | Not testable | NOT BUILT - cancel and rebook |
H-10.9 | Daily on-site occupant list | Not testable | NOT BUILT |
H-10.10 | Churn / declining-usage alert | Not testable | NOT BUILT |
PA-2.3 | Send invite to host | Not testable | NOT BUILT |
| Role | Activities | Built | Shown in demo | Coverage |
|---|---|---|---|---|
| HQ Lite (Platform Admin) | 27 | 11 | 2 (0 built) | 18% of built |
| Host | 70 | 52 | 39 (37 built) | 75% of built |
| Member Admin | 43 | 29 | 14 (12 built) | 48% of built |
| Member (Guest) | 37 | 33 | 17 (17 built) | 52% of built |
| ID | Journey | Touched | Known blockers (Sept 8 register) |
|---|---|---|---|
J1 | Host cold start to live listing Host | 18 of [{'step': 1, 'id': 'H-1.1', 'activity': 'Sign up as host', 'status': 'Built'}, {'step': 2, 'id': 'H-1.2', 'activity': 'Log in (incl. MFA challenge)', 'status': 'Built'}, {'step': 3, 'id': 'H-2.1', 'activity': 'Enter property info + address', 'status': 'Built', 'note': 'PNG/JPG silently fails in prod'}, {'step': 4, 'id': 'H-2.2', 'activity': 'Select building amenities (+ custom)', 'status': 'Built', 'note': 'Creates bookable units'}, {'step': 5, 'id': 'H-3.1', 'activity': 'Upload map (PDF works; PNG/JPG fails in prod)', 'status': 'Built'}, {'step': 6, 'id': 'H-3.2', 'activity': 'Monitor extraction job status', 'status': 'Built', 'note': 'Multiplier read-only'}, {'step': 7, 'id': 'H-3.3', 'activity': 'Adjust / refine / change map (add/remove object markers, zoom)', 'status': 'Built'}, {'step': 8, 'id': 'H-3.4', 'activity': 'Save draft review', 'status': 'Built', 'note': 'No gate on missing floor plan - dead-end risk'}, {'step': 9, 'id': 'H-3.5', 'activity': 'Accept floor map (materializes bookable units)', 'status': 'Built'}, {'step': 10, 'id': 'H-3.6', 'activity': 'View annotated preview image', 'status': 'Built'}, {'step': 11, 'id': 'H-4.1', 'activity': 'Enter name, description, listing amenities', 'status': 'Built'}, {'step': 12, 'id': 'H-4.2', 'activity': 'Enter ownership type (head lessee / owner)', 'status': 'Built'}, {'step': 13, 'id': 'H-4.3', 'activity': 'Enter remaining lease term (or target duration if owned)', 'status': 'Built'}, {'step': 14, 'id': 'H-4.4', 'activity': 'Enter lease / ownership costs (gross rent, base rent, opex, utilities)', 'status': 'Built'}, {'step': 15, 'id': 'H-4.5', 'activity': 'Enter square footage of offering', 'status': 'Built'}, {'step': 16, 'id': 'H-4.6', 'activity': 'Enter physical seat count', 'status': 'Built'}, {'step': 17, 'id': 'H-5.1', 'activity': 'View physical seats vs bookable seats (1.2x uplift)', 'status': 'Built'}, {'step': 18, 'id': 'H-5.2', 'activity': 'View daily and total points pool', 'status': 'Built'}, {'step': 19, 'id': 'H-5.3', 'activity': 'Attempt to edit multiplier', 'status': 'Testable with caveat'}, {'step': 20, 'id': 'H-6.1', 'activity': 'Set open days (Mon-Sun toggles)', 'status': 'Built'}, {'step': 21, 'id': 'H-6.2', 'activity': 'Set open / close times', 'status': 'Built'}, {'step': 22, 'id': 'H-6.3', 'activity': 'Add closed date with reason', 'status': 'Built'}, {'step': 23, 'id': 'H-4.9', 'activity': 'Set status: DRAFT / ACTIVE / INACTIVE / ARCHIVED', 'status': 'Built'}] steps | PNG/JPG fails; accept on 0 units (3.1); Listing Info tab freeze (3.3); no floor-plan gate on ACTIVE. |
J2 | Host plans and sells space Host | 12 of [{'step': 1, 'id': 'H-7.1', 'activity': 'Add hypothetical member rows by seat count', 'status': 'Built'}, {'step': 2, 'id': 'H-7.2', 'activity': 'Review derived % share and rate per seat', 'status': 'Built'}, {'step': 3, 'id': 'H-7.3', 'activity': 'Review totals and unallocated capacity', 'status': 'Built'}, {'step': 4, 'id': 'H-7.4', 'activity': 'Confirm scenario autosaves and reloads', 'status': 'Built'}, {'step': 5, 'id': 'H-7.6', 'activity': 'Review monthly revenue and net margin vs head lease', 'status': 'Built', 'note': 'Capacity locks at first contract'}, {'step': 6, 'id': 'H-8.1', 'activity': 'Set up new member: company, contact, term, monthly fee, % of space', 'status': 'Built'}, {'step': 7, 'id': 'H-8.2', 'activity': 'Review contract exhibit (seats obtainable per weekday)', 'status': 'Built'}, {'step': 8, 'id': 'H-8.3', 'activity': 'Select included services', 'status': 'Built'}, {'step': 9, 'id': 'H-8.5', 'activity': 'Invite new member / copy invite link', 'status': 'Built'}, {'step': 10, 'id': 'H-8.6', 'activity': 'Confirm contract auto-activates on invite acceptance', 'status': 'Built'}, {'step': 11, 'id': 'H-5.4', 'activity': 'Confirm capacity locks once first contract exists', 'status': 'Built'}, {'step': 12, 'id': 'H-8.9', 'activity': 'Set payment status (pending / paid / overdue)', 'status': 'Built'}] steps | Legacy listings dead-ended from agreement (3.2). |
J3 | Member Admin onboards a team Member Admin | 11 of [{'step': 1, 'id': 'MA-1.1', 'activity': 'Receive agreement invite email / link', 'status': 'Built'}, {'step': 2, 'id': 'MA-1.2', 'activity': 'Review agreement summary + exhibit before accepting', 'status': 'Built'}, {'step': 3, 'id': 'MA-1.3', 'activity': 'Accept invite and create account (becomes Member Super Admin)', 'status': 'Built'}, {'step': 4, 'id': 'MA-2.2', 'activity': 'Edit billing address', 'status': 'Built'}, {'step': 5, 'id': 'MA-2.3', 'activity': 'Edit operational contact', 'status': 'Built', 'note': 'No groups/departments exist'}, {'step': 6, 'id': 'MA-2.4', 'activity': 'Edit on-site contact', 'status': 'Built'}, {'step': 7, 'id': 'MA-3.1', 'activity': 'Upload / enter contact info (name, email)', 'status': 'Built'}, {'step': 8, 'id': 'MA-3.2', 'activity': 'Send invite (email + copyable magic link)', 'status': 'Built'}, {'step': 9, 'id': 'MA-3.5', 'activity': 'Activate member (on invite acceptance)', 'status': 'Built'}, {'step': 10, 'id': 'MA-3.8', 'activity': 'Set per-member points / seat quota', 'status': 'Built'}, {'step': 11, 'id': 'MA-4.3', 'activity': 'Grant company-level listing access', 'status': 'Testable with caveat'}, {'step': 12, 'id': 'MA-4.4', 'activity': 'Scope listing access per individual guest', 'status': 'Testable with caveat'}, {'step': 13, 'id': 'MA-6.1', 'activity': 'View points balance, cap and next accrual date', 'status': 'Built'}, {'step': 14, 'id': 'MA-6.2', 'activity': 'Plan the 20-business-day calendar (workstation / office per day)', 'status': 'Built'}, {'step': 15, 'id': 'MA-6.3', 'activity': 'Review weekly and daily point totals vs balance available', 'status': 'Built'}, {'step': 16, 'id': 'MA-6.4', 'activity': 'See over-budget warning', 'status': 'Built'}] steps | No groups exist. |
J4 | Guest books, changes plan, cancels Member (Guest) | 9 of [{'step': 1, 'id': 'G-1.1', 'activity': 'Accept guest invite via magic link', 'status': 'Built'}, {'step': 2, 'id': 'G-1.2', 'activity': 'Create account, log in (incl. MFA)', 'status': 'Built'}, {'step': 3, 'id': 'G-2.1', 'activity': 'Browse active listings (scoped by company + per-guest access)', 'status': 'Built'}, {'step': 4, 'id': 'G-2.2', 'activity': 'View listing detail, amenities and floor plan', 'status': 'Built'}, {'step': 5, 'id': 'G-3.1', 'activity': 'Specific date', 'status': 'Built', 'note': 'No contract = rejected only at submit'}, {'step': 6, 'id': 'G-3.2', 'activity': 'Date range', 'status': 'Built', 'note': 'Not built - must cancel and rebook'}, {'step': 7, 'id': 'G-3.3', 'activity': 'Select unit from the unit list', 'status': 'Built', 'note': 'Refund only if >24h out'}, {'step': 8, 'id': 'G-3.4', 'activity': 'Select seat visually on the floor plan (click, drag, shift multi-select)', 'status': 'Built'}, {'step': 9, 'id': 'G-3.6', 'activity': 'View live points cost by date and seat type', 'status': 'Built'}, {'step': 10, 'id': 'G-3.7', 'activity': 'View balance remaining after booking', 'status': 'Built'}, {'step': 11, 'id': 'G-3.9', 'activity': 'Review and confirm booking', 'status': 'Built'}, {'step': 12, 'id': 'G-3.10', 'activity': 'View confirmation page', 'status': 'Built'}, {'step': 13, 'id': 'G-4.1', 'activity': 'Blocked: no active license contract', 'status': 'Testable with caveat'}, {'step': 14, 'id': 'G-5.4', 'activity': 'Edit a booking', 'status': 'Testable with caveat'}, {'step': 15, 'id': 'G-5.5', 'activity': 'Cancel a booking (points refunded if more than 24h out)', 'status': 'Built'}] steps | No contract rejected only at submit; edit not built. |
J5 | Company block and claim Member Admin + Guest + Host | 5 of [{'step': 1, 'id': 'MA-5.2', 'activity': 'Reserve a block of seats for the company', 'status': 'Testable with caveat', 'note': 'Not linked in nav'}, {'step': 2, 'id': 'MA-5.3', 'activity': 'Assign an individual member to a seat-day in a block', 'status': 'Built'}, {'step': 3, 'id': 'G-5.7', 'activity': 'Claim a seat-day from a company block reservation', 'status': 'Built'}, {'step': 4, 'id': 'H-9.1', 'activity': 'View all bookings across listings', 'status': 'Built'}, {'step': 5, 'id': 'H-9.3', 'activity': 'View booking activity per listing', 'status': 'Built'}] steps | Block page not in nav. |
J6 | Limits and edge cases Member (Guest) + Member Admin | 3 of [{'step': 1, 'id': 'G-4.3', 'activity': 'Blocked: beyond 20-business-day booking horizon', 'status': 'Built', 'note': 'BOOKING_HORIZON_EXCEEDED'}, {'step': 2, 'id': 'G-4.4', 'activity': 'Blocked: company over 80% of daily floor capacity', 'status': 'Built'}, {'step': 3, 'id': 'G-4.2', 'activity': 'Blocked: insufficient points', 'status': 'Built', 'note': 'Insufficient points dialog'}, {'step': 4, 'id': 'G-4.5', 'activity': 'Blocked: closed day or closed date', 'status': 'Built'}, {'step': 5, 'id': 'G-4.6', 'activity': 'Blocked: unit already booked (double-booking guard)', 'status': 'Built', 'note': 'DB unique guard'}, {'step': 6, 'id': 'G-6.1', 'activity': 'View points balance, cap, next accrual', 'status': 'Built', 'note': 'Unused capacity forfeited'}] steps | Accrual clamp needs a Monday boundary. |
J7 | Wind down Host + Member Admin + HQ Lite | 0 of [{'step': 1, 'id': 'H-8.11', 'activity': 'Terminate member with reason, keep history', 'status': 'Built', 'note': 'History retained'}, {'step': 2, 'id': 'MA-3.9', 'activity': 'Deactivate / remove member', 'status': 'Built'}, {'step': 3, 'id': 'H-4.9', 'activity': 'Set status: DRAFT / ACTIVE / INACTIVE / ARCHIVED', 'status': 'Built'}, {'step': 4, 'id': 'H-4.10', 'activity': 'Delete listing (review impact summary first)', 'status': 'Built', 'note': 'API only - no UI'}, {'step': 5, 'id': 'PA-2.5', 'activity': 'Deactivate host, keep history', 'status': 'Testable with caveat'}, {'step': 6, 'id': 'PA-2.6', 'activity': 'Delete host (GDPR deletion request)', 'status': 'Testable with caveat'}] steps | Host deletion API only. |
| At | ID | Activity | Status |
|---|---|---|---|
| 0:10 | H-1.2 | Log in (incl. MFA challenge) | Built |
| 0:10 | H-10.1 | Floor overview by date (bookable / confirmed / available under cap) | Built |
| 0:10 | H-10.2 | Per-listing utilization table | Built |
| 0:14 | H-2.1 | Enter property info + address | Built |
| 0:14 | H-2.2 | Select building amenities (+ custom) | Built |
| 0:14 | H-3.1 | Upload map (PDF works; PNG/JPG fails in prod - OCR gated to macOS) | Built |
| 0:14 | H-3.2 | Monitor extraction job status | Built |
| 0:14 | H-3.3 | Adjust / refine / change map (add/remove object markers, zoom) | Built |
| 0:14 | H-3.5 | Accept floor map (materializes bookable units) | Built |
| 0:14 | H-3.6 | View annotated preview image | Built |
| 0:14 | H-4.1 | Enter name, description, listing amenities | Built |
| 0:14 | H-4.2 | Enter ownership type (head lessee / owner) | Built |
| 0:14 | H-4.3 | Enter remaining lease term (or target duration if owned) | Built |
| 0:14 | H-4.4 | Enter lease / ownership costs (gross rent, base rent, opex, utilities) | Built |
| 0:14 | H-4.5 | Enter square footage of offering | Built |
| 0:14 | H-5.1 | View physical seats vs bookable seats (1.2x uplift) | Built |
| 0:14 | H-5.2 | View daily and total points pool | Built |
| 0:14 | H-6.1 | Set open days (Mon-Sun toggles) | Built |
| 0:14 | H-6.2 | Set open / close times | Built |
| 0:14 | H-4.9 | Set status: DRAFT / ACTIVE / INACTIVE / ARCHIVED | Built |
| 0:24 | H-5.4 | Confirm capacity locks once first contract exists | Built |
| 0:24 | H-7.1 | Add hypothetical member rows by seat count | Built |
| 0:24 | H-7.2 | Review derived % share and rate per seat | Built |
| 0:24 | H-7.3 | Review totals and unallocated capacity | Built |
| 0:24 | H-7.4 | Confirm scenario autosaves and reloads | Built |
| 0:24 | H-7.6 | Review monthly revenue and net margin vs head lease | Built |
| 0:24 | PA-5.1 | Enter daily (day-of-week) point factor | Testable with caveat |
| 0:24 | PA-5.2 | Enter seat type factor | Testable with caveat |
| 0:30 | H-8.1 | Set up new member: company, contact, term, monthly fee, % of space | Built |
| 0:30 | H-8.2 | Review contract exhibit (seats obtainable per weekday) | Built |
| 0:30 | H-8.3 | Select included services | Built |
| 0:30 | H-8.5 | Invite new member / copy invite link | Built |
| 0:30 | H-8.9 | Set payment status (pending / paid / overdue) | Built |
| 0:30 | H-10.3 | Member (company) utilization | Testable with caveat |
| 0:30 | H-10.4 | Points allocation tab | Testable with caveat |
| 0:35 | MA-1.1 | Receive agreement invite email / link | Built |
| 0:35 | MA-1.2 | Review agreement summary + exhibit before accepting | Built |
| 0:35 | MA-1.3 | Accept invite and create account (becomes Member Super Admin) | Built |
| 0:35 | MA-2.1 | View license contract terms | Built |
| 0:35 | MA-6.1 | View points balance, cap and next accrual date | Built |
| 0:35 | G-6.2 | View day-of-week and seat-type cost weights | Built |
| 0:35 | G-6.4 | View contract exhibit: what my contract allows | Built |
| 0:40 | G-2.2 | View listing detail, amenities and floor plan | Built |
| 0:40 | G-2.4 | View month availability calendar | Built |
| 0:40 | G-3.1 | Specific date | Built |
| 0:40 | G-3.2 | Date range | Built |
| 0:40 | G-3.4 | Select seat visually on the floor plan (click, drag, shift multi-select) | Built |
| 0:40 | G-3.6 | View live points cost by date and seat type | Built |
| 0:40 | G-3.7 | View balance remaining after booking | Built |
| 0:40 | G-3.9 | Review and confirm booking | Built |
| 0:40 | G-3.10 | View confirmation page | Built |
| 0:40 | G-5.1 | View upcoming bookings | Built |
| 0:40 | G-5.5 | Cancel a booking (points refunded if more than 24h out) | Built |
| 0:40 | G-4.3 | Blocked: beyond 20-business-day booking horizon | Built |
| 0:40 | G-4.5 | Blocked: closed day or closed date | Built |
| 0:40 | G-4.6 | Blocked: unit already booked (double-booking guard) | Built |
| 0:47 | MA-3.1 | Upload / enter contact info (name, email) | Built |
| 0:47 | MA-3.2 | Send invite (email + copyable magic link) | Built |
| 0:47 | MA-3.8 | Set per-member points / seat quota | Built |
| 0:47 | MA-4.4 | Scope listing access per individual guest | Testable with caveat |
| 0:47 | MA-6.2 | Plan the 20-business-day calendar (workstation / office per day) | Built |
| 0:47 | MA-6.3 | Review weekly and daily point totals vs balance available | Built |
| 0:47 | MA-6.4 | See over-budget warning | Built |
| 0:47 | MA-5.2 | Reserve a block of seats for the company | Testable with caveat |
| 0:47 | MA-5.3 | Assign an individual member to a seat-day in a block | Built |
| 0:47 | G-5.7 | Claim a seat-day from a company block reservation | Built |
| 0:51 | H-9.1 | View all bookings across listings | Built |
| 0:51 | H-9.2 | View booking detail | Built |
| 0:51 | H-9.3 | View booking activity per listing | Built |
| 0:51 | H-9.4 | View unit map for a given date | Built |
| 0:51 | H-8.6 | Confirm contract auto-activates on invite acceptance | Built |
| 0:51 | H-8.8 | View member customer master file | Built |
| 0:51 | H-10.1 | Floor overview by date (bookable / confirmed / available under cap) | Built |