FlexHQs Pitch Script
Release Notes Product Context Meeting Analysis System Map Activity Map Test Script
Live demo walkthrough · hosts and brokers · 60 minutes
One building, end to end, on the live product.
Deck for ten minutes at each end. In between, a floor plan becomes a live listing, a member company signs, books a desk on the drawing, and the booking lands on the host's books. Every click path is tied to the Activity List so what is shown is what is built.
Audience: prospective hosts plus real estate brokers acting as the arms-length sales channelApp: https://www.flexhqs.comBuilt 2026-09-21 from Activity List v1 + Sept 8 register
60
minutes
45 live in the app, 15 on the deck
11
segments
two hero moments: upload, book
72
activities shown
of 125 built
6
journeys touched
of 7 in the map
Timeline
Run of show
Click a bar or a row to open the full segment. Colours: blue deck, orange host, green member, purple close.
0:000:150:300:451:00
0:00
Why we are hereName the problem in the room's own numbers before showing any software.
Deck
4 min · Open
0:04
The model in one picture, and where the broker fitsThree concepts they need before the demo makes sense: listing issues points, agreement carries points, booking spends points.
Deck
6 min · Open
0:10
The host's home: PortfolioShow what 'done' looks like before building one live: a property with a live listing, points issued, contracted meter, booked today, margin.
Host
4 min · Act 1 · Host
0:14
New space: from a floor plan to a live listingThe hero moment. A PDF floor plan becomes counted, priced, bookable inventory in under ten minutes, with the host reviewing every count.
Host
10 min · Act 1 · Host
0:24
Pricing tab: rebalance the week, model the membersShow that pricing follows demand without hourly complexity, and that the host can model the floor's economics before signing anyone.
Host
6 min · Act 1 · Host
0:30
Members: record the agreement, send the inviteShow how a signed deal becomes an enforceable entitlement, and hand the baton to the member side.
Host
5 min · Act 1 · Host
0:35
The member accepts and sees a price list, not a puzzleProve the entitlement the host recorded is exactly what the member sees, and that the member experience is self-serve.
Company Admin
5 min · Act 2 · Member
0:40
Book on the floor plan, then show the cancel rulesThe second hero moment: pick a day, pick the desk on the drawing, spend points, see the refund timeline.
Company Admin
7 min · Act 2 · Member
0:47
Teams run themselves: invite guests, plan the monthShow the admin tier so the host hears 'I never have to administer their people'.
Company Admin
4 min · Act 2 · Member
0:51
Back to the host: the booking shows up as a numberClose the loop. The booking made two minutes ago is already on the host's books, attributed to a company, with points spent.
Host
4 min · Act 3 · Host
0:55
The broker deal, the pilot, and next stepsConvert. Leave with a named building, a named contact and a date.
Deck
5 min · Close
The spine
Three sentences the whole hour hangs on. Say each one at least twice.

1. A listing issues points, an agreement carries points, a booking spends points.
2. The host decides who is in the building and what the week costs; the members run themselves.
3. Every booking becomes a number the host can take into the next negotiation.
If you are running late: cut in this order
#SegmentWhat to drop
1Teams run themselves: invite guests, plan the monthTeams and Plan (4 min). Say one sentence about it instead.
2Pricing tab: rebalance the week, model the membersScenario modeler only (2 min). Keep the day-weight rebalance.
3Book on the floor plan, then show the cancel rulesDate-range and cancel dialog (2 min). Keep the single-day booking and confirmation.
4New space: from a floor plan to a live listingStep 1 address search and the marker edit (2 min). Never cut the upload itself unless detection has failed.
Two things this script does not invent
Broker economics and platform pricing are marked [TONY: confirm] in segment 11. The product has no partner, payout or billing feature, so both are commercial terms outside the software. Confirm them before the meeting or leave them out of the room.
Segment by segment
The script
Left column is what you do, right column is what you say. Talk track is written to be spoken, not read. Green ID chips are Built; yellow are testable with a caveat, so know the caveat before you show them.
0:00 → 0:04
Why we are here
Deck 4 min Open

Screen

Deck slide 1 to 2 (the 55% slide). App not on screen yet.

Goal

Name the problem in the room's own numbers before showing any software.

Click path

  1. Slide 2: 'You pay for 100% of the floor. Your members use about half.'
  2. Ask the host: what is your floor's real weekday occupancy? Write the number down. You will come back to it at minute 55.
  3. Ask the broker: how many of your landlord clients have a floor or a suite they cannot lease conventionally right now?

Activity IDs exercised

deck only

Talk track

  • Hybrid work left most office floors around half full. The rent, utilities and cleaning are paid for every desk whether anyone sits at it or not.
  • Today that spare capacity is either dark, or it is sub-let informally through email threads and one person's memory. Nobody can price it, and nobody can prove who used it.
  • FlexHQs turns that spare capacity into priced, bookable inventory and gives the host a number they can act on at renewal. Over the next 45 minutes I am going to run a real building through it, end to end, on the live product.

If asked

Is this coworking?
No. The host stays the landlord or head lessee and picks who is in. Members are companies under a signed agreement, not walk-ins. Full days only, no hourly desks.
0:04 → 0:10
The model in one picture, and where the broker fits
Deck 6 min Open

Screen

Deck slides 3 to 5. Then switch to the browser, signed in as the demo host.

Goal

Three concepts they need before the demo makes sense: listing issues points, agreement carries points, booking spends points.

Click path

  1. Slide 3: floor plan becomes inventory; points price every seat-day; agreements gate every booking.
  2. Slide 5: read the three numbers out loud: 5.0 points per workstation per week, 1.5x to 2.5x office premium, 20 business day bucket.
  3. State the broker's role in one sentence, then go to the browser.

Activity IDs exercised

deck only

Talk track

  • Points are the unit of account end to end. A listing issues a supply of points based on its seat mix. A member company signs for a share of those points. Every booking spends them. One seat for a full 20 business day month is 20 points, so a 120 point agreement is six seat-equivalents.
  • A workstation costs 5 points a week however the days are weighted. Midweek costs more than Monday or Friday, and offices carry a premium that scales with how scarce they are on that floor. The host rebalances the days; the member sees a price list.
  • For brokers: FlexHQs is invite-only. Nobody signs up from the internet. A host gets in because someone brought them, and that someone is you. You bring the building, we onboard it with you, and you stay the relationship owner with the tenant companies that fill it.

If asked

Why points and not dollars?
Dollars stay between the host and the member; what a point costs in cash is the host's commercial term, and it differs per member. Points let one price list govern a floor with five different contracts on it.
Why invite-only?
Two reasons. Trust: a host controls exactly who is in their building. Quality: every account traces back to a person who vouched for it. For you it also means the channel is protected.
0:10 → 0:14
The host's home: Portfolio
Host 4 min Act 1 · Host

Screen

https://www.flexhqs.com/host (Portfolio)

Goal

Show what 'done' looks like before building one live: a property with a live listing, points issued, contracted meter, booked today, margin.

Click path

  1. Land on Portfolio. Point at the metric strip: Properties, Live listings, Points issued, Contracted, Booked today, Margin/mo.
  2. Point at the pre-staged listing row (the fallback listing): Status Live, Workstations/Offices, Points issued, Contracted meter.
  3. Do not click into it yet. Say 'this is where we will be in twenty minutes' and click New space.

Activity IDs exercised

H-1.2H-10.1H-10.2

Talk track

  • This is the whole portfolio on one screen. Every listing shows the points it issues, how much of that is contracted, who is on the floor today and the monthly margin against the head lease.
  • Margin is the number a host has never had for a sub-let floor. It is contracted revenue minus the cost you entered for the space. We will build that up from a floor plan now.

If asked

Can I have more than one building?
Yes. Portfolio groups listings by property, and a property can carry several listings, one per floor or suite.
0:14 → 0:24
New space: from a floor plan to a live listing
Host 10 min Act 1 · Host

Screen

https://www.flexhqs.com/host/new/location → floor-plan → details → published

Goal

The hero moment. A PDF floor plan becomes counted, priced, bookable inventory in under ten minutes, with the host reviewing every count.

Click path

  1. Step 1 Location: choose Existing property (the demo property) so the address is already right. If you want to show the address search, type a real address and let Mapbox resolve it, then switch back.
  2. Step 2 Floor plan: drop the rehearsed PDF. Narrate the processing state (it is short). On the review workbench, point at the detected workstations and offices, then deliberately add one workstation marker and remove one to show the host is in control.
  3. Read the live rail: office multiplier, point-bearing seats, total points. Say the formula out loud once (see talk).
  4. Accept and continue. Step 3 Details: name the listing, set Mon to Fri hours, choose Head lease, enter gross rent, square footage, term. Watch the rail: points this listing issues, break-even $ per point, completeness checklist going green.
  5. Publish. On the Published screen, pause on 'issues N points'. Click Create a member agreement only later (segment 6); for now click Back to portfolio, then open the listing.

Activity IDs exercised

H-2.1H-2.2H-3.1H-3.2H-3.3H-3.5H-3.6H-4.1H-4.2H-4.3H-4.4H-4.5H-5.1H-5.2H-6.1H-6.2H-4.9

Talk track

  • Drop in the plan you already have. Workstations and offices are detected and shown on the drawing for review. Nothing is saved until the host says the counts are right.
  • Worked example for a 12 workstation, 2 office floor: the office premium is 1 plus the workstation to office ratio over 8, so 1 plus 6/8, which is 1.75. Seats are 12 plus 2 times 1.75, that is 15.5, times a 1.2 platform buffer, floored to 18 point-bearing seats. Times 20 points per seat: this floor issues 360 points a month.
  • The 1.2 is deliberate oversell. Members never all show up on the same day, so the platform lets a host contract 20% more than the furniture. An 80% daily cap per company keeps any one member from swamping the floor.
  • Step 3 is where the economics come in. Enter what the space costs you and the rail tells you the break-even price per point before you have talked to a single member.

If asked

What if the detection is wrong?
You fix it on the drawing before accepting. Add or remove markers, then accept. The counts you accept are the counts that become inventory.
Can I change the multiplier?
No. 1.2 is platform-managed. What you control is the day pricing and how many points each member holds.
Do you support several floors?
One floor plan per listing today. A building with three floors is three listings under one property, and Portfolio rolls them up.
Risk and fallback. Floor plan detection. On Sept 14 the same PDF that read 26/2 on Aug 24 returned 0/0. Rehearse the exact file the day before and again the morning of. If detection fails live, say 'I will not make you watch me fix a marker count' and switch to the pre-accepted fallback listing already in Portfolio. PDF only; PNG/JPG is not reliable in prod.
0:24 → 0:30
Pricing tab: rebalance the week, model the members
Host 6 min Act 1 · Host

Screen

https://www.flexhqs.com/host/listings/:id?tab=pricing

Goal

Show that pricing follows demand without hourly complexity, and that the host can model the floor's economics before signing anyone.

Click path

  1. Section 1 Points supply: read-only, the formula and furniture counts. Say it locks the moment the first agreement is signed.
  2. Section 2 Day pricing: move Wednesday from 1.3 to 1.4 and Monday from 0.8 to 0.7. Show the sum meter staying at 5.0 / 5.0 and the per-column price preview changing. Save. Say members see the new price list immediately.
  3. Section 3 Scenario modeler: add two or three hypothetical members by points and monthly fee. Point at totals, unallocated, and the allocation meter in the rail: green within the furniture, amber into the 20% buffer, red over.
  4. Read the break-even $ per point next to the modeled $ per point.

Activity IDs exercised

H-5.4H-7.1H-7.2H-7.3H-7.4H-7.6PA-5.1PA-5.2

Talk track

  • The week always sums to 5 points for a workstation. You decide the shape: if Wednesday is your crowded day, make it cost more and Monday cost less. That is the only pricing lever you need, and you can pull it at any time.
  • Before you sign anyone, model the floor. Three members, their points and their fees, and you can see whether you are selling into the buffer and whether the rate per point clears your head lease.

If asked

Can members buy more points mid-term?
Not in this version. An agreement's points are fixed for its term. Top-ups are on the roadmap, and the host can always write a new agreement.
Does the system set prices for me?
No. It shows you demand by day and by company. Repricing is your decision, by hand.
Risk and fallback. Rebalancing day weights is an ACTIVE listing action and affects the pre-staged member's price list. Put the weights back to defaults (0.8 / 1.0 / 1.3 / 1.1 / 0.8) after the meeting or the next rehearsal's numbers will not match this script.
0:30 → 0:35
Members: record the agreement, send the invite
Host 5 min Act 1 · Host

Screen

https://www.flexhqs.com/host/members → New agreement drawer (3 steps)

Goal

Show how a signed deal becomes an enforceable entitlement, and hand the baton to the member side.

Click path

  1. Members roster: metric strip Active, Awaiting acceptance, Points contracted / issued, Contracted revenue. Point at the pre-staged awaiting rows.
  2. New agreement, step 1: pick the listing just published (shows points available), company name, contact name and a real inbox you control (the second browser profile), points via the stepper (say 120), monthly fee, term. Note the first-contract lock banner.
  3. Step 2 Review: the agreement summary and the price grid the member will see. Step 3: Copy the invite link. Paste it into the notes app on screen so the room sees it.

Activity IDs exercised

H-8.1H-8.2H-8.3H-8.5H-8.9H-10.3H-10.4

Talk track

  • You negotiate and sign on paper, the way you do today. Here you record the ten fields that matter: who, how many points, what fee, what term. From that moment the platform enforces it: no booking happens on this floor without an active agreement behind it.
  • The invite is a link. Today you send it yourself, from your own email, which most hosts prefer for a first conversation. Automated email from FlexHQs is being switched on and will send this for you.
  • 120 points is six seat-equivalents. The member's bucket caps at 120 and tops up by 30 every Monday. Unused capacity is forfeited, not banked, which is what keeps the floor honest.

If asked

Where is the contract PDF?
The signed PDF upload is a placeholder in this version; the terms live in the agreement record and the six legal-term fields on the listing.
Can the member reject or negotiate in the app?
No. They accept what you recorded. Negotiation stays offline, between you and them.
Risk and fallback. 'Create agreement & send invite' does not email anyone until SES (launch group D) is live. The script already says so; never promise the email arrived. Copy the link at creation: the roster cannot re-surface the token later.
0:35 → 0:40
The member accepts and sees a price list, not a puzzle
Company Admin 5 min Act 2 · Member

Screen

Second browser profile: /member-invite → /member → /member/agreement

Goal

Prove the entitlement the host recorded is exactly what the member sees, and that the member experience is self-serve.

Click path

  1. Switch to the second browser window (member profile, signed out). Paste the invite link. Read the summary: company, listing, points, term, fee. Set name and password, accept.
  2. Land on Home: Company points meter (120 / 120), next top-up Monday, agreement end date, Book a desk button.
  3. Open Agreement: the What points cost grid (Mon to Fri × Workstation / Office) shows the exact weights the host set in segment 5, including the changed Wednesday. Below it, What your points get you.

Activity IDs exercised

MA-1.1MA-1.2MA-1.3MA-2.1MA-6.1G-6.2G-6.4

Talk track

  • The person who accepts becomes the Company Admin. They manage their own team from here; the host never has to add a guest by hand.
  • This grid is the whole pricing model from the member's side. A Tuesday workstation is one point; a Wednesday office is 1.4 times 1.75, so about 2.5. No hourly rates, no surprises.

If asked

Can a member see other companies' bookings?
No. They see availability on the floor, never who holds it. The host sees everything.
Risk and fallback. Use a clean incognito or a second Chrome profile so the host session survives. Cognito sessions now last 30 days, so the host window will not expire mid-demo.
0:40 → 0:47
Book on the floor plan, then show the cancel rules
Company Admin 7 min Act 2 · Member

Screen

https://www.flexhqs.com/member/listings/:id → confirmation → /member/bookings

Goal

The second hero moment: pick a day, pick the desk on the drawing, spend points, see the refund timeline.

Click path

  1. Book space: choose Single day, pick a Wednesday at least 8 days out in the date rail (it shows free counts per day and 'What it costs' for that day).
  2. Click a workstation on the floor canvas, then marquee-select two more. Watch the sticky bar: selection summary, company points after, Spend n points.
  3. Switch to Date range across a weekend to show only open days are counted. Switch back to single day. Spend the points.
  4. Booking confirmed: the reference, points spent, company points remaining, and the refund timeline in the listing's time zone. Say 'no email is sent' is stated on screen on purpose.
  5. My bookings: open the cancel dialog on the new booking, read the refund tier, then close it without cancelling.

Activity IDs exercised

G-2.2G-2.4G-3.1G-3.2G-3.4G-3.6G-3.7G-3.9G-3.10G-5.1G-5.5G-4.3G-4.5G-4.6

Talk track

  • Availability is on the drawing itself. You pick the desk you want to sit at, or the office, for the day you want. The cost is in front of you before you commit, and the balance after.
  • Cancellation is tiered by calendar days and by role, so the floor is not gamed. Until seven days before, anyone gets the points back. Until three days before, only an admin does. Inside three days, nobody does unless the host chooses to restore them. The cancel itself is never blocked, only the refund.
  • Every rule you saw the host set is enforced here: open days, the 20 business day horizon, the company's daily cap, one seat one booking. The database will not let two people hold the same desk on the same day.

If asked

Can a member edit a booking?
Cancel and rebook. Editing a confirmed booking is deliberately not built; it keeps the refund rules unambiguous.
Hourly or half days?
No, and that is a design choice. Full days keep pricing, cleaning and security simple for the host.
Risk and fallback. Book from the Company Admin account, not a guest, unless a guest is pre-staged with listing access. Pick a date at least 8 days out so the cancel dialog reads the full-refund tier.
0:47 → 0:51
Teams run themselves: invite guests, plan the month
Company Admin 4 min Act 2 · Member

Screen

https://www.flexhqs.com/admin/team → /member/plan (cut first if running late)

Goal

Show the admin tier so the host hears 'I never have to administer their people'.

Click path

  1. Team: open Invite, show One person / Several (up to 50 addresses with one role and one quota). Do not send. Point at Can book (per-guest listing access) and Quota on an existing row.
  2. Plan: the four-week grid of seats per day, balance projected week by week including forfeits at the cap. Type 3 workstations on next week's Tuesday to Thursday and watch the projection move.
  3. Optional if ahead of time: Company bookings, Reserve a block for a team day, and the seats × days assignment grid.

Activity IDs exercised

MA-3.1MA-3.2MA-3.8MA-4.4MA-6.2MA-6.3MA-6.4MA-5.2MA-5.3G-5.7

Talk track

  • The Company Admin invites their own people, decides who may book which listing and caps any individual's monthly days. The host is out of that loop entirely.
  • The planner answers the question every office manager asks: if the team comes in three days a week, do we run out of points? It projects the balance week by week and shows where unused points forfeit.

If asked

Can I book for a whole team at once?
Yes. A Company Admin reserves a block of seats for a date range and assigns people to seat-days, or lets guests claim their own.
Can I restrict a department to certain days?
Not yet. Member groups with day restrictions are on the list; today the tools are per-person access and quota.
Risk and fallback. Groups (MA-4.1 / 4.2) are not built. Do not imply they are.
0:51 → 0:55
Back to the host: the booking shows up as a number
Host 4 min Act 3 · Host

Screen

https://www.flexhqs.com/host/bookings → /host/listings/:id?tab=members → /host

Goal

Close the loop. The booking made two minutes ago is already on the host's books, attributed to a company, with points spent.

Click path

  1. Switch to the host window. Bookings: filter to the listing; the new booking is there with company, units, points, status. Open it: schedule, units, member, points spent, refund tier, Restore points (only on cancelled).
  2. Listing Members tab: the company row with Points, $/mo, $/point, Term, Status Active, Used this window meter moved off zero.
  3. Portfolio: Contracted meter and Booked today now reflect the agreement and the booking. Return to the occupancy number you wrote down at minute 2.

Activity IDs exercised

H-9.1H-9.2H-9.3H-9.4H-8.6H-8.8H-10.1

Talk track

  • That is the loop. Floor plan to inventory, agreement to entitlement, booking to a number on the host's screen, with no one in the middle of it.
  • At renewal you now have utilization by company and by weekday. You know who is under-using their allowance and which days you could reprice. You said your floor runs at N percent; this is how you find out what the other part is worth.

If asked

Can I cancel a member's booking?
No, by design. You can restore the points on a booking the member already cancelled, which is the host's goodwill lever.
Can I see who is on the floor today?
Booked today shows the count and the bookings list shows who. A daily on-site roster view is on the roadmap.
0:55 → 1:00
The broker deal, the pilot, and next steps
Deck 5 min Close

Screen

Deck slides 7 to 9. Close the browser windows.

Goal

Convert. Leave with a named building, a named contact and a date.

Click path

  1. Slide 7: what changes for the host. Slide 8: deliberately not in scope (read it; it builds trust).
  2. Broker terms: state the referral arrangement and what the broker does versus what FlexHQs does. [TONY: confirm the broker economics before the meeting; the product has no partner or payout feature, so this is a commercial term outside the software.]
  3. Pricing, if asked: current hypothesis is $99 per location per month plus $1 per square foot per year, $199 minimum, billed to the host; members pay the host, not us. [TONY: confirm against the Sept 15 P&L model before quoting; payments are not in the product, so this is invoiced.]
  4. Slide 9: 90-day pilot, hands-on onboarding with the host's first floor plan, their data stays theirs. Ask for the building and the date.

Activity IDs exercised

deck only

Talk track

  • For the host: hours back every week, numbers for the next negotiation, agreements you can enforce, and control of who is in your building.
  • For the broker: a product you can put in front of every landlord client with a half-empty floor, and every tenant client who needs three days a week and not a lease. You bring the introduction and stay the relationship owner; we onboard the floor with you in days, not an IT project.
  • The ask: one building, one floor plan, one member company, ninety days. Which building?

If asked

What does it cost the member?
Whatever the host charges per point. That is the host's business; we do not take a cut of it.
Is my data safe?
Every account is invited, every admin action is audited, sessions require MFA for platform admins, files live in private encrypted storage on AWS in the US Midwest. Your data stays yours and can be deleted on request.
What is not there yet?
Payments, calendar and chat integrations, hourly bookings, member groups, automated email. All deliberate for a first version; say which ones matter to you.
Before the room
Pre-flight
Everything that has bitten a demo of this product before is on this list. The two that matter most are the hostname and floor plan detection.
Known live risks, from the Sept 14 evaluation and the launch plan
Detection regression: the QA floor plan returned 0 workstations / 0 offices on Sept 14 after reading 26 / 2 on Aug 24. Rehearse the real file. No email: invites are copy-links until SES (launch group D) ships; the script never claims an email went out. Hostname: www.flexhqs.com goes public only when launch group F is applied after Matt signs off group E; until then the app is at hqlite.tonymeekes.ca behind Cloudflare Access. Invite-only: there is no signup page any more, so the demo host account must be created by a Super Admin invite ahead of time.
WhenDoOwner
T-7 daysConfirm 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 daysCreate 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 daysStage 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 daysStage 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 daysRehearse 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 daysRun 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 dayConfirm 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 hourSign 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 hourBrowser 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 hourDo not open /superadmin or the Danger zone at any point. Nothing on those pages is for a prospect.Tony
AfterReset 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
Demo data to stage
Host account: dedicated, realistic name, created by Super Admin invite. Not qahost2.
Property: one, realistic name and real address, photos added.
Fallback listing: published, plan accepted, default day weights, photos. Shown in segment 3; used in segment 4 if detection fails.
Member company on the fallback listing: accepted agreement, Company Admin login in the second browser profile, two or three past bookings so meters are not empty.
Floor plan PDF: the rehearsed file, on the desktop. Text labels DESK / WORKSTATION / OFFICE detect best.
Second inbox: for the live agreement invite in segment 6; the link is pasted, so any address you control works.
Never on screen
/superadmin and the Danger zone.
Any SIM-, QA- or test.com data.
The API hostname or a browser dev console.
Test accounts from the Sept register (they exist in prod and are visible to a Super Admin).
The word "credits". It is legacy vocabulary; the product says points.

Worked numbers to have in your head

QuantityValueHow
Day weights (default)Mon 0.8 · Tue 1.0 · Wed 1.3 · Thu 1.1 · Fri 0.8Sum 5.0; host can rebalance per listing, sum must stay 5.0
Office premiumclamp(1 + (workstations / offices) / 8, 1.5, 2.5)12 WS / 2 OFF → 1.75; frozen onto each agreement at activation
Points a listing issuesfloor((WS + OFF × premium) × 1.2) × 2012 / 2 → floor(15.5 × 1.2) = 18 seats → 360 points
Member bucketcap = contracted points; +25% every Monday; clamped at cap120 points → +30 each Monday, forfeits above 120
Seat-equivalentscontracted points / 20120 points = 6 seats for a 20 business day month
Booking horizon20 business daysBeyond it: BOOKING_HORIZON_EXCEEDED
Refund tiers7 days: anyone · 3 days: admins only · inside 3: host override onlyWhole calendar days to midnight where the listing is
Company daily cap80% of the floor's physical seatsStops one company taking the whole floor
Handling the room
Objections and honest gaps
Answer once, plainly, and move on. The credibility of the demo comes from what you say is not there as much as from what is.
We already have a coworking operator / Robin / a spreadsheet
Coworking operators take the tenant relationship and a margin. Desk-booking tools like Robin assume one company and no commercial layer. FlexHQs is the host's own system: the agreement, the points and the booking are one record, so entitlements cannot drift from reality. The spreadsheet is what slide 2 describes.
Our building has security / access control to think about
The booking is the source of truth for who is expected on the floor each day. Badge integration is not built; today the host or reception reads the bookings list. Say that plainly.
Members will want hourly or half-day
Full-day only is a product decision, not a gap. It keeps pricing, cleaning and security simple and it is what a company paying for three days a week actually needs. If the room pushes, note it and move on.
What happens if two companies want the same Wednesday?
One seat, one booking, enforced in the database. Beyond that, the 80% daily cap stops one company taking the floor, and the host can raise Wednesday's weight so the price does the rationing.
Who handles the money?
The host invoices the member for the agreement fee as they do today. FlexHQs bills the host a platform fee. There is no payment processing in the product, by design for the first version.
Is this legal for a head lessee to do?
That depends on their head lease's sub-letting and licence clauses. The product supports it; the paper has to as well. Recommend the six legal-term fields on the listing carry the licence wording, and point them at their own counsel.
What if a member does not use their points?
They forfeit at the weekly cap. That is the mechanism that makes contracted points a real commitment and keeps the floor's supply honest. Utilization by company shows the host who is under-using before renewal.
Can we white-label it / integrate with our systems?
Not in this version. No white-label, no calendar, chat or payment integrations. All are candidates once the first pilots report back.

Things a prospect may ask for that are not built

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.

IDActivityStatusNote
MA-4.1Create groupsNot testableNOT BUILT
MA-4.2Set up group restrictions (certain days or periods)Not testableNOT BUILT
H-3.8Multiple floors per listingNot testableNOT BUILT
H-6.5Statutory holiday auto-defaultsNot testableNOT BUILT
H-6.6Min / max stay, blackout periods, lead timeNot testableNOT BUILT
H-8.10Amend an active contractNot testableNOT BUILT
H-9.5Book or cancel on a member's behalfNot testableNOT BUILT - out of scope
G-5.4Edit a bookingTestable with caveatNOT BUILT - cancel and rebook
MA-5.7Edit an existing bookingNot testableNOT BUILT - cancel and rebook
H-10.9Daily on-site occupant listNot testableNOT BUILT
H-10.10Churn / declining-usage alertNot testableNOT BUILT
PA-2.3Send invite to hostNot testableNOT BUILT
Traceability
What the demo covers
Computed from the Activity Map data, not typed. Platform Admin is deliberately near zero: nothing on those screens is for a prospect.
RoleActivitiesBuiltShown in demoCoverage
HQ Lite (Platform Admin)27112 (0 built) 18% of built
Host705239 (37 built) 75% of built
Member Admin432914 (12 built) 48% of built
Member (Guest)373317 (17 built) 52% of built

Journeys

IDJourneyTouchedKnown blockers (Sept 8 register)
J1Host 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'}] stepsPNG/JPG fails; accept on 0 units (3.1); Listing Info tab freeze (3.3); no floor-plan gate on ACTIVE.
J2Host 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'}] stepsLegacy listings dead-ended from agreement (3.2).
J3Member 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'}] stepsNo groups exist.
J4Guest 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'}] stepsNo contract rejected only at submit; edit not built.
J5Company 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'}] stepsBlock page not in nav.
J6Limits 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'}] stepsAccrual clamp needs a Monday boundary.
J7Wind 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'}] stepsHost deletion API only.

Every activity shown, in demo order

AtIDActivityStatus
0:10H-1.2Log in (incl. MFA challenge)Built
0:10H-10.1Floor overview by date (bookable / confirmed / available under cap)Built
0:10H-10.2Per-listing utilization tableBuilt
0:14H-2.1Enter property info + addressBuilt
0:14H-2.2Select building amenities (+ custom)Built
0:14H-3.1Upload map (PDF works; PNG/JPG fails in prod - OCR gated to macOS)Built
0:14H-3.2Monitor extraction job statusBuilt
0:14H-3.3Adjust / refine / change map (add/remove object markers, zoom)Built
0:14H-3.5Accept floor map (materializes bookable units)Built
0:14H-3.6View annotated preview imageBuilt
0:14H-4.1Enter name, description, listing amenitiesBuilt
0:14H-4.2Enter ownership type (head lessee / owner)Built
0:14H-4.3Enter remaining lease term (or target duration if owned)Built
0:14H-4.4Enter lease / ownership costs (gross rent, base rent, opex, utilities)Built
0:14H-4.5Enter square footage of offeringBuilt
0:14H-5.1View physical seats vs bookable seats (1.2x uplift)Built
0:14H-5.2View daily and total points poolBuilt
0:14H-6.1Set open days (Mon-Sun toggles)Built
0:14H-6.2Set open / close timesBuilt
0:14H-4.9Set status: DRAFT / ACTIVE / INACTIVE / ARCHIVEDBuilt
0:24H-5.4Confirm capacity locks once first contract existsBuilt
0:24H-7.1Add hypothetical member rows by seat countBuilt
0:24H-7.2Review derived % share and rate per seatBuilt
0:24H-7.3Review totals and unallocated capacityBuilt
0:24H-7.4Confirm scenario autosaves and reloadsBuilt
0:24H-7.6Review monthly revenue and net margin vs head leaseBuilt
0:24PA-5.1Enter daily (day-of-week) point factorTestable with caveat
0:24PA-5.2Enter seat type factorTestable with caveat
0:30H-8.1Set up new member: company, contact, term, monthly fee, % of spaceBuilt
0:30H-8.2Review contract exhibit (seats obtainable per weekday)Built
0:30H-8.3Select included servicesBuilt
0:30H-8.5Invite new member / copy invite linkBuilt
0:30H-8.9Set payment status (pending / paid / overdue)Built
0:30H-10.3Member (company) utilizationTestable with caveat
0:30H-10.4Points allocation tabTestable with caveat
0:35MA-1.1Receive agreement invite email / linkBuilt
0:35MA-1.2Review agreement summary + exhibit before acceptingBuilt
0:35MA-1.3Accept invite and create account (becomes Member Super Admin)Built
0:35MA-2.1View license contract termsBuilt
0:35MA-6.1View points balance, cap and next accrual dateBuilt
0:35G-6.2View day-of-week and seat-type cost weightsBuilt
0:35G-6.4View contract exhibit: what my contract allowsBuilt
0:40G-2.2View listing detail, amenities and floor planBuilt
0:40G-2.4View month availability calendarBuilt
0:40G-3.1Specific dateBuilt
0:40G-3.2Date rangeBuilt
0:40G-3.4Select seat visually on the floor plan (click, drag, shift multi-select)Built
0:40G-3.6View live points cost by date and seat typeBuilt
0:40G-3.7View balance remaining after bookingBuilt
0:40G-3.9Review and confirm bookingBuilt
0:40G-3.10View confirmation pageBuilt
0:40G-5.1View upcoming bookingsBuilt
0:40G-5.5Cancel a booking (points refunded if more than 24h out)Built
0:40G-4.3Blocked: beyond 20-business-day booking horizonBuilt
0:40G-4.5Blocked: closed day or closed dateBuilt
0:40G-4.6Blocked: unit already booked (double-booking guard)Built
0:47MA-3.1Upload / enter contact info (name, email)Built
0:47MA-3.2Send invite (email + copyable magic link)Built
0:47MA-3.8Set per-member points / seat quotaBuilt
0:47MA-4.4Scope listing access per individual guestTestable with caveat
0:47MA-6.2Plan the 20-business-day calendar (workstation / office per day)Built
0:47MA-6.3Review weekly and daily point totals vs balance availableBuilt
0:47MA-6.4See over-budget warningBuilt
0:47MA-5.2Reserve a block of seats for the companyTestable with caveat
0:47MA-5.3Assign an individual member to a seat-day in a blockBuilt
0:47G-5.7Claim a seat-day from a company block reservationBuilt
0:51H-9.1View all bookings across listingsBuilt
0:51H-9.2View booking detailBuilt
0:51H-9.3View booking activity per listingBuilt
0:51H-9.4View unit map for a given dateBuilt
0:51H-8.6Confirm contract auto-activates on invite acceptanceBuilt
0:51H-8.8View member customer master fileBuilt
0:51H-10.1Floor overview by date (bookable / confirmed / available under cap)Built