Colour-coded by tier — Gold, First Group, Second Group
0
⭐ Premium Gold
0
🟢 First Group
0
🔵 Second Group
0
◻️ Potential Customer
0
🚨 Red Flagged
Add New Patient
Patient
Tier
Doctor
Last Visit
Insurance Expires
Spend
Flags
Notes
👥
No patients yet — upload CSV or add manually.
Follow-Up List
Patients needing a call — 3 attempts max per patient
Tracker
Monitor order status, pickups, and resolved follow-ups
After Pickup Review
Check in with patients after they collect their glasses
In-House Patients
Seen by in-house doctors
Flags
Handled By
Action
🏥
No in-house patients found.
External Rx Patients
Came with outside prescriptions — priority conversion targets
⚠ Call these patients 6 months before Rx expires — before they go back to their outside doctor.
Days Left
Urgency
Handled By
Action
📄
No external Rx patients.
Upload & Sync
Import patient data directly from OptiStore export
📁
Drop your OptiStore export here
CSV or ODS — upload exactly as exported, no changes needed
Which year is this data for? *required
This tags every patient touched by this upload so you can filter by it later.
Column mapping — auto-detected for OptiStore:
📂 Previously Uploaded Files
No files uploaded yet.
How to export from OptiStore
1. Open OptiStore ONE 2. Go to Reports → Customer Records 3. Select All time for first upload, current year for updates 4. Export as CSV or ODS — upload as-is
Archive
Inactive patients — hidden from active lists, never deleted
Archive a patient from their profile (🗄️ Archive) to move them here. Archived patients are excluded from all active lists and stats.
0 archived
Patient
Last Visit
Doctor
Spend
Years Inactive
Action
🗄️
No archived patients. Archive one from their patient profile to see it here.
Trash
Deleted patients — restorable anytime, or permanently removed by the owner
Deleting a patient from their profile moves them here instead of removing them right away. Staff can restore anytime — only the owner password can permanently erase a record.
0 in trash
Patient
Last Visit
Doctor
Deleted On
Action
🗑
Trash is empty.
Possible Duplicates
Same name matched, but the phone number couldn't confirm it's the same person — review each one below
These rows were held back during import instead of being auto-merged or auto-created, because a phone number was missing on one side and couldn't confirm whether it's the same patient. Pick Merge if it's the same person, or Keep Separate to add the incoming row as its own new patient.
🧬
No possible duplicates to review.
Performance
Owner billing performance and value delivered
💳 Billing Progress
Checks Over Time (red = flagged share)
Dispute Resolution — Resolved vs Pending
Overcharges by Supplier
Billing Breakdown
Value Delivered
Settings
Store profile, tiers, follow-up rules, team, and email templates
🏪 Store Profile
Store Identity
This information appears in email templates, the sidebar, and printed reports.
🖼️
Click to upload logo (PNG/JPG/SVG, under 200KB)
Changes sidebar and button colour across the whole dashboard.
👥 Team
In-House Doctors
Patients seen by these doctors show 🟢 in-house badges. Names must match exactly as they appear in OptiStore exports.
Everyone else is treated as an External Rx patient (📄 purple badge).
Staff / Employees
Staff names appear in the "Handled By" dropdown on Follow-Up and No-Show lists, and in Performance reports.
Add or remove names anytime — existing call logs linked to old names are preserved.
⭐ Patient Tiers
⭐ Gold Tier
Patients meeting ALL criteria below are Premium Gold.
Min. visits
Min. spend ($)
Gold patients get priority in follow-up and morning briefing.
🟢 First Group
Patients meeting ANY criteria (if not Gold).
Min. visits
Min. spend ($)
Spend floor ($)
Below this = always Second Group
Everyone below spend floor = 🔵 Second Group automatically.
📋 Follow-Up Timing
Trigger Rules
When should a patient appear on the follow-up list?
Pickup alert — after X days
Days before a "ready" order triggers follow-up
Overdue visit (months)
Months since last visit to flag as overdue
Insurance cycle (months)
Typical benefit renewal window
After-delivery review (days)
Days after delivery to trigger comfort check-in
Max call attempts
Attempts before a decision prompt appears (each store can set its own)
Order Tracker window (months)
Hide Before/After Pickup orders with no activity beyond this — keeps the tracker to current patients
Archive
Archiving is manual — archive a patient from their profile when they're no longer active.
Archived patients are hidden from all active lists and stats but are never deleted. You can restore them anytime from the Archive page.
🗑 Data Management
Delete by Year
Remove a specific year's data instead of clearing everything. Patients only tagged with this year get archived — never deleted, restorable anytime from the Archive page. Patients also tagged with other years just lose this year's tag and stay active.
Year to delete
Owner Password
Protects Owner Only areas including Billing/Performance and Trash. Once the owner has unlocked Trash, actions inside Trash do not ask for a second password.
Owner password
Admin Password
Required for destructive actions outside the Owner-only Trash area, including moving a patient to Trash, deleting upload history, Delete by Year, and Clear All Data.
Admin password
📧 Email Templates
Email Signature
This signature is appended to all email templates automatically.
How templates work: When you click 📧 Email on any patient, you pick a template (Appointment Reminder, Rx Expiring, etc.), edit the pre-filled subject and body, then click Open in Gmail. A Gmail compose window opens in your browser with everything pre-filled — you review it and hit Send. Nothing sends automatically. (A "default mail app" link is also offered as a fallback.)
Track disputed charges and verify credits were applied
0
⚠ Disputes Raised
$0
✅ Credits Confirmed
$0
🕐 Still Outstanding
Dispute Log
Disputes are added when you click "Flag Dispute" in the checker
Invoice #
Period
Patient
Overcharge
Status
Matched Credit
Action
💳
No disputes yet.
Flag overcharged lines in Check Invoice.
How Credit Matching Works
1. Flag an overcharge in the checker → appears here as ⏳ Pending Credit
2. Next month upload the new statement → system scans for credit lines
3. Credit Invoice # matches a pending dispute → auto-marked ✅ Credit Applied
4. No matching credit after 60 days → shows as ⚠ Outstanding