Loading live Phorest availability…
Loading live service availability…
| Loading live availability… |
Phorest · loading live data
| Employee | Bookings | Online bookings | Revenue | Avg |
|---|---|---|---|---|
| Loading live data… | ||||
| Total | — | — | — | — |
Phorest · loading live data
| Service | Services | Online bookings | Revenue | Avg |
|---|---|---|---|---|
| Loading live data… | ||||
| Total | — | — | — | — |
Phorest · booking channel
Phorest records the channel a booking came through. It does not record what brought the client to the salon, so this is not a marketing source and never becomes one.
GA4 · loading live data · salon wide · not changed by the filters above
Website sessions for the whole site. These sit beside the bookings, not joined to them. Nothing here says which session became which appointment.
Google Ads · access pending · salon wide · not changed by the filters above
| Campaign | Spend | Impressions | Clicks | Conversions | Cost per conversion |
|---|---|---|---|---|---|
| Google Ads access is pending. No campaign data is shown. | |||||
These figures cover the whole salon. The stylist and service filters do not apply to them, because neither Google Ads nor GA4 carries a stylist or a service on a click, and nothing in either account maps to one. Conversions are counted by Google Ads on its own attribution window. They are not matched to Phorest appointments, so a conversion here is not a confirmed booking. Performance Max is broken out by asset group. A salon running no Performance Max sees only its own campaign rows.
So the same word means the same thing every month
| Total bookings | One client on one date. Phorest returns a row per service, so rows are grouped by booking ID where present and otherwise by client plus appointment date. | Verified with Dwell’s API |
| Services booked | One non-placeholder service row on a booking. Zero-priced placeholder rows such as No Add On are excluded. | Verified with Dwell’s API |
| Online bookings | A booking with at least one service recorded by Phorest as ECOMM_WEB_APP. | Verified with Dwell’s API |
| Total clients | Clients with at least one booking inside the selected period, counted once each. | Verified with Dwell’s API |
| New clients | Clients whose Phorest clientSince date falls inside the period and who have a first appointment. The total includes attended first visits in the period and first visits booked up to 180 days ahead. | Verified with Dwell’s API |
| Revenue | Scheduled service revenue: the sum of prices on non-placeholder service appointments. It is not till revenue and excludes retail products, tips, discounts and part payments. | Verified with Dwell’s API |
| Average ticket | Scheduled service revenue divided by bookings, not by service rows. | Verified with Dwell’s API |
| By employee and by service | Bookings, online bookings and revenue from the same rows as the totals. A multi-employee booking can appear in more than one employee row, so employee rows are not intended to sum to the salon total. | Verified with Dwell’s API |
| How bookings were made | Phorest’s booking-channel field. It describes where a booking was entered, not which marketing activity caused it. | Verified with Dwell’s API |
| Openings, next 7 days | Live possible start times returned by Phorest for one selected service. Times can overlap and are not separate sellable appointments. | Live from Phorest |
| How far ahead people book | The gap between when a booking was created and its appointment date. | Verified with Dwell’s API |
| Website traffic | Salon-wide GA4 sessions by channel. They cannot be filtered by employee or service because a website session carries neither. | Live from GA4 |
| Google Ads | Salon-wide spend, clicks, conversions and campaign details will appear only after Google Ads API access is connected. | Access pending |
| Marketing-to-booking attribution | Phorest stores no campaign, UTM or analytics ID on a booking, so joining a session or ad click to a booking requires additional tracking. | Requires additional tracking |
| Retail product sales | Phorest exposes no readable sales endpoint for this integration, so retail products are excluded. | Not available from Phorest |
| Cancellations and no-shows | Cancelled and no-show appointment records are excluded. A separately billed No-Show/Late Cancellation Charge remains because Phorest records it as a priced service line. | Handled explicitly |