New customer booked? Click New Customer → enter their postcode → pick the nearest instructor → click Assign to Instructor. Website booking came in? Click the Web Bookings button at the top → click Assign to Instructor on their row. New instructor applied? Go to Pending tab → review and approve. Student needs a different instructor? Go to Students → find the student → click Reassign. Need to message everyone? Go to Messages tab → type your message → Send to All.
Dashboard Overview
Active Instructors
Loading...
Recent Activity
Loading...
Today's Lessons
Loading...
Revenue This Week
Loading...
Unconfirmed — Next 48h
Loading...
Re-engagement Alerts
Loading…
All Instructors
Assigned This Week
—
Mon–Sun
Assigned This Month
—
Loading…
Assigned All Time
—
All records
Click any instructor row to view their full profile, edit their details, see their students, or send them a message. Use Approve to activate a pending instructor. Use Message All to send a broadcast to everyone.
Name
Badge
Type
Transmission
Postcode
Status
Students
Last Login
Hours/Wk
Referral/Wk
Assigned/Wk
Actions
Pending Applications
Name
Badge
Type
Email
Phone
Area
Actions
All Students
All students across all instructors. Search by name or phone number. Click a student row to view their profile, reassign them to another instructor, or edit their details.
0 students online now
#
Student
Phone
Address
Lesson Type
Instructor
Lessons
Hours
Progress
Last Login
Last Lesson
Date Added
Actions
All Lessons
Date
Time
Student
Instructor
Type
Duration
Pickup
Payment
Confirmed
Actions
Revenue Overview
Revenue by Instructor
Daily Revenue
Revenue Breakdown
Instructor
Lessons
Hours
Revenue
Avg/Lesson
Avg/Hour
Student Feedback & Reviews
Loading feedback...
Student Requests
Reschedule Requests
Transfer Requests
Instructor Change Requests
Inbox
Loading…
Sent Messages
Loading…
Create Instructor Account
Find Closest Instructor
Use this to match a new student with the nearest available instructor. Fill in their details, click Find, then choose an instructor and click Assign to Instructor.
Customer Details
Step 1: Enter the new student's details below, then click Find Closest Instructor.
All Instructors — Closest First
Step 2: Pick the best instructor from the list below and click Assign to Instructor on their card to create the student account.
Enter a postcode and click Find to rank instructors by distance. All instructors shown below for browsing.
Analytics & Reports
Weekly Hours per Instructor
Lesson Types This Week
Lessons Per Day This Week
Earnings per Instructor (This Week)
Top Instructors by Lessons (This Week)
Recent Login Activity
Loading…
Instructor Stats This Week
Instructor
Lessons
Hours
Students
Earnings
Avg/Lesson
Select an Instructor to View Calendar
…
Saved Students (Roster)
Instructor Info
Name
This Week
Total Students
Coverage (Postcodes)
Hrs This Week
Status
Click Refresh to load data.
Follow Up List
Students added for follow-up from referrals. Work down the list one by one — call or WhatsApp, then mark as done.
Next to follow up
Activity Log
Recent Instructor Logins
Loading…
Recent Student Logins
Loading…
Recent Lessons Added
Loading…
Recent Messages
Loading…
Coverage Map
All instructors and students on one live map. Click any pin to view profile, WhatsApp or assign.
New (<7d)OnlineAppRoster
—
Instructors
—
Students on Map
—
Areas Covered
—
Online Now
Instructor pin — click to view & assignStudent pin — click to view detailsNearest instructor result
Students Without a Mappable Address (0)
Referral Accounting
Today
Referrals0
Collected£0
Outstanding£0
Total value£0
This Week
Referrals0
Collected£0
Outstanding£0
Total value£0
This Month
Referrals0
Collected£0
Outstanding£0
Total value£0
All Time
Referrals0
Collected£0
Outstanding£0
Total value£0
Outstanding Credits — Replacement Students Owed
When a student leaves, the instructor is owed a credit (replacement student). Mark each one fulfilled once a replacement has been assigned.
Run the SQL below in your Supabase SQL Editor to create the Finance tables. After running, refresh this tab.
-- Finance Centre tables for DriveSQ
-- 1. Student payments (money received from students into DriveSQ)
create table if not exists student_payments (
id uuid primary key default gen_random_uuid(),
instructor_id text not null,
student_name text,
student_account_id text,
amount decimal(10,2) not null,
method text default 'bank_transfer',
reference text,
notes text,
credit_hours decimal(6,2),
created_at timestamptz default now(),
created_by text default 'admin'
);
alter table student_payments enable row level security;
create policy "admin_all" on student_payments for all using (true) with check (true);
-- 2. Instructor charges (what instructors owe DriveSQ)
create table if not exists instructor_charges (
id uuid primary key default gen_random_uuid(),
instructor_id text not null,
type text not null default 'referral',
amount decimal(10,2) not null,
description text,
status text not null default 'outstanding',
settled_amount decimal(10,2) default 0,
settled_via text,
referral_id text,
created_at timestamptz default now(),
settled_at timestamptz
);
alter table instructor_charges enable row level security;
create policy "admin_all" on instructor_charges for all using (true) with check (true);
-- 3. Instructor payouts (when DriveSQ pays instructors)
create table if not exists instructor_payouts (
id uuid primary key default gen_random_uuid(),
instructor_id text not null,
gross_amount decimal(10,2) not null,
charges_offset decimal(10,2) default 0,
net_amount decimal(10,2) not null,
method text default 'bank_transfer',
notes text,
charge_ids jsonb,
created_at timestamptz default now()
);
alter table instructor_payouts enable row level security;
create policy "admin_all" on instructor_payouts for all using (true) with check (true);
-- 4. Add instructor_pay column to lessons if not present
alter table lessons add column if not exists instructor_pay decimal(10,2);
alter table lessons add column if not exists instructor_pay_settled boolean default false;
Show:
Loading finance data…
Recent Transactions
Loading…
Log Student Payment
Record money received from a student into DriveSQ
Credit hours added (at £35/hr):0.0 hrs
Add Instructor Charge
Record a fee or charge owed by an instructor to DriveSQ
Process Payout
Pay out earnings to instructor
Pending Earnings
£0
Outstanding Charges
£0
Net to Pay
£0
The instructor's outstanding charges (£0) will be deducted from their earnings. They receive the net amount and all linked charges are marked settled.
Net Amount to Transfer
No charges offset
£0.00
Finance History
All transactions for this instructor
Loading…
Settle Charge
Mark this charge as settled
Loading charge details…
Accounting
Income Collected
£0
referrals collected
Expenses
£0
total outgoings
Net Profit
£0
— margin
Outstanding
£0
accounts receivable
Collection Rate
—
% of fees collected
Avg Days to Pay
—
days sales outstanding
Avg Fee
£0
per referral
Monthly Burn
£0
avg monthly expenses
12-Month Overview
IncomeExpensesProfit
Monthly income, expenses, and net profit. Margin = net ÷ income. Outstanding = uncollected fees.
Month
Income
Expenses
Net Profit
Margin
vs Prev
Outstanding
Add Income Entry
Revenue by Instructor
Other Income Entries
Add Expense
Quick-add:
Breakdown by Category
Transactions
UK tax year (6 Apr → 5 Apr) — Self Assessment reference only. Always verify with an accountant. Figures use standard 2024/25 rates.
Referrals that have been unpaid for 30, 60, or 90+ days. Use this to chase outstanding payments.
This instructor has unfulfilled credits — when assigning a new student, consider them first. Click Mark Fulfilled below once a replacement is assigned.
Reassign Student
Admin Notes & Diary
COLOR:EMOJI:
Action Queue
Auto-detected items that need your attention.
Instructor Scorecard
Instructor ↕
Students ↕
Lessons/Mo ↕
Hours/Mo ↕
Revenue ↕
Rating ↕
Status
Loading…
Bulk Messaging
0 selected
Student Progress Overview
All students ranked by driving lesson progress.
Waiting List
Students on this list have not yet been assigned an instructor. Use Add Manually for phone enquiries. Website bookings appear here automatically with a Website Booking label — use the Web Bookings button at the top for a faster view. Click Find & Assign on any row to match them with the nearest instructor.
Instructor Availability
Instructors set their own hours in their dashboard. This shows a read-only overview of who's free when.
Area Intelligence
Coverage · Density · Gaps · Workload — based on live student data
Student count per outward postcode, derived from student addresses. Colour shows density level.
Each instructor's actual student distribution across postcodes, with workload bar.
Areas that need attention — single-instructor dependencies, overloaded areas, and common Manchester postcodes with no students yet.
Instructors whose stated coverage postcodes don't match where their students actually are.
Activity log — messages, actions, approvals, referral history
Edit Instructor
Changes save to database immediately
DVSA Badge Photo
JPG / PNG / WEBP · max 5MB · Photo saves when you click Save Changes
App Installation
Install this admin portal as an app on your device for quick access.
Suspension Settings
Password
••••••••
Send Message
To an instructor
Message All Instructors
Sends to all approved instructors
Add Lesson
For instructor
Lesson Details
—
Assign Student
Assigning to instructor
Notify the instructor via WhatsApp with student details and portal link.
Enter £0 for franchise instructors. Unpaid referrals are tracked in the Referrals tab.
Block Instructor
Block this instructor's access
When blocked, the instructor sees a suspension screen. They will not be able to use the portal until you unblock them.
Reassign Student
Select a new instructor for this student
All student details will be pre-filled in Find & Assign so you can pick the best available instructor. The old instructor will be notified automatically.
Approve Instructor Change
Select the student's new instructor
Student Details
—
Progress & Performance
Topic Ratings
Recent Lessons
Test Dates
Theory Progress & Mock Tests
Chat History — Instructor ↔ Student
Loading chat…
Admin Notes (private — not visible to instructor or student)
Edit Student
Changes update lessons, roster and account
Merge Duplicate Students
Students sharing the same phone number — choose which profile to keep
Create Student Account
Student logs in with their phone number — no code or PIN needed
This creates the student's portal account and adds them to the selected instructor's roster. The instructor will receive a notification automatically. Fill in the student's details, select an instructor, then click Create Account.
Referral Fee
£
Enter £0 for franchise instructors.
Account Created!
Student logs in at drivesq.co.uk/student.html using their phone number — no code or PIN needed.
Student added to instructor's roster. Notify them to book their first lesson.
📢 Broadcast to All Students
Sends an admin message to every student account
WhatsApp Broadcast List
WhatsApp doesn't support true broadcast. Copy numbers below and paste into a WhatsApp group or message individually.
Loading student numbers…
Confirm broadcast
↑↓ Navigate↵ OpenEsc CloseCtrl K or / to open
⚠️
Are you sure?
Required SQL — Run in Supabase SQL Editor
Run this SQL in your Supabase project to fix the delete cascade and enable all features
Instructor Coverage Map
Student pickupInstructor home
Website Booking Requests
Loading…
Action Required: Each student below has booked through the website and is waiting to be contacted. Assign an instructor, then use the WhatsApp buttons to notify both the student and instructor immediately.