How this works: Each dog with ≥3 grooming visits is analyzed for pattern deviations. Data comes from per-pet visit history (not owner accounts) — multi-dog households are tracked separately by dog.
🔴 Breed = General ↔ Poodle-Doodle switch |
🟡 Size = size category changed (XS/SM/MD/LG/XL) when ≥75% of history was one size |
🟠 Service = service type switched when ≥75% of history was one type |
💲 Price = last price deviated >30% from this dog's own average for same service+size |
🟣 Booked Too Close Together = two real appointments within 10 days of each other — usually an accidental double-booking. Checked on every dog with 2+ visits, no pattern history required. FranPOS doesn't expose cancellation status on this data, so a flagged pair can sometimes be a rescheduled booking rather than a real double-booking — a quick glance and Acknowledge is fine if so.
🌴 Groomer Not Working = the appointment's assigned groomer has approved Vacation/PTO/Sick/Personal time off covering that date. Cross-checked against Supabase time_off; partial-day types (Leaving Early, Late Arrival) are excluded since we can't compare against a specific cutoff time.
🌙 Outside Business Hours = the appointment time falls before opening or at/after closing for that store and day of week — almost always an AM/PM mix-up (e.g. 11:00 PM instead of 11:00 AM) rather than a real after-hours booking.
🔮 Upcoming Bookings = the flagged visit hasn't happened yet — a future appointment already on the books doesn't match this dog's pattern, so it's still fixable before the customer shows up. Those sort to the top and are highlighted blue everywhere.
Click any row to see full visit history. Acknowledge resolved items to hide them.