OpsBeacon User Guide

Everything your store team needs to run the TV Dashboard, leadership views, Ops Intelligence, pay sheet estimates, and marketing tools.

New here? Start with Getting started and Roles & access.

Getting started

Setting up your store takes just a few minutes.

1
Register your store at /register. Enter your store name, your email and a password, and your FranPOS location ID and API key. These connect your store's point-of-sale data to the dashboard.
Store registration form
Fill in store name, email, password, and FranPOS credentials.
2
Verify your email. You'll receive a verification email - click the link in it before signing in. This is a one-time step.
3
Sign in at /login with your email and password. You'll land on the TV Dashboard.
Store sign-in page
Use your store email and password on the sign-in page.

Forgot your password?

On the sign-in page, click Forgot password? and enter your account email. You'll receive a reset link (valid for about one hour). Open the link, choose a new password, then return to /login to sign in.

Forgot password form
Enter your account email to receive a reset link.

The first person to register a store becomes the owner. Owners can invite team members, manage billing, and update store settings. You can also assign a manager role for day-to-day admin without full billing control. Everyone else joins as staff.

Roles & access

Three store roles control what each person can see and change.

Owner

  • Full Admin access
  • Billing & subscription
  • FranPOS credentials
  • Team invites & roles
  • Ops Intelligence & Pay Sheets
  • Executive Dashboard preset

Manager

  • Most Admin cards (read/write)
  • Store & Billing (view only)
  • Ops Intelligence & Pay Sheets
  • Custom slides & KPI targets
  • Marketing tools (ALFIE hub, CRM, campaigns)
  • Executive Dashboard (personalized)

Staff

  • My Home (/me) - pay, rankings, reviews
  • My Grooming Dashboard (linked groomers only)
  • TV Dashboard & team slideshow (non-groomers)
  • Personal slide preferences (gear menu)
  • No Admin billing or team access
  • No Ops Intelligence

Where each role lands after sign-in

My Home staff landing page
Staff land on My Home with pay, rankings, reviews, and quick navigation.

Linked groomers who open /team are redirected to My Grooming Dashboard - they never receive the full store TV dashboard.

Owners assign roles from Admin → Team Access. Only owners can change billing or invite new users.

TV Dashboard

A full-screen rotating slideshow designed to run on a TV in your store.

After signing in, your home page becomes the TV Dashboard. It cycles through slides showing your store's key data at a glance. Built-in slides include:

TV Dashboard slideshow
The TV Dashboard rotates KPI slides, appointments, rankings, and reviews on a store TV.
  • Goals - daily and monthly targets vs. actuals
  • Performance (KPIs) - revenue, average ticket, grooming counts, and more
  • Pulse - traffic-light health orbs for revenue, appointments, and rebook rate
  • 30-day Trends - revenue chart and day-of-week sparklines
  • Appointments - today's schedule pulled from FranPOS
  • Rankings - groomer performance leaderboard
  • Google Reviews - Google 5-star review counts and team shout-outs
  • Weather - current local conditions and a 7-day forecast based on your store's city/state
  • Clock - full-screen digital clock with day and date, optional in the rotation
  • Custom slides - any slides you build in the Custom Slide Builder will rotate in alongside the built-in ones

Per-slide zoom

Some slides look best at a different zoom level on your TV. Hover over a slide and the + / − zoom controls appear in the corner. Adjusting zoom only affects the current slide, and the setting is saved on that device - the next time you open the TV Dashboard on the same device, each slide remembers its own zoom level.

Customizing the slideshow

Click the gear icon in the top-right corner of the TV Dashboard to open slideshow settings. From there you can:

  • Turn individual slides on or off for your personal view
  • Reorder slides

Staff use the gear menu to personalize their own view. Owners control the master list of slides and the rotation speed from Admin → Dashboard / TV Slides (see below).

Executive Dashboard

A leadership-focused slideshow for owners and managers - manual navigation, no auto-rotate.

Open it from the Admin quick links or go to /dashboard/executive. It uses the same slide types as the TV Dashboard but is tuned for desk or back-office screens where you want to click through slides at your own pace.

Executive Dashboard
Owners and managers navigate slides manually from the Executive Dashboard.

Executive vs. staff TV preset

  • Owners control the store-wide Executive slide list from Admin → Dashboard / TV Slides. Use the dashboard target dropdown at the top of that page to switch between Staff TV and Executive presets.
  • Managers see the Executive Dashboard with their own saved slide on/off and ordering preferences (same gear-menu behavior as staff on the TV Dashboard).
  • Staff use My Home, My Grooming Dashboard (linked groomers), or the store TV slideshow - not the Executive view.

Retail floor TVs

Retail marketing displays use a separate Retail Marketing layout. Grooming staff TV and Executive slides are configured under Dashboard / TV Slides; retail uses its own admin section.

My Grooming Dashboard

A mobile-first, groomer-only view - your approved widgets and your data only.

Open it from the My Dashboard button on My Home or go directly to /groomer/dashboard. The page title is My Grooming Dashboard; the button label on small screens is shortened to My Dashboard.

My Grooming Dashboard on mobile
Linked groomers open My Grooming Dashboard from the My Dashboard button on My Home.

Who can access it

  • Your store login must be linked to a team member in Admin → Team Access
  • That team member's Ops Intelligence role must be Groomer (configured under Ops Intelligence → Team members)
  • Owners and managers are sent to the Executive Dashboard instead - this view is for floor groomers

What groomers see (and what they don't)

My Grooming Dashboard is locked down on the server. Groomers only receive widgets management has explicitly approved, and every widget only loads their own scoped data - never storewide reporting, other groomers' numbers, revenue leaderboards for the whole salon, or admin screens unless a widget was built and approved for groomer use.

Security

Changing the URL or trying another groomer's ID in a request does not grant access. Identity comes from your session and team-member link only.

Groomer Progress report

The primary approved widget today is Groomer Progress - a monthly store-vs-you progress report (similar to a salon spreadsheet), including:

  • Appointment Status, Customer Type, Financial Averages, Service Types, Dog Sizes, Coat Types, and Complex Size Breakdown - each section compares Salon vs You
  • Rankings Highlights (MTD) - compares #1 (top groomer by MTD revenue, no name shown) vs You
  • Add-ons & Upgrades Breakdown - salon vs you counts by category
  • 12-Month Trends - salon vs you charts (load in the background after the main table appears)

Use ← Prev / Next → to change months. Financial commission uses FranPOS commission data when available; otherwise it estimates from MTD booked revenue and the groomer's configured commission rate in Team members.

Empty or locked states

  • No dashboard slides have been approved for your view yet. - management has not enabled any widgets for groomers
  • This dashboard is private and only shows information approved for your role. - you are not linked as a groomer, the feature is disabled, or your account is not eligible

Management: Groomer Mobile Dashboard settings

Owners and managers configure groomer access under Admin → Dashboard / TV Slides → Groomer Mobile Dashboard:

  • Enable groomer mobile dashboard - master on/off for the store
  • Approved widgets - checkboxes for each groomer-safe widget (only widgets that support self-scoped data appear)
  • Preview by signing in as a linked groomer and opening My Grooming Dashboard

Groomer Progress can also be added to a custom TV slide for owners/managers in the Custom Slide Builder; on My Grooming Dashboard it always shows only the signed-in groomer's data.

Admin panel

Your control center for store data, team, and settings.

Open Admin from the navigation bar or go to /admin. Here's what you can do:

Admin control panel
Open Admin from the nav bar to reach store settings, slides, team access, and more.
  • Store & Billing - view your current subscription (read-only), open Manage subscription and billing to choose products and pay via Stripe, and update your FranPOS connection (location ID, API key). Owners also set store-wide operational settings here, including Grooming (table count, daily revenue goal per table, and store hours - see Grooming & store hours) and Google Reviews Leaderboard options (toggle the bonus column and set the bonus amount per 5-star review).
  • Integrations - connect FranPOS (location ID and API token), Google Reviews (Place ID), and your POS vendor. Open Admin → Store & Billing → Integrations.
    Store settings Integrations tab
    Connect FranPOS, Google Reviews, and test your POS connection on the Integrations tab.
    Dashboard display settings
    Configure TV slide rotation interval and Google Reviews bonus display options.
  • Dashboard / TV Access Link - generate or revoke a shareable link that auto-logs a TV into the dashboard (handy for store-floor TVs you don't want to sign in manually).
  • Dashboard / TV Slides - a unified management page listing every slide that can appear on the TV (built-in and every custom slide you've built). Owners can:
    • Toggle any slide on or off for the whole store
    • Reorder slides with the up / down arrows
    • Duplicate a custom slide to use it as a starting point for a new one
    • Edit a custom slide (jumps straight into the Custom Slide Builder)
    • Delete a custom slide
    • Set the global slide rotation interval (seconds per slide)
    Individual staff members can still personalize which of the enabled slides they see via the gear icon on the TV Dashboard.
    • Groomer Mobile Dashboard - enable the groomer phone view, choose which self-scoped widgets groomers may see (see My Grooming Dashboard)
  • Custom Slide Builder - click Create Custom Slide on the TV Slides page (or open the Custom Slide Builder accordion) to build your own slides by dropping widgets onto a canvas. See the Custom Slide Builder section below.
  • Notices - post announcements that staff see on the TV dashboard. Display them by adding a Team Notices or Single Pinned Notice widget to a custom slide in the Custom Slide Builder. Great for daily reminders, shout-outs, or policy updates.
  • Data Uploads - upload CSV or Excel files exported from FranPOS (Sales, Appointment, Monthly-Sales, and Metrics reports) to import KPI and appointment history. The onboarding YTD import uses this same pipeline.
  • Sync from FranPOS - pull the latest data directly from the FranPOS API using your store's credentials. No file upload needed.
  • KPI Targets - set monthly and per-day-of-week targets for revenue, grooming count, average ticket, and other metrics. These targets power the Goals slide, Pulse orbs, and the Today vs Target widget.
  • Goals - define daily or monthly goals that show up on the Goals slide and that you can pin individually on custom slides via the Goal Progress widget.
  • Employees - manage team member names so that Google Review mentions can be matched to the right person.
  • Team Access - invite new staff members by email and assign roles (owner, manager, or staff). Only owners can add or remove team members.
  • Ops Intelligence - ALFIE-powered operations tools for owners and managers: booking anomaly review, grooming capacity & labor estimates, store P&L tracking, daily Morning Briefing emails, and Pay Sheet drafts. See the Ops Intelligence section.

Ops Intelligence

ALFIE-powered back-office tools for spotting booking issues, understanding capacity, estimating groomer pay, and reviewing store-level profit & loss.

Open from Admin → Ops Intelligence or /admin/ops-intelligence. Available to owners and managers only.

Ops Intelligence Daily Workflow tab
Daily Workflow highlights rebooking opportunities and links to Customer CRM.

Important

Ops Intelligence is advisory only. Anomaly scans never block or change FranPOS appointments. Pay Sheets and P&L payroll figures are estimates - always verify against your official payroll and accounting records before making financial decisions.

Getting started

1
Enable Ops Intelligence on the Anomalies tab. Turn on the master switch and, if you want automatic checks, enable Automatic anomaly scanning. Click Save settings.
Ops Intelligence Anomalies tab
Turn on Enable Ops Intelligence and automatic scanning on the Anomalies tab.
2
Configure grooming basics in Admin → Store & Billing → Grooming - table count, daily goal per table, and store hours. Capacity and labor estimates depend on these values.
Grooming capacity and store hours settings
Set table count, daily revenue goal, and store hours under Grooming Capacity.
3
Set up team pay rates on the Pay Sheets tab (see below) so capacity labor economics, pay estimates, and P&L payroll can map FranPOS employees to roles.
Ops Intelligence Pay Sheets tab
Configure team members and generate pay period estimates on Pay Sheets.
4
Enter fixed operating expenses on the P&L tab - average monthly utilities, rent, and marketing budget - so store-level profit & loss reflects your real overhead (see below).
Ops Intelligence P&L tab
Enter monthly fixed expenses and review store profit and loss on the P&L tab.

Daily Workflow - Customer Follow-Up

The Daily Workflow tab surfaces rebooking opportunities, including lapsed and at-risk customers. Cards like "Contact lapsed customers" summarize how many clients need outreach, but the full list lives in Customer CRM.

  • Click Open CRM on the Customer Follow-Up section or Open in CRM → on any follow-up card
  • Regenerate today's workflow after updates if cards do not yet show CRM links

Anomalies tab - booking review

Scans upcoming appointments (default: 7 days ahead) and flags patterns that differ from a pet's history. Appointments are never blocked - this is a review queue only.

  • Service deviation - pet usually gets Full Groom but is booked for Bath or Mini Groom
  • Groomer change - assigned groomer differs from the pet's usual groomer
  • Missing common add-on - historical add-ons (nail grind, teeth brushing, etc.) not reflected in the service text
  • Size tier change - small/medium/large tier differs from visit history
  • Unusual duration - service pattern suggests a very different appointment length

Use Run scan now for an immediate check, or rely on automatic scanning when enabled. Filter by status (Open / Reviewed / Dismissed), then Mark reviewed or Dismiss each item. Dismissed and reviewed items are not recreated on future scans.

Capacity tab - grooming capacity & labor

Shows how fully booked your grooming operation is over any date range (defaults to the last 7 days). Key metrics:

  • Table capacity - grooming tables × store open hours
  • Groomer scheduled - FranPOS scheduled hours for team members with the Groomer role
  • Groomer booked - hours filled by appointments
  • Capacity used - booked hours vs. available groomer capacity

When team pay rates are configured, the panel also shows estimated labor economics: groomer opportunity loss (unbooked schedule, understaffed tables), bather profit/loss, and retail front-of-house P/L. Bather bath revenue counts only bath line items attributed to active bathers in FranPOS (groomer-performed baths are excluded; no grooming-sales estimate). Retail FOH labor includes every active retail team member: hourly staff use scheduled or time-clock hours, and salaried staff use prorated salary for the period. If FranPOS shows employees not yet in your team roster, click + Add [name] to jump to Pay Sheets with that name pre-filled.

Ops Intelligence Capacity tab
Review table capacity, booked hours, and labor economics on the Capacity tab.

Morning Briefing tab - daily email

ALFIE compiles a daily owner/manager summary - yesterday's KPIs, open anomalies, capacity snapshot, goal progress, rankings highlights, and an optional plain-English narrative.

Ops Intelligence Owner Briefing tab
Configure delivery time, recipients, and preview the Morning Briefing email.
1
Ensure Enable Ops Intelligence is on (Anomalies tab).
2
On the Morning Briefing tab, turn on Enable Morning Briefing delivery, set your delivery time and timezone, and enter recipient emails (comma-separated).
3
Optionally enable Include ALFIE narrative for a written summary grounded in your data.
4
Click Generate preview to see today's briefing in the browser, or Send test email now to deliver immediately. When delivery is enabled, a daily cron sends once per store day after midnight and before your configured delivery time.

Past briefings appear in the history list - click any row to reopen its HTML snapshot.

Pay Sheets tab - pay period estimates

Pulls FranPOS revenue, tips, and your configured pay rates to produce an estimate-only pay sheet for any date range.

1
On the Anomalies tab, enable Ops Intelligence. On Pay Sheets, turn on Enable Pay Sheets module.
2
Configure Team members - assign each person a role (Groomer, Bather, or Retail), pay type (Commission, Hourly, or Salary), rate or salary amount, optional guarantee, and active status. Names should match FranPOS. Click Refresh from FranPOS to sync the roster.
3
Pick a pay period using the date pickers, Prev / Next arrows, or the biweekly preset button. Click Apply dates, then Generate draft.
4
Review the table - revenue, commission/hourly/salary base pay, tips, guarantee top-up, manual adjustments, Google Review bonuses (when enabled in Store settings), gross pay, estimated taxes, and net pay. Click a team member name to open an individual printable report with daily revenue and tax detail.
5
Use Print or Export CSV for your records. Add manual adjustments (with required notes) while the period is still a draft.
6
When satisfied, click Finalize period to lock estimates. Owners can Reopen a finalized period if corrections are needed.

Choosing a payroll provider

Each store selects one payroll path on Admin → Ops Intelligence → Pay Sheets. OpsBeacon then shows integration settings, submit/sync buttons, and in-app help for that provider only. You can change the selection later; finalized pay periods keep their history.

  1. 1Enable Ops Intelligence and the Pay Sheets module.
  2. 2Under Payroll provider, choose Estimates only, ADP Workforce Now (coming soon), QuickBooks Online Payroll (coming soon), Gusto (coming soon), or Paychex (coming soon). Store owners use Estimates only until integrations roll out.
  3. 3Open the in-app payroll help panel on Pay Sheets for setup and workflow steps specific to your provider.
  4. 4Map team members to provider employee IDs when using ADP, QuickBooks, Gusto, or Paychex (see Team access).

ADP Workforce Now (coming soon)

Push finalized pay period data to ADP Workforce Now, run payroll in ADP, then sync employer tax actuals back into OpsBeacon for P&L.

Before you start

  • Ops Intelligence and the Pay Sheets module are enabled for your store.
  • Team members are configured with roles, pay rates, and names that match FranPOS.
  • Your store state is set under Admin → Store & Billing for tax estimates and P&L.
  • Your organization has ADP Workforce Now with Pay Data Input and Payroll Output API access.
  • OpsBeacon server env vars for ADP OAuth and mTLS certificates are configured by your administrator.

Choose ADP and configure the store

  1. 1Open Admin → Ops Intelligence → Pay Sheets.
  2. 2Under Payroll provider, select ADP Workforce Now and save.
  3. 3Expand ADP settings, enable ADP payroll for this store, and enter your ADP pay group code.
  4. 4Map earning codes (regular, overtime, commission, tips, bonus) to match your ADP configuration.
  5. 5Click Test connection to confirm workers are visible.

Map team members

  1. 1Open Admin → Team Members (or Team members on Pay Sheets).
  2. 2For each employee, enter ADP file number and associate OID.
  3. 3Use the ADP workers list API suggestions when names match.

Submit and sync a pay period

  1. 1Generate and finalize the pay period in Pay Sheets.
  2. 2Click Submit to ADP to send pay data for mapped employees.
  3. 3Process payroll in ADP Workforce Now as you normally would.
  4. 4After ADP completes the run, click Sync ADP taxes on the same pay period.
  5. 5P&L will use ADP employer tax actuals for dates that overlap synced periods.

Team mapping: Each team member needs adpFileNumber and optionally adpAssociateOid from ADP Workforce Now.

P&L: When taxSnapshot.source is adp, P&L uses prorated employer labor cost from ADP-synced actuals instead of flat estimates.

Common issues

Submit to ADP is disabled or missing

Confirm Payroll provider is set to ADP, ADP is enabled with a pay group code, and the period is finalized. Only store owners can submit.

Sync failed after ADP processed payroll

Wait until ADP finishes the payroll run, then sync again. Verify the pay group code matches the run in ADP.

QuickBooks Online Payroll (coming soon)

Connect QuickBooks Online Payroll, submit time activities from finalized pay periods, run payroll in QBO, then sync payslip taxes into OpsBeacon.

Before you start

  • Ops Intelligence and the Pay Sheets module are enabled for your store.
  • Team members are configured with roles, pay rates, and names that match FranPOS.
  • Your store state is set under Admin → Store & Billing for tax estimates and P&L.
  • Your store uses QuickBooks Online with Payroll (partner API access may be required for payslip sync).
  • OpsBeacon server env vars QUICKBOOKS_CLIENT_ID and QUICKBOOKS_CLIENT_SECRET are configured.

Choose QuickBooks and connect

  1. 1Open Admin → Ops Intelligence → Pay Sheets.
  2. 2Under Payroll provider, select QuickBooks Online Payroll and save.
  3. 3Click Connect QuickBooks and sign in with the QBO company that runs payroll.
  4. 4Enable QuickBooks payroll for this store and map compensation type names.
  5. 5Click Test connection to confirm employees are visible.

Map team members

  1. 1Open Admin → Team Members.
  2. 2Enter the QuickBooks Employee.Id for each team member.
  3. 3Use name-match suggestions from the QuickBooks employees API when available.

Submit and sync a pay period

  1. 1Generate and finalize the pay period in Pay Sheets.
  2. 2Click Submit to QuickBooks to create time activities for mapped employees.
  3. 3Run payroll in QuickBooks Online as you normally would.
  4. 4After payslips are available, click Sync QuickBooks taxes on the pay period.
  5. 5P&L will use QuickBooks employer tax actuals for overlapping dates.

Team mapping: Each team member needs quickbooksEmployeeId (QuickBooks Employee.Id).

P&L: When taxSnapshot.source is quickbooks, P&L uses prorated employer labor cost from synced payslip taxes.

Common issues

QuickBooks connect failed

Verify the redirect URI in your Intuit app matches {APP_URL}/api/ops-intelligence/payroll/quickbooks/callback and that payroll scopes are enabled.

Sync returns no payslip data

Complete payroll in QuickBooks first. Payslip APIs may require production partner access from Intuit.

Gusto (coming soon)

Connect Gusto, submit employee compensations to an unprocessed Gusto payroll, review and process in Gusto, then sync calculated tax results.

Before you start

  • Ops Intelligence and the Pay Sheets module are enabled for your store.
  • Team members are configured with roles, pay rates, and names that match FranPOS.
  • Your store state is set under Admin → Store & Billing for tax estimates and P&L.
  • Your store uses Gusto with a regular payroll schedule that overlaps OpsBeacon pay periods.
  • OpsBeacon server env vars GUSTO_CLIENT_ID and GUSTO_CLIENT_SECRET are configured.

Choose Gusto and connect

  1. 1Open Admin → Ops Intelligence → Pay Sheets.
  2. 2Under Payroll provider, select Gusto and save.
  3. 3Click Connect Gusto and authorize your Gusto company.
  4. 4Enable Gusto payroll for this store and map hourly and fixed compensation names to match Gusto job pay types.
  5. 5Click Test connection to confirm employees are visible.

Map team members

  1. 1Open Admin → Team Members.
  2. 2Enter the Gusto employee UUID for each team member.
  3. 3Use name-match suggestions from the Gusto employees list when available.

Submit and sync a pay period

  1. 1Ensure an unprocessed Gusto payroll exists with dates overlapping the OpsBeacon period.
  2. 2Generate and finalize the pay period in Pay Sheets.
  3. 3Click Submit to Gusto to prepare, update compensations, and calculate in Gusto.
  4. 4Review and process payroll in the Gusto UI (final processing cannot be done via API).
  5. 5Click Sync Gusto taxes after Gusto finishes calculation.
  6. 6P&L will use Gusto employer tax actuals for overlapping dates.

Team mapping: Each team member needs gustoEmployeeUuid from Gusto.

P&L: When taxSnapshot.source is gusto, P&L uses prorated employer labor cost from Gusto-synced calculated payroll.

Common issues

No unprocessed Gusto payroll found

Create or open a regular payroll in Gusto with pay dates that overlap the OpsBeacon period before submitting.

Sync says calculation is still in progress

Wait for Gusto to finish calculating, complete any required review in Gusto, then sync again.

Paychex (coming soon)

Connect Paychex, submit worker compensations to an unprocessed Paychex payroll, review and process in Paychex, then sync calculated tax results.

Before you start

  • Ops Intelligence and the Pay Sheets module are enabled for your store.
  • Team members are configured with roles, pay rates, and names that match FranPOS.
  • Your store state is set under Admin → Store & Billing for tax estimates and P&L.
  • Your store uses Paychex Flex with a regular payroll schedule that overlaps OpsBeacon pay periods.
  • OpsBeacon server env vars PAYCHEX_CLIENT_ID and PAYCHEX_CLIENT_SECRET are configured.

Choose Paychex and connect

  1. 1Open Admin → Ops Intelligence → Pay Sheets.
  2. 2Under Payroll provider, select Paychex and save (super admin testing only until rollout).
  3. 3Click Connect Paychex and authorize your Paychex company.
  4. 4Enable Paychex payroll for this store and map hourly and fixed compensation names to match Paychex pay types.
  5. 5Click Test connection to confirm workers are visible.

Map team members

  1. 1Open Admin → Team Members.
  2. 2Enter the Paychex worker ID for each team member.
  3. 3Use name-match suggestions from the Paychex workers list when available.

Submit and sync a pay period

  1. 1Ensure an unprocessed Paychex payroll exists with dates overlapping the OpsBeacon period.
  2. 2Generate and finalize the pay period in Pay Sheets.
  3. 3Click Submit to Paychex to prepare, update compensations, and calculate in Paychex.
  4. 4Review and process payroll in the Paychex UI.
  5. 5Click Sync Paychex taxes after Paychex finishes calculation.
  6. 6P&L will use Paychex employer tax actuals for overlapping dates.

Team mapping: Each team member needs paychexWorkerId from Paychex.

P&L: When taxSnapshot.source is paychex, P&L uses prorated employer labor cost from Paychex-synced calculated payroll.

Common issues

No unprocessed Paychex payroll found

Create or open a regular payroll in Paychex with pay dates that overlap the OpsBeacon period before submitting.

Sync says calculation is still in progress

Wait for Paychex to finish calculating, complete any required review in Paychex, then sync again.

Estimates only

Generate and finalize Pay Sheets using OpsBeacon estimates only. Export CSV or print reports for your accountant or payroll processor.

Before you start

  • Ops Intelligence and the Pay Sheets module are enabled for your store.
  • Team members are configured with roles, pay rates, and names that match FranPOS.
  • Your store state is set under Admin → Store & Billing for tax estimates and P&L.

Select estimates only

  1. 1Open Admin → Ops Intelligence → Pay Sheets.
  2. 2Under Payroll provider, choose Estimates only and save.

Typical pay period workflow

  1. 1Configure team members and generate a pay period draft.
  2. 2Review gross pay, estimated taxes, and net pay.
  3. 3Add manual adjustments while the period is still a draft.
  4. 4Finalize the period when you are satisfied with the estimates.
  5. 5Export CSV or print reports and enter totals in your external payroll system manually.

Team mapping: No provider employee IDs are required. Map FranPOS names to team members so revenue and hours aggregate correctly.

P&L: P&L uses prorated employer labor cost from Pay Sheets tax estimates (gross pay plus estimated employer taxes) for overlapping finalized periods.

Common issues

Can I switch to ADP, QuickBooks, Gusto, or Paychex later?

Payroll integrations are coming soon. When they roll out, store owners will choose a provider on Pay Sheets, map team members, and use Submit and Sync on finalized periods. Super admins can test integrations before general availability.

Pay calculation notes

Commission groomers: estimated base pay uses FranPOS Commission Report totals when available (otherwise revenue × commission rate), compared to the prorated guarantee for the period. Hourly team members use scheduled hours × hourly rate (also compared to guarantee when set). Salary team members use a configured salary amount (or hourly rate × 80 hours per biweekly cycle), prorated by elapsed days in the pay period through today when the period is still open (salary ÷ 14 × days to date for biweekly). Tips, adjustments, and Google Review bonuses are added on top for gross pay.

Payroll tax estimates (by store state)

When you Generate draft or Regenerate draft, OpsBeacon estimates payroll taxes using your store's state from Admin → Store & Billing (city/state on the store profile). If state is missing, a default US estimate is used and a warning appears on the pay sheet.

  • Groomers - tips are included in gross pay but excluded from taxable wages (not taxed in the estimate)
  • Bather & Retail - tips are taxed like other wages in the estimate
  • All roles - commission, hourly, salary, guarantees (when they are the paid base), review bonuses, and manual adjustments count toward taxable wages

Each line shows Est. taxes (employee Social Security, Medicare, and flat state income tax estimate) and Net pay (gross minus employee taxes). Print and CSV exports include taxable wages, employer tax estimates, and employer labor cost (gross pay + employer FICA and state payroll tax estimate).

Tax estimates are not payroll processing

Rates are flat state approximations plus FICA - not W-4 withholding, local tax, or YTD wage caps. Use Pay Sheets for planning and P&L; verify all amounts with your payroll provider or CPA before paying staff or remitting taxes. When you use ADP, QuickBooks, or Gusto, sync provider tax actuals after payroll runs to replace estimates on finalized periods.

P&L tab - store profit & loss

Builds an estimated store-level profit & loss statement by combining daily KPI revenue with prorated fixed costs and payroll from Pay Sheets. Open Admin → Ops Intelligence, expand Advanced, then select P&L (or use /admin/ops-intelligence?tab=pnl). Owners only - the tab lives under Advanced alongside Capacity and Pay Sheets.

1
Ensure Enable Ops Intelligence is on (Settings or Anomalies tab).
2
Click Edit expenses and enter your average monthly amounts for phone, water, trash, internet, electricity, gas, rent, and marketing budget. Turn on Include fixed operating expenses in P&L calculations, then click Save expense settings.
3
Choose a time period - Day, Week, Month, Quarter, or Year - and use the arrow buttons or date picker to move between periods. Click Refresh after updating expenses or generating new Pay Sheets.
4
Review the statement: total revenue (service + retail), operating expenses (payroll, utilities, rent, marketing budget, and any tracked marketing such as review bonuses), gross profit, net operating income, and net margin %.
  • Revenue - summed from your store's daily-kpis documents (same source as the Performance slide)
  • Fixed costs - monthly averages prorated across the selected period (week = trailing 7 days; month/quarter/year = calendar boundaries)
  • Payroll - prorated from Pay Sheets that overlap the range. When pay sheets include synced ADP, QuickBooks, or Gusto tax actuals, labor cost uses provider employer labor cost (gross wages plus actual employer payroll taxes). Otherwise OpsBeacon uses stored tax estimates or falls back to a capacity-based labor estimate
  • Tracked marketing - actual amounts recorded for programs like Google Review bonuses during the period, in addition to your marketing budget line

For accurate payroll in P&L, set your store state, configure team pay on Pay Sheets, regenerate drafts so tax snapshots are current, and finalize periods that overlap your P&L date range.

Plan notes

Operator includes full Pay Sheets integration in P&L payroll. Growth uses capacity-based labor estimates when Pay Sheets data is unavailable. P&L is advisory - it does not replace your bookkeeper, accountant, or official payroll system.

Custom Slide Builder

Design your own TV slides by dragging widgets onto a canvas.

The Custom Slide Builder lives at /admin/slide-builder. You can open it from Admin → Dashboard / TV Slides → Create Custom Slide, or by clicking Edit on an existing custom slide.

Custom Slide Builder
Drag widgets from the palette onto the canvas, then save and enable the slide on TV.
Dashboard and TV Slides management
Toggle, reorder, and configure Staff TV and Executive slide presets.

Tiling drag-and-drop layout

The canvas uses a tiling layout - when you drop a widget onto an existing one, the space splits instead of overlapping. Drop near an edge of a widget and a colored preview appears showing how the split will land:

  • Drop on the left or right edge to split the target side-by-side
  • Drop on the top or bottom edge to stack the widgets vertically
  • Drop on an empty canvas and the widget fills the whole slide

Drag the thin dividers between widgets to resize the split ratio. Drag any placed widget by its body to move it into a different split; click the × in the corner to remove it. Click a widget once to select it and open its properties panel on the right.

Three-column layout

  • Left column - Widget palette. Every available widget grouped by category. This column scrolls on its own when the list is long, so the canvas and properties panel always stay in view.
  • Center - Slide canvas. The 16:9 preview of your slide. Click Preview in the top bar to see the slide rendered live with real data before saving.
  • Right column - Widget properties. Configuration for the currently-selected widget. Every widget exposes a schema-driven properties panel, so you get only the options that apply to the widget you picked.

Naming and saving

1
Name your slide, pick an icon and a color. The top bar has an emoji picker and color swatches that are used in the TV Slides management list and in the slide transitions.
2
Drop widgets onto the canvas from the left palette and configure each one via the properties panel on the right.
3
Click Preview at any point to see the slide render with live data.
4
Click Save Slide. The slide is saved to your store's Firebase account. Once saved, a Add to Dashboard button appears that enables the slide in the TV rotation. You can also enable / reorder / duplicate / delete it from Admin → Dashboard / TV Slides.

Widget catalog

Every widget you can drop onto a custom slide, grouped by category.

🎯 Goals

  • Goals & Progress - grid of live progress bars for the goals you pick. Configurable: which goals to show, display style (progress bar / traffic light / gauge).
  • Single Goal Progress - focus on one goal with a selectable visualization.

📊 KPIs

  • KPI Performance Cards - today's big KPI cards with pacing targets.
  • Rebook Rate Bar - compact strip showing today's rebook percentage.
  • MTD Summary - month-to-date revenue, appointments, and new customers.

🚦 Pulse

  • Floor Pulse - traffic-light orbs for the pulses you care about (revenue / appointments / rebook rate).

📈 Trends

  • Revenue Trends - revenue over time with forecast; hover any point for the day, date, and amount.
  • Day-of-Week Trends - per-day-of-week sparklines.
  • 7-Day Forecasted Revenue - next seven days' forecast.
  • Revenue by Day of Week - 30-day average revenue broken down by day of the week (bar / pie / sparkline).

📅 Calendar

  • Appointment Schedule - today's live schedule from FranPOS, with options to hide cancelled or blocked appointments.
  • Next Appointment - a compact card for the next upcoming appointment. Toggle whether to show groomer, pet, and service.
  • Appointment Status Mix - pie / bar chart of appointment statuses for today or yesterday.

🏅 Rankings

  • Groomer Progress - new. Personal monthly progress report for the logged-in groomer: salon vs you comparison tables, add-on breakdown, and 12-month trends. On My Grooming Dashboard it is always self-scoped; on a TV custom slide it still shows only the signed-in user's numbers when they are linked as a groomer.
  • Groomer Rankings (MTD) - the classic full MTD rankings slide.
  • Rankings (Custom) - new. Rank groomers by any metric (revenue, appointments, rebooks, rebook %, tips, first-timers, pre-booked %, hours) over any period (today / week / MTD / YTD). Choose leaderboard, bar chart, or pie chart. Some metrics (tips, first-timers, pre-booked %, hours) are MTD-only - the picker tells you so when a non-MTD period is selected.
  • Tips Leaderboard (MTD) - dedicated tips ranking.
  • First-Timer Tracker (MTD) - total new clients this month or a per-groomer breakdown.

⭐ Reviews

  • Google Reviews Board - team leaderboard for Google 5-star mentions. Honors your store-level bonus display and bonus amount per review settings.
  • Recent Shout-outs - scrolling snippets of recent 5-star reviews.
  • Review Mentions Counter - count of 5-star mentions over a configurable period, with an optional target.

📣 Notices

  • Team Notices - the full notices board, with options to show only pinned or cap the count.
  • Single Pinned Notice - highlight just the latest pinned notice.

⚙️ Operations

  • Walk-in Queue - live walk-in queue depth with traffic-light thresholds.
  • Revenue per Grooming Table - new. Total revenue for the selected period divided by your grooming-table count, compared to your daily goal per table. See the Grooming tables settings section for the one-time setup.
  • Today vs Target - compact card comparing any KPI against its stored daily target.

🧩 Custom Metrics (generic)

These three widgets can pull any KPI from the system and display it however you want, so you're not limited to the bespoke widgets above.

  • Any Metric (Single Value) - any KPI over any period (today / week / MTD / YTD), shown as a number, traffic light, gauge, or progress bar with an optional target.
  • Any Metric (Over Time) - any KPI plotted as a time series (line, bar, or sparkline) for the period you pick.
  • Metric Breakdown - split any metric by groomer, day of week, or service, rendered as a pie chart, bar chart, or leaderboard.

Visualizations & thresholds

Every widget can be rendered in multiple ways - pick the one that fits your TV best.

When a widget is selected in the Custom Slide Builder, the Display dropdown on the properties panel shows which visualizations it supports. Options include:

  • Big Number - single giant number, optionally with a target beneath it
  • Traffic Light - green / yellow / red based on configurable thresholds
  • Gauge - semicircular gauge with threshold bands
  • Progress Bar - a bar filling toward a target
  • Bar Chart - vertical bars across a series or breakdown
  • Line Chart - time-series line
  • Pie Chart - proportional slices for breakdowns
  • Sparkline - compact inline time-series
  • Leaderboard - ranked list with values
  • Default - the widget's original hand-crafted rendering (used for built-in slides on your dashboard)

Period selector

Widgets that support time-range aggregation (Rankings, Grooming Tables, Review Mentions Counter, Any Metric, etc.) also expose a Period dropdown - Today, This Week, Month-to-Date, or Year-to-Date. Historical data imported via onboarding or Data Uploads powers the longer ranges.

Traffic-light & gauge thresholds

Widgets that use a traffic light or gauge (Walk-in Queue, Pulse orbs, and any custom KPI widget with those visualizations) include a threshold editor in the properties panel. Set your green and yellow cutoffs and the direction - Higher is better (revenue, appointments) or Lower is better (walk-in queue depth). Sensible defaults are provided per metric.

MTD-only metrics

Some metrics (tips, first-timers, pre-booked %, and hours) are only reliably available for the current month, because they come from the FranPOS Metrics Report rather than per-appointment data. If you pick one of these and then switch the period to YTD or Weekly, the picker shows a small "select MTD period" hint and greys out the option - switch back to Month-to-Date to enable it again.

Grooming & store hours

One-time setup for grooming widgets, Ops Intelligence capacity, and labor estimates.

Open Admin → Store & Billing, go to the Grooming tab (owner only). Configure three areas:

Table count & revenue goal

  • Number of grooming tables - how many grooming stations your store operates.
  • Daily revenue goal per table - your target revenue per table per day (for example $300).

The Revenue per Grooming Table widget uses these values to compute period revenue ÷ table count and compare it to daily goal × days in the selected period.

Store hours

Set default open/close times, then configure each day of the week. Use the quick actions to apply defaults to all open days, copy Monday to weekdays, or mark weekends closed. Store hours feed Ops Intelligence → Capacity table-capacity calculations and Morning Briefing capacity snapshots.

Click Save grooming settings when finished.

Grooming capacity and store hours settings
Owners configure table count, daily goal, and store hours on the Grooming tab.

Marketing hub

Five tools for local outreach and customer retention, all reachable from the Marketing navigation or /marketing.

Marketing hub
The Marketing hub links to ALFIE, CRM, Campaign Builder, Factory, and Prospector.

Marketing tools use a separate Google sign-in from your store login. An active marketing subscription or trial is required for most generation features.

ALFIE Business Intelligence

Ask your FranPOS data questions in plain English - ALFIE picks the right report and returns results.

Open from the nav bar (ALFIE) or /marketing/bi. ALFIE can query FranPOS BI and Public API sources to answer questions like customer counts, appointment metrics, revenue trends, and customer lists.

ALFIE Business Intelligence chat
Type questions in plain English and review tabular results from FranPOS data.

How to use it

1
Sign in with your Google account and select your store location if prompted.
2
Type your question in natural language - for example "How many new customers did we get last month?" or "Show me appointments cancelled this week."
3
Review the answer. ALFIE explains which data source it used and shows tabular results when applicable.
4
Download or act on results - export XLS or PDF when available, or send customer lists directly to Campaign Builder when the report includes email-ready contacts.

Conversation history is saved per session so you can refine follow-up questions without re-stating context.

Marketing Factory

AI-powered image and caption generator for your social media campaigns.

The Marketing Factory creates professional Instagram-ready images and captions using AI. You provide the creative direction and the AI does the rest.

Marketing Factory
Enter a campaign idea and optional message to generate AI social images and captions.

How to use it

1
Go to Marketing Factory from the Marketing hub or the nav bar. Sign in with your Google account (this is separate from your store login).
2
Select your location from the dropdown. If you have one store it's selected automatically. If you manage multiple locations you can choose which one.
3
Enter your Event / Campaign Idea. Describe the theme you want - for example "Easter Sunday", "Summer Pool Party", or "BarkDay Celebration". The AI will interpret this creatively and generate themed imagery (dogs with Easter props, pool party settings, birthday decorations, etc.).
4
Add a Marketing Message Idea (optional). Enter the rough wording of your offer or promotion - for example "20% off grooming this weekend" or "Free treat with every bath." The AI will refine your wording to make it more compelling and on-brand.
5
Choose how many concepts you want (1, 3, or 5). Each concept generates a square post image (1:1), a vertical story/reel image (9:16), and a caption with hashtags.
6
Click Generate Content and wait for the AI to create your assets. Each concept takes about 25-40 seconds.

After generating

  • Hover over any image and click Download to save it
  • Click Copy next to a caption to copy it to your clipboard
  • Use the Share buttons to get a shareable link
  • All batches are saved to Your Library so you can come back to them later

An active subscription or trial is required to generate content.

Customer CRM

A full customer relationship hub for lapsed and at-risk grooming clients - search, filter, track outreach, and see every Campaign Builder email open and click.

Open from the nav bar (CRM) or /marketing/crm. CRM connects Ops Intelligence follow-up alerts, FranPOS customer data, and Campaign Builder tracking into one place.

Customer CRM
Sync all customers from FranPOS, filter to lapsed outreach, and track campaigns from one screen.

Ops Intelligence shortcut

When Ops Intelligence flags lapsed customers in Daily Workflow → Customer Follow-Up, click Open CRM on that section to jump straight to the full list with contact info - not just the sample names on the workflow card.

Getting customers into CRM

1
Select your store (if you manage more than one location).
2
Click Sync customers from FranPOS. OpsBeacon pulls your full grooming client list with email, phone, last visit date, and segment (active, at-risk, lapsed). Large stores may take 1-3 minutes - wait for the success message before refreshing. Use the Lapsed only (60+ days) checkbox to narrow to outreach targets.
3
Customers stay in your queue as Open until you contact them, they book a future appointment, or you resolve them manually. Click Check future bookings to auto-resolve anyone who already has an upcoming grooming appointment in FranPOS.

Search and drill-down filters

Use the search box to find customers by name, email, phone, notes, or campaign subject. Additional filters help you build targeted outreach lists:

  • Status - Open, Contacted, Responded, Resolved, or Dismissed
  • Segment - Active, lapsed, at-risk, or inactive (based on days since last visit)
  • Lapsed only - quick filter for 60+ days since last grooming (lapsed + inactive segments)
  • Engagement - Hot, Warm, Light, Scanner, Problem, or Cold (same classification as Campaign Builder tracking)
  • Opened / Clicked / Bounced - filter by email behavior (expand More filters)
  • Days lapsed range - min/max days since last grooming visit
  • Never contacted - customers with no logged outreach yet
  • Has email only - hide rows without an email address
  • Sort - by days lapsed, name, last contact, opens, clicks, or last visit

The KPI bar at the top updates with your current filters (open count, hot leads, opened, clicked, never contacted, bounced).

List view vs. Pipeline view

  • List - full table with contact info, engagement badges, email stats, and quick actions (Email, Log call)
  • Pipeline - kanban columns (Open → Contacted → Responded → Resolved) to drag customers through your outreach workflow; change status from each card's dropdown

Customer detail drawer

Click any customer row to open the detail panel with four tabs:

  • Overview - visit history, segment, status, and a rolled-up engagement summary
  • Campaigns - every Campaign Builder email to this customer, including:
    • Send, delivered, opened, clicked, bounced, complained, and unsubscribed status
    • Open and click counts with timestamps
    • Individual click URLs (which links they clicked)
    • Website engagement - page views, video watch progress, demo form submissions
    • Hot/Warm/Light engagement classification per send
  • Activity - unified timeline merging phone logs, email sends, opens, clicks, bounces, and demo submissions
  • Notes - free-form notes saved to the customer record (conversation summary, preferences, follow-up plan)

Outreach actions

1
Send a campaign - select one or more customers (checkbox) and click Send campaign, or use Email on a single row. You are taken to Campaign Builder with recipients pre-loaded and linked back to CRM for tracking.
2
Log a phone call - click Log call (or Call in the table) to record outreach without sending email.
3
Change status - mark as Contacted, Responded, Resolved, or Dismissed from the detail drawer or pipeline view.
4
Export CSV - download the currently filtered list for mail-merge or external tools.

How campaign tracking connects

When you email customers from CRM, each recipient is tagged so Campaign Builder and Resend webhooks can update their record automatically. You will see opens, clicks, and bounces on the customer without leaving CRM. Historical sends also appear when the recipient email matches, even if the email was sent before CRM existed.

Engagement classes match Campaign Builder tracking: Hot (demo intent or strong video engagement), Warm (video started or deep watch), Light (website visit), Scanner (email click with no human website activity), Problem (bounce/complaint), and Cold (no meaningful engagement yet).

When customers leave the queue

A customer is automatically marked Resolved when FranPOS shows they booked a future grooming appointment, when sync detects they groomed again recently, or when you resolve them manually. Use Check future bookings after sending re-engagement campaigns to clear anyone who rebooked.

Campaign Builder

Build and send email campaigns to your customers.

The Campaign Builder lets you design professional emails, upload a list of recipients, and send your campaign - all from one place.

Campaign Builder
Design your email, upload recipients, send, and track opens and clicks.

Four-step process

1
Design your email. Use the visual editor to write your email content and set the subject line. You can save your designs as templates (private to you or shared with your team) for reuse. Use merge fields like {{name}} to personalize each recipient's email.
2
Upload your recipients. Upload a CSV or Excel file with your contact list. Map the columns (name, email, etc.) so the system knows which field is which. Recipients can also arrive pre-loaded from Customer CRM, Business Prospector, or ALFIE.
3
Send your campaign. Review your email and recipient count, optionally send a test email to yourself first, then send to everyone. A progress bar shows delivery status.
4
Track results. Open the Tracking step to see per-recipient status (sent, delivered, opened, clicked, bounced, unsubscribed), engagement classes (Hot/Warm/Light), website visits, video watch progress, and demo form submissions. The same data appears on each customer in Customer CRM when the send is linked by email or CRM contact ID.

Business Prospector

Find potential business partners and customers near your store.

The Business Prospector helps you discover nearby businesses that could be great referral partners or customers - like dog daycares, veterinary clinics, pet-friendly apartments, and more.

Business Prospector
Describe nearby businesses in plain English and review matching leads in a table.

How to use it

1
Describe what you're looking for in plain English. For example: "Dog daycares within 5 miles of Dunwoody, GA" or "Veterinary clinics near our store."
2
Review the results. The system searches for matching businesses and shows them in a table with names, addresses, phone numbers, and other contact details.
3
Use your results to build outreach lists, plan partnerships, or add contacts to your Campaign Builder email list or Customer CRM workflow via Campaign Builder handoff.

Past searches are saved so you can reload and filter results anytime. Trial accounts can view a limited number of enriched results per search.

Team access

Invite your team and control who has access.

Store owners can invite team members from Admin → Team Access. Here's how it works:

Team Access admin section
Invite team members by email and assign owner, manager, or staff roles.
  • Enter a team member's email address and choose a role: Staff, Manager, or Owner
  • They'll receive login credentials and can sign in at /login
  • If someone forgets their password, they can use Forgot password? on the sign-in page - no owner action required
  • Staff use My Home, My Grooming Dashboard (linked groomers), or the store TV slideshow; they personalize TV slides via the gear menu when applicable
  • Managers get Admin access (except billing changes), Ops Intelligence, marketing tools, and the Executive Dashboard
  • Owners have full access including billing, FranPOS credentials, and team management
The Employees admin card (for Google Review name matching) is separate from Ops Intelligence Team members (for pay rates and capacity roles). Configure both when setting up reviews and Pay Sheets.

Linking logins for My Grooming Dashboard

For a groomer to see My Dashboard on My Home and open My Grooming Dashboard, their OpsBeacon login must be linked to the correct payroll team member with role Groomer. Configure team member roles under Admin → Ops Intelligence → Team members, then link the user under Admin → Team Access.

Billing & subscription

Manage your subscription and payment details.

New stores start with a free trial (typically 14 days). During the trial you have full access to the TV Dashboard and all features.

After your trial ends:

  • The TV Dashboard will show a prompt to subscribe
  • You can still access Admin to set up your subscription

Managing your subscription

In Admin → Store & Billing, use Manage subscription and billing to open /admin/subscription. There you see products and pricing from Stripe, complete checkout for a new subscription, or (once subscribed) open the Stripe Customer Portal to change plans, payment method, and cancellation. Your administrator must enable the same prices in Stripe under Settings → Billing → Customer portal.

Subscription and billing page
Choose your plan and complete checkout, or open the Stripe Customer Portal.

Only the store owner can manage billing.

Troubleshooting

I didn't receive my verification email

Check your spam folder. If it's not there, try signing in at /login - you'll see an option to resend the verification email.

I forgot my password

Go to /login and click Forgot password?. Enter your account email and check your inbox for a reset link (expires in about one hour). After setting a new password, sign in again. If you still can't get in, confirm you're using the same email your store owner invited, or ask them to verify your account in Admin → Team Access.

My password reset link expired or doesn't work

Reset links expire after about one hour and can only be used once. Request a fresh link from /forgot-password. If the email never arrives, check spam and confirm you entered the same email address your store owner invited you with.

My TV Dashboard says "Billing blocked"

Your trial has ended or your subscription payment failed. Go to Admin → Store & Billing and open Manage subscription and billing.

The dashboard isn't showing any data

Make sure your FranPOS connection is set up correctly in Admin → Store & Billing → Update FranPOS connection. Then click Sync from FranPOS to pull your latest data.

Marketing Factory says "Subscription required"

You need an active marketing subscription or trial to generate content. Contact your administrator to get access.

I can't invite team members

Only the store owner can invite new team members. If you're staff, ask your store owner to add people from Admin → Team Access.

My custom slide isn't showing on the TV

Open Admin → Dashboard / TV Slides and confirm the toggle next to your custom slide is on. If it's on but you still don't see it, open the TV Dashboard and click the gear icon - staff-level slide preferences override the master list for that device's signed-in user.

A metric is greyed out in the widget properties panel

That metric is MTD-only (tips, first-timers, pre-booked %, or hours) and you have the widget set to a non-MTD period. Change the Period back to Month to Date and the option will become selectable.

Revenue per Grooming Table says "not configured"

The widget needs the store-wide table count and daily goal. Open Admin → Store & Billing → Grooming (owner only) and set both values - see Grooming & store hours.

Ops Intelligence Capacity says "not available yet"

Configure grooming tables and store hours under Admin → Store & Billing → Grooming, assign team member roles on Ops Intelligence → Pay Sheets, and run Sync from FranPOS so scheduled hours and appointments are current.

I don't see My Dashboard on My Home

That button appears only for logins linked to a team member with the Groomer role. Ask your owner or manager to link you in Admin → Team Access and set your role under Ops Intelligence Team members. See My Grooming Dashboard.

My Grooming Dashboard is empty or says nothing is approved

An owner or manager must enable Groomer Mobile Dashboard and check at least one approved widget under Admin → Dashboard / TV Slides.

Groomer Progress shows $0 commission but has revenue and tips

Commission comes from FranPOS when available; otherwise OpsBeacon estimates from MTD booked revenue and the groomer's commission rate in Team members. Confirm FranPOS is connected and the groomer's commission rate is set under Ops Intelligence → Team members.

Pay Sheets show missing groomers or $0 revenue

Check that team member names match FranPOS (use Refresh from FranPOS), confirm the pay period dates cover days with closed-out appointments, and click Regenerate draft after updating rates. Read any Data notes banner on the pay sheet for aggregation warnings.

Pay Sheets show no tax columns or wrong state taxes

Set your store state under Admin → Store & Billing, then click Regenerate draft on the pay period. Tax estimates are computed when the draft is generated - older periods saved before this feature need a regenerate. Groomer tips are intentionally excluded from taxable wages; bather and retail tips are included.

P&L payroll looks too low or uses capacity estimates

Generate and finalize Pay Sheets for dates that overlap your P&L period. If your store uses ADP, QuickBooks, or Gusto, submit and sync tax actuals on those periods. P&L prefers pay sheet employer labor cost (gross + employer taxes) over Capacity scheduled-hour estimates. Configure fixed expenses on the P&L tab if utilities or rent show as zero.

Submit or Sync payroll buttons are missing

Store owners must select the correct Payroll provider on Pay Sheets. Integration buttons appear only for ADP, QuickBooks, or Gusto after a period is finalized. See Payroll provider integrations.

Morning Briefing did not arrive

Confirm Ops Intelligence is enabled, Morning Briefing delivery is on, recipient emails are saved, and the delivery time/timezone are correct. Use Send test email now to verify delivery, then check spam folders.

I cannot open Ops Intelligence

Only owners and managers have access. Staff should use My Home or My Grooming Dashboard (linked groomers), not Admin or the full store TV dashboard. Ask your store owner to upgrade your role in Admin → Team Access.

CRM sync is slow or shows no customers after syncing

Sync pulls from FranPOS BI and may take 1-3 minutes for stores with many lapsed clients. Wait for the green success message. Confirm FranPOS credentials under Admin → Store & Billing. If the list is empty, try setting Status to All - resolved customers are hidden when filtering to Open only.

Campaign opens and clicks are not showing in CRM

Engagement appears when emails were sent through Campaign Builder to the same email address, or when the send was launched from CRM (which links the contact automatically). Open the customer's detail drawer → Campaigns tab. Allow a few minutes after sends for Resend webhooks to update open/click counts.

Ops Intelligence says contact lapsed customers but CRM is empty

Ops Intelligence summarizes counts from appointment history; CRM needs a one-time Sync customers from FranPOS to import the full client list with email and phone. Click Open CRM on the Customer Follow-Up workflow section, then sync.

YTD or weekly ranges on a widget show empty

Longer time ranges rely on historical data being present in Firestore. Use Admin → Data Uploads to import the FranPOS Sales and Appointment reports for the missing dates, or run Sync from FranPOS if your live API credentials are configured. Onboarding handles YTD for new tenants automatically.

Need more help? Contact support at support@socialplaysystems.com.