Viewing as:
🔍 Search Everything
Searches across mobiles, support cars, drivers, staff, SIM cards, company assets, sales pipeline, tasks and logged discrepancies at once — and tells you where each match lives and whether it's allocated. Type at least 2 characters.
🤖 Action Center — Everything That Needs a Decision
One proactive view pulling together everything worth acting on across the whole dashboard — insurance changes, fuel cards to cancel, open discrepancies, and every other flag that stood out. Re-reads live data every time it renders.
On the PDF vs. email: browsers won't let a webpage attach a file to an email automatically (a security restriction, not a limitation of this dashboard) — "Email Summary" opens your email client with a text summary already in the body, and "Generate Full Report PDF" downloads the detailed version. Attach the downloaded PDF to that opened email yourself before sending.
On the PDF vs. email: browsers won't let a webpage attach a file to an email automatically (a security restriction, not a limitation of this dashboard) — "Email Summary" opens your email client with a text summary already in the body, and "Generate Full Report PDF" downloads the detailed version. Attach the downloaded PDF to that opened email yourself before sending.
🛡️ Insurance Changes Needed 0
| Mobile ID | Name | Current Cover | Monthly Premium | Recommended Action |
|---|
⛽ Fuel Cards to Cancel 0
| Vehicle | Name | Petrol/Diesel | Toll | Generator | Recommended Action |
|---|
⚠️ Open Discrepancies 0
| Category | Reference | Description | Source | Added |
|---|
🔎 Everything Else That Stands Out 0
| Severity | Flag | Where to Act |
|---|
💡 Client Feature Requests 0
What clients have asked for in their own portals. Set a status and write a response — the client sees both, so a suggestion never disappears into silence.
| Sent | Client | Area | What they want | Why | Their priority | Status | Our response |
|---|
🎯 Executive Overview — All Businesses
A single rollup across Mobility SA's five businesses — real revenue, biggest risks flagged anywhere in the dashboard, and open task load per owner. This re-reads live data every time it renders; it doesn't need a separate sync step.
⚠ Top Risks & Flags Across the Dashboard
📋 Open Task Load by Owner
💼 Sales Pipeline Pulse
📋 Data Coverage — What's Still Missing
Every field below is scored across the whole fleet: green ≥90% captured, amber ≥50%, red under 50%. A blank field means “not captured yet”, not “doesn't exist”. Bars are sorted worst-first, so the biggest data-capture gaps sit at the top.
Staff Tasks 0
Delegate anything to any staff member, tagged to the business it belongs to. This is separate from the fuel-specific tasks under Fuel → Integrity & Theft — those stay focused on fuel; this is for everything else.
| Business | Task | Assigned To | Priority | Status | Due Date | Created | Notes | Notify |
|---|
📬 Notification Center
Every open item across the whole dashboard — Staff Tasks, Fuel Tasks, and Allocation Prep checklists — pulled together and grouped by who's actually responsible. There's no email server behind this, so nothing sends itself: click "Send Reminder" and it opens a real email pre-filled and ready to go in your own email client — you still hit send. If someone's email isn't on file yet, add it in the Employees tab (🔒 Staff) and it'll pick up automatically.
Unallocated Pool 0
Ins / Petrol-Diesel / Toll / Gen badges before each ID: green = correct as-is, red = needs action, grey = not yet captured. Hover a badge for the specific reason.
| Name | Mobile ID / Plate | Owner | Brand / Model | ☀️ Power | 🔋 Batteries | Where it stands | Insurance | Licence Disc | Notes | Action |
|---|
🗺️ Fleet Map — Last Known Location 0
Plotted from each mobile's standing location on file, geocoded against real OpenStreetMap data — not a live GPS feed, but the last known address on record. Pin colour shows confidence:
● Precisely geocoded or a known depot
● Approximate — province-level only
○ No GPS data at all.
New addresses are looked up automatically the first time they're seen (briefly shown as province-level until resolved) and cached — never looked up twice.
Click any mobile ID anywhere in the dashboard to jump straight here and see where it last was.
📍 No GPS Data On File 0
These mobiles have no standing location captured at all — can't be plotted until someone fills in Region/Standing Location for them.
🔧 Allocation Preparation 0
Once a mobile knows which client it's headed to, it lands here with a standard checklist — fuel card, insurance, what SVD needs to procure, what IMOTO needs to build/assemble, marketing wrap, CarTrack setup, region, SVL rate, connectivity. It stays here until every single item is ticked off — sign-off is only possible once the checklist is 100% complete, and requires a name, creating a permanent record of who signed off and when.
✍️ Sign-Off History 0
| Mobile | Allocated To | Tasks Completed | Signed Off By | Sign-Off Date | Prep Started |
|---|
Check the data against the actual vehicle
Send a sheet to the manager or driver who can physically walk up to the vehicle. They confirm the plate, VIN,
licence disc, driver tag and which mobile a car supports — or write down what it actually says. Anything that
comes back different is captured as a discrepancy rather than silently overwriting what we hold.
Verification Sheets 0
One sheet per group. Send it, then capture what comes back.
| Sheet | Items to Check | Verified | Discrepancies | Progress | Last Sent | Actions |
|---|
Items 0
What we hold is our record. If the vehicle says something different, put it in
What it actually is — that logs a discrepancy for review rather than changing the data on the spot.
Apply writes the corrected value in once you're satisfied.
| ! | Province | What is being checked | What the register says | What was found on the vehicle | State | Who checked | When | Action |
|---|
Support Cars 0
All owned by SVL and rented at a flat R15,000/mo once allocated to a company — unless marked Privately Owned, in which case there's no rental at all.
Petrol-Diesel / Toll badges before each ID: green = correct as-is, red = needs action, grey = not yet captured. Cars don't carry a generator card.
| Car ID / Plate | Make / Model | Mobile Name | Driver | Company | Assigned Mobile | Region | Ownership | Rental | Insurance | Licence Disc | Action |
|---|
Insurance premium sourced from the OUTsurance vehicle schedule (policy OT122882216) where matched by plate. Region defaults to a real CarTrack GPS location where one's on file — left blank if no CarTrack data was ever found for that specific car.
Data is shared live via Supabase — changes here are visible to everyone with this page open. Prices and active status are set manually per mobile.
Management planning — nothing here notifies anyone
This is where the decisions get made and costed. Hand the finished list to HR and they run the legal process
from there — consultation, notice and paperwork. Nothing on this screen contacts anyone or changes payroll
until you apply it.
🛡️ Insurance — Policy OT122882216 (SVL policyholder)
Rule: a mobile can only carry Full cover while it's allocated to a client — insurance is a billable cost that should ride on the allocation, not sit idle. Unallocated mobiles may only be Basic (fire & theft) or None.
The Full option is disabled below for any mobile that isn't currently allocated, so it can't be mis-set from here.
✅ Should Be Insured — Allocated Vehicles 0
Every mobile and car currently allocated to a client. These earn revenue, so they should carry
Full cover. Anything here showing Basic or None is an exposure —
Insure → sets it to Full.
| Vehicle | Type | Client | Region | Make / Model | Cover Now | Premium / mo | On Schedule | Region Verified | Action |
|---|
🚫 Should Not Be Insured — Unallocated Vehicles 0
Not allocated to any client, so earning nothing. Anything still carrying cover is premium being paid
for an idle vehicle — Cancel cover → sets it to None.
Worth pausing on: an uninsured vehicle is still uninsured if it's stolen or burns in the yard. Cancelling is right for something genuinely off the road; Basic (fire & theft) is often the sensible middle for a vehicle standing at a depot.
Worth pausing on: an uninsured vehicle is still uninsured if it's stolen or burns in the yard. Cancelling is right for something genuinely off the road; Basic (fire & theft) is often the sensible middle for a vehicle standing at a depot.
| Vehicle | Type | Standing Location | Make / Model | Cover Now | Premium / mo | Annual Waste | On Schedule | Region Verified | Action |
|---|
Cost-Saving Opportunity — Unallocated Mobiles Carrying Paid Insurance 0
These are unallocated (self-insured via SVL) but still carrying Basic or Full cover — that premium is a pure cost until the mobile is allocated. Tick the ones to include, then generate a PDF task to send to the insurer requesting they be downgraded to None.
| Mobile ID | Name | Region | Current Cover | Monthly Premium | Notes |
|---|
All Mobiles — Insurance Capture 0
| Mobile ID | Name | Client | Cover Level | Monthly Premium | Notes | Total |
|---|
Change Request History
| Date | Mobiles Included | Requested By | Action |
|---|
⚠️ Discrepancies — Manual Review Queue 0
Anywhere two data sources don't line up — a vehicle on an insurance schedule that isn't in the fleet register, a fuel card that doesn't match any mobile, a billing figure that doesn't reconcile — goes here instead of getting lost in chat. Work through it, mark it resolved with a note on what was done.
| Category | Reference | Description | Source | Status | Resolution Notes | Date Added | Action |
|---|
Add Discrepancy
Bulk Import Discrepancies
One per line, comma-separated:
Category, Reference, Description, Source
🔔 Licensing Assistant —
| Priority | Mobile ID | Client | Expiry | Days | License Fee | Income at Risk | Action |
|---|
| Mobile ID | Actioned On | Notes | Action |
|---|
License Costs & Insurance per Mobile 0
License fee is pulled from the real licensing register (annual ÷ 12); insurance is the real monthly premium where on file. Both editable — type over any value to correct or fill a gap. Expiry turns amber within 30 days and red once overdue.
Only mobiles allocated to a client should carry insurance — an unallocated mobile with Full/Fire & Theft is flagged as a wasted cost, and an allocated one with None is flagged as risk exposure.
| Mobile ID / Plate | Client | License Type | License Expiry | Roadworthy Last Test | Roadworthy Expiry | License / mo | Vehicle Total |
|---|
Needs Licensing / Re-Registration 0
No valid disk on file, expired, or status unknown.| Mobile ID / Plate | Current Status | License Type | Notes | Client |
|---|
License Type Standardisation — Van Body vs Roller Mobile Facility
☀️ Power Setup — Solar Conversion Priority
All UIF, SIOC, and TM mobiles have solar with generator as emergency backup. Generator-only mobiles break down a lot and cost real money to run — this ranks them by actual generator fuel spend, so the worst (most expensive/breakdown-prone) offenders are the clearest candidates for a solar upgrade.
Equipment on Board 0
Power Setup is derived from Solar + Generator status — set Solar here and it updates automatically. Petrol Card and Generator Card status live on the Fuel Management tab, alongside fuel spend tracking. Tank (L) is the vehicle's real diesel tank capacity — the 8 UIF mobiles are confirmed at 400L each; fill it in for others as it's confirmed. It directly powers the impossible-fill fraud check under Fuel → Integrity & Theft, so a blank tank capacity means that mobile currently has no protection from that check.
| Mobile ID / Plate | Solar | Panels | Batteries | Power Setup | Tank (L) | Generator Equipment (info) | Notes |
|---|
📱 Staff Phone & SIM Coverage
Only staff who actually work in the mobiles (operators, nurses, doctors, audiologists, optometrists, drivers, etc.) get an Android phone + SIM, for the GuudPro scheduling app — not the full staff roster. Coverage below is measured against that field-role subset only, marked in the Employees tab.
Staff Phone SIMs 0
For the GuudPro scheduling app on staff Android phones — not mobile-unit internet (that's on the Flickswitch tab).
| Employee | Company | MSISDN | Provider | Plan | Monthly Cost | Phone Make | Phone Cost | Status | Assigned Device | Notes | Action |
|---|
🌐 Flickswitch Coverage — Mobile Unit Internet
Flickswitch connects each mobile's equipment and software to the internet for management — separate from staff phones. Tracked per mobile unit, not per person.
Flickswitch Devices 0
| Mobile | Client | Flickswitch SIM | Provider | Monthly Cost | Status | Notes |
|---|
Other Flickswitch Devices 0
Real SIMs from the July 2026 usage report not tied to a specific fleet mobile — cameras, solar monitoring, boat, test SIMs, etc.
| Label | MSISDN | Provider | Usage (Jul 2026) | Status | Notes |
|---|
🏥 Assets by Mobile
What's actually equipped in each mobile — medical, audiology, optometry, dental, solar, and any other fitted equipment — with its value, so total asset exposure per unit is visible at a glance.
All Assets 0
| Mobile | Category | Description | Brand / Model | Value (R) | Condition | Notes | Action |
|---|
🚗 Vehicle Ownership & Financing
Who legally owns each mobile (SVL or AMS mostly, some moving from AMS to SVL over time), whether the RC1 is on file, and — for anything financed — the lender and current loan balance. Real ownership data loaded from the fleet register where available; the rest defaults to Unknown until confirmed.
| Mobile | Owner | RC1 Status | RC1 Notes | Lender | Loan Balance | Balance As Of | Monthly Installment | Action |
|---|
👤 Drivers & ID Tags
Contact, license, and tag assignment in one place — one row per driver, joined from the Driver ID Tags register. PrDP (Professional Driving Permit) is tracked separately from the driver's license above — it's a different legal requirement. Expired or missing PrDP on a driver currently linked to an allocated mobile auto-files an Urgent task under Staff Tasks, tagged to that mobile's client.
| Name | Phone | License No. | Expiry | PrDP No. | PrDP Expiry | Medical Expiry | Guud Passport No. | Overall Score | Driving Behaviour | Scheduling | Biggest Score Gain | Company | Region | ID Tag | Role / Vehicle | Tag Status | Assigned |
|---|
🗺️ Guud Mobiles — Regional Compliance 0
Guud Mobiles' drivers grouped by region rather than by client — set up this way because each region is intended to eventually manage its own drivers through its own view. A driver only counts as compliant here with a valid PrDP, a valid medical certificate, and a Guud Passport Number all at once — one missing item pulls the whole region's score down, since this is a legal requirement, not a target to partially hit.
📊 Performance Score — Behavior, Fuel, Punctuality & KPIs 0
Four categories roll up into one composite score per person: Behavior (from CarTrack, once connected), Fuel Utilisation (discrepancies vs. expected usage), Punctuality (late/early to deployment), and KPIs (role-specific, captured directly as a score out of 100). All four are manual-capture for now — click Edit on a driver to enter numbers, or bulk-paste a full sheet.
One data-quality note: the Fuel tab's transaction records don't reliably identify which driver was actually behind each fuel purchase yet (some rows show a real name, others just a fleet code) — that's logged as an open item on the ⚠️ Discrepancies tab. Until that's cleaned up, fuel scores here are what you capture manually, not an automatic calculation.
One data-quality note: the Fuel tab's transaction records don't reliably identify which driver was actually behind each fuel purchase yet (some rows show a real name, others just a fleet code) — that's logged as an open item on the ⚠️ Discrepancies tab. Until that's cleaned up, fuel scores here are what you capture manually, not an automatic calculation.
| Driver | Behavior | Fuel | Punctuality | KPI | Composite | Last Updated | Action |
|---|
Edit Performance Score
Behavior (CarTrack)
Fuel Utilisation
Punctuality
KPIs
Bulk Import Performance Data
One driver per line, comma-separated. Matches by driver name — creates a new record if the name isn't found yet.
Name, Speeding, HarshBraking, HarshAccel, IdlingMin, Trips, FuelDiscrepancyR, LateCount, EarlyCount, KpiScore
❓ Data queries from clients
Disputed values, checked against source and resolved🏷️ AMS-owned assets
Everything legally owned by AMS🏷️ SVL-owned assets
Everything legally owned by SVL👥 Client dashboards
Companies that rent mobiles from Mobility SA
Base path:
🤝 Partner dashboards
Companies Mobility SA works alongside, not customers🗂️ Management dashboards
Internal owners of the source-of-truth records🗺️ Province map
Click a province to see its staff and vehicles
Bubbles are provinces, sized by how many mobiles are allocated there. Gold pins are mobiles with a real position on file.
On CarTrack positions. There is no live CarTrack feed connected yet, so this map cannot show where a vehicle actually is right now.
A mobile gets a real pin only when its standing location on file resolves to coordinates. Everything else is shown by the province it is
allocated to, and says so. Deploying the CarTrack sync is what turns these into live positions.
🗺️ Regional deployment
Where the mobiles and people are, and who they work for🚛 Movement planner
Cost and ownership of moving assets or people between regions🔐 Truth — Mobility
Vehicle-side systems and who holds access🔐 Truth — Staff
People-side systems and who holds access🔑 Who has access & what rights
Every company in the group, the people in it, and what each person is allowed to do in their own dashboard and app.
Set a role to apply a sensible default, then tick or untick individual rights.
These rights are a plan, not enforcement. Nothing here restricts anyone yet — this is where you decide
who should get what, ready for the server login to enforce it. Until the backend is wired, a right ticked here does
not stop or allow anything.
Company:one sub-company at a time
🏛️ Directorship & statutory duties
🧾 SARS & regulatory
| What | Period | Due | Status | Reference | Owner |
|---|
⚖️ Legal matters
Company:one sub-company at a time
📑 Contracts
Company:one sub-company at a time
🧾 Purchase orders
| PO / Ticket | Raised | What for | Amount | Priority | Stage | Owner |
|---|
📦 Mobile Products
What each deployed mobile offers on site🔌 Live Data Connectors
Every one of these currently feeds this dashboard through a manual upload or manual entry — real data, just not a live feed. This page is the honest map of what's connected today, what a live API connection would unlock, and what the tech team needs to go get from each provider to make it live. It's also meant as a working reference — add notes as you gather account details, API docs, or contacts from each provider.
Fleet Usage — KMs per Mobile 0
No live CarTrack feed connected in this build — figures below are manually entered or bulk-imported from a CarTrack export until that integration exists. Sort by clicking a column header.
| Mobile ID / Plate | Client | Current Odometer (km) | KMs This Month ▾ | Last Trip Date | Notes |
|---|
Unidentified Tracked Units 0
From your CarTrack export — vehicle names came through as broken image references, not text. Match each by KM total / depot, then assign.
Total across all unidentified units: . Assigning a unit copies its KM total straight into that mobile's "KMs This Month" field on the table above.
| Unit | Trips | Total KM | Duration | Depot Hint | Assign to Mobile | Status |
|---|
🚗 Daily Trips — CarTrack 0
Every CarTrack unit that drove, whether or not it's on your fleet list. Click "View trips" for the full trip-by-trip detail.
| Vehicle | Fleet List | Trips | Total Km | First Trip | Last Trip End | Detail |
|---|
🔔 Fuel Card Assistant
Cards should only be active on allocated mobiles — this watches allocation status and flags mismatches automatically.| Action | Vehicle | Type | Card | Reason | Mark Done |
|---|
| Vehicle | Action | Date | Notes | Undo |
|---|
Card Status — Petrol/Diesel, Toll & Generator Cards 0
Set from the real fleet register where on file — "Unknown" means no record exists, not that the vehicle doesn't have it. Support cars can carry a toll card but don't have a generator card.
| Vehicle | Owner | Type | Petrol / Diesel Card | Toll Gate Card | Generator Card | Notes |
|---|
Upload Fuel Statements
Wesbank Fuel Statement
Standard Fuel Card Statement
PDF text extracts client-side (nothing leaves this browser). Every provider formats these differently, so instead of guessing at columns, the extracted text shows below for you to read off the numbers — then enter them via "+ Add Fuel Transaction" or Bulk Import so what lands in the dashboard is always correct.
Fuel Transactions 0
| Mobile ID | Provider | Fuel Type | Date | Litres | Cost (R) | R / Litre | Driver | Garage | Notes | Action |
|---|
Fuel Utilisation per Mobile
Combines fuel spend/litres above with KMs This Month from the Usage tab.| Mobile ID | KM This Month | Total Litres | Total Fuel Cost | L / 100km | R / km | Flag |
|---|
🪪 Driver-Vehicle History (from Traffic Fines)
Real driver nomination data from traffic fine records — proof of who was driving which vehicle on which date. This is the reference to use for driver tagging until CarTrack's tag-to-driver matching goes live: check here when logging a fuel transaction and you don't know who was driving.
| Driver | Vehicle (Plate) | Matched Mobile | Date | Fine Amount |
|---|
🔍 Fuel Integrity & Theft Analysis
Compares every transaction against each mobile's own history and the fleet average — flags outliers, not just high totals.| Severity | Mobile | Driver | Date | Flag | Suggested Action | Mark Reviewed |
|---|
| Mobile | Flag | Reviewed On | Outcome / Notes | Undo |
|---|
Provider-Flagged Exceptions (Wesbank's own fraud detection)
| Vehicle | Date | Garage | Litres | Cost | Warning Type |
|---|
📋 Manual Review & Task Assignment
The assistant above flags anomalies automatically — this is where any of those (or anything you spot yourself, auto-detected or not) becomes an owned, tracked task: who's checking it, and by when. Nothing sits as just a passive alert.
| Source | Mobile | Description | Assigned To | Status | Due Date | Flagged On | Action |
|---|
⛽ Generator Fuel Purchases — All Transactions
Every real generator fuel card transaction on file, fleet-wide — not just the solar-equipped UIF/Guud units the 10L rule applies to. Some mobiles here run generators as their normal power source and aren't subject to that limit.
| Date | Garage | Litres | Cost | R / Litre | Driver | Notes |
|---|
Full Transaction List
| Mobile | Date | Garage | Litres | Cost | R / Litre | Notes |
|---|
🔋 Generator Fuel Compliance — Solar-Equipped Mobiles
UIF and Guud Mobiles units have solar power and shouldn't need generator fuel beyond an emergency — max 10L/month per mobile. Anything over that gets flagged. Before acting on a flag, cross-check against the solar utilisation logs for that period to confirm it was a genuine solar failure and not routine (avoidable) generator use.
| Mobile | Month | Litres Used | Threshold | Status | Note |
|---|
🔋 Battery Rule — Generator Fills Above 30% 0
If the solar battery still had charge, the generator shouldn't have been run. Every generator fill logged with a battery reading above the threshold appears here as avoidable spend. Fills with no battery reading captured can't be judged either way — they're counted separately below rather than assumed fine.
| Mobile | Date | Battery % | Litres | Cost | Garage / Note |
|---|
📋 June 2026 Fuel Report — MSS · SVD · Imoto
Standard Bank Fleet 360 + CarTrack, verified against RC1 certificates
The transactions in this report are already in the dashboard — they were checked line by line and match.
What is shown here is the analysis that was not previously held: OEM consumption benchmarks, cost per kilometre,
idle percentage, and the odometer-consistency test. Nothing below has been re-imported, so fuel totals are unaffected.
| Vehicle | Depot | Fills | Litres | KM | L/100km | OEM | vs OEM | Cost/km | Idle % |
|---|
🔍 Odometer Consistency — the theft test 0
Compares the odometer on each fuel receipt against CarTrack's own reading. A consistent offset means both systems
are tracking the same distance, just from different baselines — that is a pass. A drifting offset is what odometer
manipulation or off-book usage would look like.
| Vehicle | Readings | Mean Offset (km) | Spread (km) | Assessment |
|---|
🚩 Flagged Transactions 0
Worth a look, not accusations — a weekend fill may be perfectly legitimate. Declined transactions: none in June.
| Vehicle | Date | Time | Litres | Amount | Location | Why flagged |
|---|
💰 Fuel Spend Analysis
Where the fuel money actually goes — by region, then by garage. This is separate from the Diesel Price Map: that one compares prices per station, this one shows our spend per station, which is what gives negotiating leverage.
Note: region here is the mobile's assigned region, not necessarily where the fill happened — a mobile on a long trip fills up outside its home province.
Note: region here is the mobile's assigned region, not necessarily where the fill happened — a mobile on a long trip fills up outside its home province.
| Region | Spend | Share | Litres | Fills | Garages | Avg R/L |
|---|
⛽ Garage Utilisation 0
Ranked by spend. A garage taking a large share on few fills is where a rate conversation is worth having.
| # | Garage | Region(s) | Spend | Share | Litres | Fills | Avg R/L | Avg per Fill |
|---|
⛽ Diesel Price Map
⚠ Petrol is government-regulated in South Africa — the price is the same at every station nationwide at any given time, so there's nothing to compare or map for petrol. This map is diesel only, since diesel prices are set freely by each retailer and genuinely vary by station.
Click a province to drill into its diesel prices, cheapest first — steer drivers toward the green ones, away from red.
Cheapest
Mid-range
Most expensive
No data
All Garages (full list, searchable)
| Garage | Area / Town | Province | Price / Litre | Date Observed | Notes | Action |
|---|
Add Financial Period
Add Fuel Transaction
Business rule: a generator fill with battery above 30% gets flagged — the solar had charge, so the generator shouldn't have been needed. Leave blank if genuinely unknown; it just won't be checkable.
Bulk Set Regions
For allocated mobiles — the province they're deployed in for a client. One per line, comma-separated:
Province must match exactly (case-insensitive): Eastern Cape, Free State, Gauteng, KwaZulu-Natal, Limpopo, Mpumalanga, North West, Northern Cape, Western Cape.
Example:
Matches by exact Mobile ID or by plate found inside the ID.
Mobile ID or Plate, Province
Province must match exactly (case-insensitive): Eastern Cape, Free State, Gauteng, KwaZulu-Natal, Limpopo, Mpumalanga, North West, Northern Cape, Western Cape.
Example:
FLT-74, Western Cape
CAA550422, Gauteng
Matches by exact Mobile ID or by plate found inside the ID.
Bulk Set Standing Location
For unallocated mobiles — where each one is currently physically parked (yard, depot, storage). One per line, comma-separated:
Example:
Matches by exact Mobile ID or by plate found inside the ID.
Mobile ID or Plate, Standing Location
Example:
FLT-58, Kathu Yard
CAA30935, SVL Depot Rustenburg
Matches by exact Mobile ID or by plate found inside the ID.
Flag Entry for Review
Add Opportunity
Start Allocation Preparation
Give Someone a Client Dashboard
Creates a login that can see — and nothing else.
They will not see other clients, your pricing, your margins or staff salaries.
Generated for you. Send it to them separately from the link, and ask them to change it on first login.
Pick a province only if this person manages one region. Most client contacts should see all provinces.
Change Allocation
Monthly charges
Carried over from the current allocation. Adjust if the new client is charged differently.
Model a Consolidation
Models one role being absorbed by another person. Nothing here notifies anyone or changes payroll —
it stays a proposal until you mark it concluded.
BCEA minimum severance is one week's remuneration per completed year. Leave blank if unknown —
the model will show the saving as gross only and say so.
Taking on a second role usually warrants something. Leaving this at zero tends to overstate the saving.
—
| Vehicle | Type | Insured As | Make / Model | Cover | Premium / mo | Policy | Client | Region | Action |
|---|
—
Sign Off & Allocate
Confirm where this mobile is actually going. Prep may have started for one client and finished for another —
what you set here is what gets allocated.
Record Ownership Change
Log Loan Balance
Add Asset
Bulk Import Assets
One asset per line, comma-separated:
Example:
Type, Make/Model, Serial Number, Purchase Date, Cost, Assigned To(optional), Condition(optional), Notes(optional)
Example:
Notebook, HP ProBook 450 G9, 5CD1234ABC, 2026-02-14, 12999, Brian Ndlangisa, Good,
Notebook, Lenovo ThinkPad E14, PF9Y2XYZ, 2026-03-01, 11500, , New, In stock
Request Asset Movement
Request New Asset Purchase
Assign Task
Add Asset / Equipment
Bulk Import Assets
One asset per line, comma-separated:
Example:
Mobile ID or Plate, Category, Description, Brand/Model(optional), Value, Condition(optional), Notes(optional)
Example:
FLT-74, Audiology Equipment, Audiometer, Interacoustics AD629, 45000, Good,
CAA285289, Solar Equipment, Solar panel array 400W, , 12000, Good,
Add SIM
Bulk Import SIM Cards
One SIM per line, comma-separated:
Example:
Employee Name, Company, MSISDN, Provider, Plan, Monthly Cost, Phone Make(optional), Phone Cost(optional), Assigned Device(optional), Notes(optional)
Example:
Brian Ndlangisa, Guud Mobiles (Pty) Ltd, 0821234567, Vodacom, 20GB, 249, Samsung A14, 2499, ,
Nico Pretorius, Specialised Vehicle Distributors (Pty) Ltd, 0827654321, MTN, 10GB, 199, Huawei Y61, 1899, FLT-74,
Log Diesel Price
Diesel only — petrol is the same price everywhere in SA at any given time, so there's nothing to log for it here.
Bulk Import Fuel Transactions
One transaction per line, comma-separated:
Example:
Matches by exact Mobile ID or by plate found inside the ID.
Mobile ID or Plate, Provider, Fuel Type(Petrol/Diesel), Date, Litres, Cost, Driver(optional), Garage(optional), Notes(optional)
Example:
FLT-74, Wesbank Fuel, Diesel, 2026-07-15, 85, 1850, John M, Engen Rondebosch,
CAA285289, Standard Fuel Card, Diesel, 2026-07-18, 90, 1960, , Shell Kathu,
Matches by exact Mobile ID or by plate found inside the ID.
Import CarTrack Usage Data
One mobile per line, comma-separated:
Example:
Matches by plate found inside the Mobile ID, or by exact Mobile ID. Unmatched lines are listed after import so nothing silently disappears.
Plate or Mobile ID, KM This Month, Current Odometer(optional), Last Trip Date(optional)
Example:
CAA285289, 2340, 88120, 2026-07-31
FLT-74, 2100, 91000,
Matches by plate found inside the Mobile ID, or by exact Mobile ID. Unmatched lines are listed after import so nothing silently disappears.
Allocate Mobile
Monthly Charges — who bills what
Each company in the ecosystem bills its own portion on its own invoice. Rates can differ per mobile — set whatever's right for this one.
Allocate Car
Add Mobile
Add Client
Bulk Import Mobiles
One mobile per line, comma-separated:
Example:
Leave Client blank to drop it straight into the Unallocated Pool. Sub-client is an optional project/grouping tag under a client (e.g. UIF or GPAA under AMS, SIOC under Guud Mobiles).
ID/Plate, Region, Status(active/inactive), Client(optional), Sub-client(optional), Price(optional), Notes(optional)
Example:
HJK123GP, Gauteng, active, AMS, GPAA, 25000, Roller mobile
KLM456NC, Northern Cape, active,,,,
Leave Client blank to drop it straight into the Unallocated Pool. Sub-client is an optional project/grouping tag under a client (e.g. UIF or GPAA under AMS, SIOC under Guud Mobiles).
This panel was served from a file that carried the full payroll in its source, readable by anyone with the link. It has been taken down. The page is being rebuilt to read the same figures from the database, where access is limited to staff accounts.
'
+ '';
v.appendChild(f);
if(window.MutationObserver){ try{ var mo=new MutationObserver(function(){ hideOthers(v); }); mo.observe(v,{childList:true}); }catch(e){} }
}
hideOthers(v);
}
function ready(fn){ if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',fn);} else {fn();} }
ready(function(){ setTimeout(mountStaffDash,300); });
document.addEventListener('click',function(e){ var t=e.target; if(t && (t.id==='empUnlockBtn' || (t.closest && t.closest('#empUnlockBtn')))){ setTimeout(mountStaffDash,80); } },true);
})();