Run the room by the book.
Everything an operator needs to set up Pocket Theory HQ, meter the floor, and close the leaks. Built for the back-desk read between shifts — search with ⌘K or pick a topic on the left.
Install from Clover #
Pocket Theory HQ runs on your existing Clover POS — no new hardware to meter tables. Install the app from the Clover App Market on any Clover device (Station, Station Duo, Flex, Mini, or Compact). Front-of-house staff run the floor on the device; managers run the back office from any browser.
On install, the app requests the Clover permissions it needs: orders and payments to post table charges, customers for member profiles, employees to mirror your staff and roles, and merchant info. Approve them once and onboarding seeds a default rate plan so you can start a session immediately.
10-minute setup #
The fastest path from install to a metered floor:
- Add your tables. In the web console, create a table for each playing surface and set its mode: pool, card table, or shuffleboard. The floor map mirrors your real room layout.
- Set a rate plan. A default plan is seeded on install. Adjust the per-hour rate, rounding, and minimum, or build a plan per table mode (see Rate Plans).
- Set your check-in policy. Decide whether walk-ins require an ID hold, a card hold, both, or none (see Hold policies).
- Add staff PINs. Staff sign in on the device with a PIN. Roles sync from Clover; managers and owners get override authority.
- Publish the floor. Push the layout to your devices. You're ready to start sessions.
Your first session #
On the device, tap an open table to start a session. The clock runs, the rate engine accrues the charge per minute, and the meter ticks live on the floor map. When players finish, tap Stop — the session moves to pending-post, and the charge posts to Clover as an order. That's the whole loop: tap to start, tap to stop, the order lands in Clover.
The floor map #
The floor map is the live state of your room. Each table shows its current session — running time, accruing charge, or status (open, paused, league-blocked). The layout is server-owned: you design it once in the web console and publish it to devices, which consume it read-only with an offline fallback. A table's outline can reflect a checked-in member's plan color, so staff see membership at a glance.
A table's active session is one that's RUNNING, PAUSED, or stopped-pending-post — never a finalized (posted/closed) one. Idle tables show their last session in the detail drawer.
Session lifecycle #
Every session moves through a fixed set of states:
RUNNING → PAUSED → STOPPED_PENDING_POST → POSTED → CLOSED
- Running: the meter accrues. Pause is optional.
- Paused: the clock holds; paused minutes are subtracted from billable time.
- Stopped: the charge is computed and frozen, awaiting post.
- Posted: the charge has landed in Clover as an order.
- Closed: payment captured; the tab is settled.
Charges use a frozen snapshot of the rate plan taken at session start, so a later plan edit never restates a session that already billed. Every write is idempotent and retried on failure — a session never double-posts.
Table modes #
Tables come in three modes, and each bills with its own rate plan, minimum, and visual cue on the floor:
- Regular — standard pool tables.
- Card table — hourly poker/card rental, typically a half-hour minimum, tied to a tab.
- Shuffleboard — its own rate plan type.
When you start a session, the default rate plan resolves by matching the table's mode to a plan of the same type — a card table never silently defaults to the pool rate. One floor, multiple rulesets.
How rate plans work #
A rate plan defines what a table costs. Plans are versioned: you can edit a plan, and only one version is current at a time, but sessions snapshot the version active when they started. That snapshot is the billing record of truth — it's why a price change tomorrow never rewrites a charge from today.
Plans support peak / off-peak windows, league blocks, member rates, player-count overrides, and time-of-day windows — no code, with safe rollback to a prior version. Deleting a plan is a soft-delete, so old charges stay readable.
Rounding & minimums #
The rate engine computes net time as elapsed minus paused minutes, then applies your plan's rounding and minimum before converting to a charge:
- Rounding — default is 5-minute round-up (CEIL). A 47-minute session bills as 50.
- Minimum — default 30 minutes. A 12-minute session still bills the 30-minute floor.
- Rate — set per minute. For example, $15/hour is 25¢/minute.
The session's charge breakdown (elapsed, paused, net, rounded, billable, amount) is visible on the device and in the console, so staff can explain any total at the desk.
Player-count pricing #
Plans can price by how many players are on a table. Player-count pricing uses exact-match overrides with a plan-default fallback: set a rate for 2 players, 4 players, and so on, and any count without an explicit override falls back to the plan default. Updating the player count mid-session re-segments the charge from that point forward.
The scanner #
ID-scan check-in replaces the sticky-note-and-hope method. Scan the back of a driver's license with a Zebra DS9308 2D barcode scanner — currently the only supported model, available on Amazon and direct from Zebra. The app parses the AAMVA barcode in under a second: name, date of birth, license number, and expiration, on every US state.
If the guest is an existing member, their profile loads with package balance and tier. If they're a walk-in, a new customer record is created in seconds. Then the session starts with the table assignment and rate plan resolved — one tap from a verified guest.
Hold policies #
A hold is what you keep at check-in to make sure time gets paid. Configure the policy per merchant; each check-in applies it automatically:
- ID held — you keep the guest's ID.
- Card held — a card is held against the tab.
- Both held — ID and card.
- No hold allowed — open seating.
A manager can override the policy for a walk-in with a PIN and a reason code — every override is logged (see Staff & roles).
Age verification #
The scanned date of birth is checked against today's date. If the guest is under 21, the table picks up an UNDER-21 marker on the floor map — compliance without confrontation. The age math handles the boundary cases correctly (the day before a 21st birthday, the birthday itself, the day after).
Memberships & packages #
A membership without infrastructure is a wishlist. Pocket Theory HQ runs recurring billing through Clover, member check-in, package minutes, tiered guest pricing, synced food-and-beverage discounts, and renewal reminders by SMS and email.
Each membership plan can carry a floor outline color: when a member on that plan checks in, their table's outline takes the plan's color so staff recognize membership at a glance. Plans without a color simply show no membership outline.
Reservations #
Take reservations against tables and times. A reservation can be checked in, completed, marked no-show, or cancelled, and upcoming reservations surface on the floor so staff hold the right tables.
Leagues & tournaments #
Leagues that don't pay rent should pay differently. Block tables for a league night, time-bill the slot, and surface per-league revenue so you can decide which leagues earn their keep — with data, not vibes. A league session auto-generates its nights; you can edit, activate, complete, or cancel each night and release tables early when balls are returned.
Tournaments are one-shot scheduled events that block a set of tables for a window — create, activate, complete, or cancel, with the same early per-table release.
Waitlist #
When the floor's full, queue guests by name or member ID. Seat a waiting party directly into a session the moment a table opens — no paper, no shouted names. When a party's table is ready, notify them by text (requires SMS to be enabled; see SMS & notifications).
Public portal & embed #
Give the room a public page where customers check live table availability and add themselves to the waitlist from their own couch. Set a public slug in Merchant Settings to turn it on; the portal shows open-table count, current wait, and your business hours, and never exposes member or session data.
The portal is embeddable: paste one snippet into any site builder (Squarespace, WordPress, Wix) and it resizes to fit. Abuse defenses (per-phone dedupe, rate limiting, a honeypot field) keep junk out of your queue.
waitlistEnabled off in settings to pause public sign-ups without taking the page down.Reports & revenue #
The Insights tab is manager-gated and covers revenue trends, a 7×24 peak-hours heatmap, rate-plan performance, top customers, membership health, and staff performance. All revenue aggregates exclude non-finalized sessions: only posted, closed, or pending-post sessions contribute.
Two revenue definitions, deliberately split: collected revenue (from actual payments, net of refunds and voids) backs the overview, revenue trend, and top customers; charged revenue (the frozen rate-engine amount) backs peak-hours and rate-plan performance. Rate-plan performance groups by the snapshotted plan name, so renaming a plan never rewrites history.
Refunds & voids #
Refunds and voids made on the Clover side flow back automatically through webhooks. A refund nets out of collected revenue; an itemized refund that matches a session's table-time line item is attributed to table time. A deleted payment voids the session's payment record. Charged-revenue metrics stay frozen by design — collected truth lives in the payment ledger.
Staff & roles #
Staff sign in on the device with a PIN. Roles are Staff, Manager, and Owner, and they sync from your Clover employees — the account owner maps to Owner, admins and managers to Manager, everyone else to Staff. Managers and owners hold override authority: comps, discounts, retroactive starts, and hold bypasses each require a manager PIN, a reason code, and a permanent audit entry. Generosity becomes a measurable line item.
Subscription tiers #
Your subscription tier, billed through the Clover App Market, gates which features you get:
- Basic Core operations: floor & sessions, rate plans, table modes, Clover order posting, staff roles, audit log, and the walk-in waitlist.
- Pro Everything in Basic, plus reservations, leagues, tournaments, maintenance, membership management, ID-scan check-in, and the full Insights suite.
- Premium Cross-location reporting for multi-venue operators. Pinned for chains.
A tier is a ceiling: each merchant can also toggle individual features on or off within their tier. When a feature is above your tier, the console shows it dimmed with a lock and an upgrade prompt rather than hiding it — so you always know what the next tier unlocks.
SMS & notifications #
SMS powers waitlist-ready texts and membership renewal reminders. Monthly message allowances are set by tier:
- Basic Waitlist “table ready” texts, 500 messages per month included. Membership renewal reminders are a Pro feature.
- Pro 1,500 messages per month included — waitlist texts plus membership renewal reminders.
- Premium Unlimited.
Beyond the included allowance, overage is billed in blocks of 50 messages at $1.00 per block through Clover metered billing. Every outbound text includes a STOP footer; replying STOP opts a number out.
Troubleshooting #
A charge didn't post to Clover #
Posts retry automatically in the background. If a post stays failed, open the session and use Retry post; the operation is idempotent, so retrying never double-charges. Persistent failures usually mean the Clover access token needs reconnecting in settings.
A table is locked by another device
Lease-based locks stop two devices from controlling the same table at once. Stale locks are swept automatically; if a table seems stuck, give it a moment or refresh the floor.
The ID scanner isn't reading
Confirm the scanner is a Zebra DS9308 and that you're scanning the back (the PDF417 barcode), not the front. Other 2D scanner models aren't supported yet.
FAQ #
Do I need new hardware?
No — Pocket Theory HQ runs on your existing Clover devices. The only optional add-on is a Zebra DS9308 scanner for ID-scan check-in.
What happens to my data if I cancel?
PostgreSQL is the system of record and your billing snapshots stay intact and readable. Reach out and we'll help you export.
Can I price pool, cards, and shuffleboard differently?
Yes — each table mode resolves its own rate plan. See Table modes and Rate plans.