Skip to content

Features

What the software actually does

No modules that exist only on this page. Everything below is in the product today, described the way it behaves.

Attribution

Every lead traced to the level you spend at

Spend decisions are made on keywords and ads. A report that stops at the channel cannot change one.

  • Click identifiers, captured first party

    A tracking snippet on your site records gclid, gbraid, wbraid and fbclid alongside the full UTM set, and holds them until the person actually submits something. The join survives a visit on Monday and a form on Thursday.

  • Every touch stored, not just the winning one

    Touchpoints are append only, with first and last touch derived from them. Changing how you want to credit a lead later is a different read of the same rows.

  • Channels classified, including your own traffic

    Your own hostnames are registered so a visit that bounced through your site does not get filed as a referral from yourself.

  • Leads reconciled against the gym app

    A person who filled in a form and then walked in and got created in PushPress is one person here, matched on contact details with a review queue for the pairs that are close but not certain.

How deep a lead is traced

  1. Channel

    Paid search, paid social, organic, referral, direct

  2. Campaign

    One row per campaign, per location

  3. Ad group

    Inside the campaign

  4. Keyword or ad

    With match type, the level spend is actually decided at

  5. Landing page

    Where the click arrived

Starting thresholds, yours to change

  • Watch7 days absent

    or attendance down to 75% of this member’s own baseline

  • At risk14 days absent

    or attendance down to 50% of this member’s own baseline

  • High risk21 days absent

    or attendance down to 25% of this member’s own baseline

Members with under 28 days of tenure are exempt from the ratio, because a new member has no baseline to fall from.

Retention

Risk measured against each member's own habit

Attendance is the earliest honest signal a gym has. It is also the one nobody reads, because reading it means going member by member.

  • Two signals, not one

    Days since the last check-in catches the member who vanished. Recent attendance against that member's own baseline catches the one who quietly went from four sessions a week to one and has not technically been absent at all.

  • Thresholds are settings

    Absence windows, ratio cutoffs, the tenure floor below which a member has no baseline worth comparing, and the baseline floor below which the history is too thin to judge. Every one of them is yours to set.

  • New members are exempt from the ratio

    Somebody who joined three weeks ago has no habit to fall from. Flagging them as high risk teaches your staff to ignore the list.

  • It ends as a work list

    Risk is not just a chart. The people to contact appear on a daily list with their tenure, their absence, their plan and where they came from.

Multi-location

Built for a network from the first table

Location is not a filter bolted on afterwards. It is on the rows: members, leads, costs, integrations, goals and thresholds.

  • One account, every location

    Read the network as a whole, compare locations side by side, or open one and stay in the same tool.

  • Per location settings

    Timezone, brand mark, colour, programs, plans, coaches and staff access are set per location, because a network is not five copies of one gym.

  • Per location credentials

    Each location connects its own gym software account. One location moving from Mindbody to PushPress does not disturb the other four.

  • Goals and pace

    Targets are set per location and per metric, for a period, and compared against where the calendar says you should be rather than only against the final total.

One account

Network roll-up

Every location, one set of numbers, one date range

  • Location 1
  • Location 2
  • Location 3
  • Location 4
  • Location 5

Each location keeps its own timezone, currency formatting, thresholds and integration credentials.

Costs

The money that never shows up in an API

Ad platforms report their own spend. Everything else about acquisition costs something too, and leaving it out does not make it free, it makes the comparison wrong.

Entered as a period

A retainer is monthly, a tournament banner is one weekend. Both are recorded for the dates the money bought, and prorated by day overlap on read.

Attached to a channel

Against a channel and optionally one location, never invented down to a campaign or keyword that the money was not actually spent on.

Feeds the same figures

Cost per lead and cost per member for organic, referral and word of mouth stop being blank and start being comparable to paid.

Insights

Rules that say what changed, and by how much

Not a black box and not a chatbot. A set of checks that run against your data on your thresholds, each one naming the rows it fired on.

Every threshold below is a setting, expressed in your own currency and sized for your own volume, so a studio and a large gym do not share one definition of a problem.

  • Leads sitting past your own first contact deadline
  • Trial show rate falling against the previous period
  • No-show rate above the level you set
  • Attendance declining across a location, not just one member
  • A jump in members crossing into at risk
  • Cost per lead or cost per member drifting on a campaign with real spend
  • A keyword producing leads well above its own recent pace

Provenance

You can check where a number came from

A figure you cannot audit is a figure nobody trusts twice.

Every sync is a record

Each pull writes what ran, for which location and stream, how far it got and what it brought back.

Webhooks are deduplicated

A live event and the scheduled pull that also carries it resolve to one row, not two.

Uncertain matches are queued

People who might be the same person go to a review screen instead of being merged silently.

Credentials are sealed

Provider keys and tokens are encrypted at rest, and the values are never shown back to anyone, including us.

Integrations

What connects, and what each connection brings

Connections are made in the product with a guided wizard. Nothing here needs a developer on your side.

Gym software

PushPress

Connected per location, with its own credentials, with changes pushed to us as they happen

  • Members & contacts
  • Memberships & plans
  • Class schedule
  • Check-ins
  • Appointments & trials

Mindbody

Connected per location, with its own credentials, with changes pushed to us as they happen

  • Clients & contacts
  • Memberships & plans
  • Class schedule
  • Check-ins
  • Appointments & intros

Ad platforms

Google Ads

Connected once, then mapped to locations, updated within the hour by a script you paste in

  • Campaigns, ad groups, keywords & ads
  • Daily spend & performance

Meta Ads

Connected once, then mapped to locations, with changes pushed to us as they happen

  • Campaigns, ad sets & ads
  • Daily spend & performance
  • Lead Ads form submissions

Web and CRM

GoHighLevel

Connected once, then mapped to locations, with changes pushed to us as they happen

  • Form & survey submissions
  • Calls
  • Call recordings
  • Calendar bookings
  • Contacts
  • Opportunity pipelines & stages

Website tracking

Connected once, then mapped to locations, sent by the tracking snippet as it happens

  • Form submissions

See it against your own numbers

The fastest way to judge this is to point it at one location and read the first month.

Talk to us