Running the scooter business.

This is the manual for the operator, not for the developer. It covers every tab in the console, what each number actually means, what every action does — and, for each one, whether you can undo it.

1 · Getting in

The console is at /cosmos-scoot/ops. You sign in with an operator key — there is no username. The key is stored on that device only, so signing in on a new phone means entering it again.

The other backend pages share the same key and the same top navigation: Payments, Onboard, and the per-vehicle page you reach by opening a scooter from the Vehicles list. The rider app is what your customers see.

If a key is lost or leaves with someone A key cannot be re-read — only the fingerprint is stored, never the key itself. That is deliberate: it means nobody can look one up, including us. The only fix is to rotate it, which invalidates the old one everywhere at once. Do that the same day someone leaves.

2 · The numbers that get misread

Two figures on this console look like revenue and are not. Getting these the wrong way round is how an operator spends money that is not theirs.

Wallet held is NOT your money It is credit your riders have paid in and have not spent yet. You are holding it on their behalf and they can spend it tomorrow. It is a liability. It appears beside revenue on the Money tab precisely so the two are never added together by eye.
Net payable is an estimate, not a payout It is what you collected, less refunds, less an estimated card-processing fee. The real payment into your bank is whatever the payment provider settles, and it will differ. Budget against your bank statement, not against this tile.
Earned IS yours You own the scooters and you take the fare. Earnings, transaction volume and per-vehicle income are your own business, and the console shows them plainly.

Three money words, and they are not the same number

The console used to call all three “revenue”. They differ for good reasons, so each now has its own name. Reading one as another is how an operator budgets against money that is not there.

WordWhat it countsWhere
EarnedRide charges actually taken from wallets, less refunds. This is your money.Overview, Money
CollectedWhat riders paid IN — top-ups and plans. Much of it may still be sitting in their wallets, unspent. Money received, not money earned.Overview, Money
BilledWhat the rides came to, including rides that were never paid. It measures what the fleet produced, not what you took.Rides

So a rider who tops up R200 and rides R120 adds R200 collected, R120 earned, and leaves R80 wallet held — which is theirs, not yours. All three of those numbers are correct at the same time.

3 · The console, tab by tab

The navigation is in four groups, because they answer four different questions.

Operations — what is happening now

TabWhat it is forThe number to watch
OverviewThe shape of the fleet in one screen: in use, available, idle, faults, and the live event feed.Available. If it falls while Idle rises, scooters are parked in the wrong places.
Fleet MapEvery scooter on the map, coloured by battery and status. Click one to open it.Clusters. A cluster away from a bay is a rebalance job.
RidesEvery completed ride. Open one to replay its route and read its operation record.Auto-ended. A ride the rider did not end themselves — see §5.
TasksField work the system worked out for itself: battery swaps, rebalances, maintenance.The count in the sidebar badge.
Work OrdersRepairs you raised, with their state and who they are with.Open work orders older than a few days.

Fleet — what you are running it with

TabWhat it is forThe number to watch
FleetsGroups of scooters. Useful once you run more than one area or more than one owner's units.Revenue per fleet.
VehiclesThe list. Search, filter, change status, select several and act on them together.Units offline. An offline scooter earns nothing and may be gone.
ZonesDraw where riding, parking and slow-speed apply. This is the geofence the scooters obey.Whether your parking bays match where riders actually finish.

Business — what the business is doing

TabWhat it is forThe number to watch
RidersThe people who ride. Search, open one, and act on their account. See §4.Wallet held — and remember what it is.
MoneyEvery transaction, refunds, and the payout estimate, in one place.Refunded. A rising refund rate is a fleet problem wearing a money costume.
PricingUnlock fee, per-minute rate, top-up amounts, plans and VAT.Changing this does not change past receipts — see §7.

Configuration — how it behaves

TabWhat it is forThe number to watch
RulesSpeed caps, low-battery threshold, maximum ride length, auto-end timers and the alert routing.Auto-end timers. They decide how many rides land as "auto-ended".
ReportsBuild and export a report over fleet, transactions, safety or demand.

4 · Riders, and acting on one

Open a rider from the Riders tab to see their rides, their payments, and the four things you can do to their account. Every one of them needs a reason, and the reason is kept on the record with your name against it.

That is not paperwork. An adjustment to someone's balance with no stated cause is indistinguishable, later, from a member of staff helping themselves. The reason is what makes the difference visible.

ActionWhat it actually doesUndo?
SuspendThe rider can no longer unlock a scooter. Immediately — not at the end of the day. Their wallet, history and receipts are untouched, and they can still see their account. They are told the reason you typed, so write it for them to read.Yes — lift it
Credit the walletAdds credit they can spend on rides. It is not a top-up: they paid you nothing, so it never counts as money collected, and it cannot be refunded to a card they never charged.Yes — debit it back
Debit the walletTakes credit away. If you try to take more than they hold, it is refused, not quietly reduced — so the amount you see is always the amount that moved.Yes — credit it back
Change the planPuts them on a plan for a set number of days. A plan with no end date is refused, because it would never expire.Yes — set it back
Add a noteWrites a line on the audit trail and changes nothing else. Use it to record a phone call.No — but it is only a note
The audit trail at the bottom of a rider is what settles a dispute Every action, newest first, with who did it and why. If a rider says they were suspended wrongly, or a balance moved, this is the answer — and it is the reason the reason field is compulsory.

5 · Rides, replay and the operation record

Open any ride from the Rides tab. Two things there are worth knowing about.

The route

The actual path the scooter took, with the start and end marked. This is how you settle "I was nowhere near there" and "I did park it in the bay". The trail is kept for recent rides; older rides keep the fare, the distance and the receipt but say plainly that the trail is no longer held. "No longer held" and "nothing happened" are not the same thing, and the page says which one it is.

The operation record

A list, in order, of what was asked of the scooter and what the scooter said back. Two columns carry the meaning:

A request with no callback is not a completed command If you sent a lock and no callback came back, the record says exactly that and nothing promotes it into a success later. "We asked it to lock" and "it locked" are different facts, and a refund decision often turns on which one you actually have.

The same distinction explains Ended by in the ride list. rider means they tapped end. Anything else means the system ended it — an idle timer, a maximum ride length, or a member of staff. Never tell a customer they ended a ride the watchdog ended.

6 · Money

The Money tab shows every transaction with its type. The types mean:

TypeMeaningRefundable?
topupThe rider paid money in by card.To the card, once
ride / chargeA ride fare taken from their wallet.Back into the wallet
refundA reversal you already made.No
planThey bought a plan.No — adjust the wallet instead
operator_creditYou gave them credit. They paid nothing.No — debit it instead
operator_debitYou took credit back.No — credit it instead

The refund button only appears on rows that can actually be refunded. If it is not there, the answer is an adjustment on the rider, not a refund — and the table above says which.

7 · What cannot be undone

Read this list once before you need it.

ActionWhereWhy it is final
Refund to a cardRider → PaymentsThe money leaves for the rider's bank through the payment provider. It cannot be pulled back from here. It can also only be done once per payment.
Refund a ride into the walletRider → PaymentsThe ride is marked refunded and will not offer the button again. You can debit the wallet afterwards, but the ride stays marked.
Remove a vehicleVehicles → bulk actionsThe scooter and its live state are deleted. Its past rides and receipts survive on the riders, but the unit must be onboarded again from scratch.
Rotate a keyTeamThe old key stops working everywhere immediately, and the new one is shown once and never again.
An audit-trail lineRider → Audit trailIt is a record. It is meant to be permanent — that is the whole point of it.
Things that look permanent and are not Changing prices does not rewrite old receipts — every receipt keeps the rate that was actually charged. Suspending a rider is reversible. Changing a plan is reversible. Editing a zone takes effect from now and does not re-judge past rides.

8 · Who to give which key to

Roles decide which console someone lands on and what they may do. The scooter roles are separate from the taxi ones on purpose — on the taxi side "ops" means the insurer's staff, which is nothing like your operations manager.

RoleGive it toThey can
scoot_opsYour operations managerEverything on this console: fleet, riders, money, remote lock and unlock.
scoot_techThe field technician doing swaps and repairsSee vehicles and work orders. Not a rider's money.
scoot_supportWhoever answers the phoneLook up a rider and a ride to answer a question. Not act on them.
scoot_viewerAnyone who only needs to lookRead only.
Do not hand out the operator key instead of a role One shared password means the audit trail says "owner" for everything and settles nothing. A named key per person is what makes "who did this" answerable.

9 · The scooters, and their fault codes

The fleet runs on OKAI ES700 scooters. Each one is four parts that watch each other: the meter you see, the ECU that drives the motor, the battery, and the IoT module that talks to this console. When one stops answering, the meter raises a fault naming which one it was.

Codes are shown as they come off the scooter. The ones worth knowing on sight:

CodeMeansWhat to do
26EThe meter cannot hear the IoT moduleThe scooter is running but is going dark to you. Field visit.
28EIoT and ECU do not matchTreat as theft or cannibalisation. The parts are cryptographically paired, so this means something was swapped.
02EBattery under voltageCharge it or swap the pack.
14ECell failure — broken nickel stripScrap the pack. It is not repairable.
15EECU firmware lostReflash. A failed update, not a broken part.
10E 19E 20EBrake lever faultsSeveral of these are raised during the self-test when a rider unlocks — which is why an unlock can fail with a reason rather than just failing.

The full catalogue is in the console under Rules, and any code can be looked up individually.

10 · When something goes wrong

A rider says they were charged for a ride they ended

  1. Rides tab → find the ride → Open.
  2. Look at Ended by. If it is not rider, the system ended it and they are right to ask.
  3. Read the operation record. If the lock request has no callback, the scooter never confirmed — that is a fleet fault, and the refund is yours to make.
  4. Refund the ride into their wallet from the rider's Payments list.

A scooter has gone offline

  1. Vehicles → open it. Check when it last reported.
  2. Send a locate. If it is not sent, the unit is not connected — the console tells you which of those it is rather than reporting a success.
  3. Check the last known position on the map and raise a work order or a recovery.

You think a scooter has been stolen

  1. Look for fault 28E on it — that is the hardware telling you parts were swapped.
  2. Lock it remotely and set its status to out of service so nobody hires it.
  3. Use the last position and the most recent ride's route as your starting point.

A rider is abusing the service

  1. Riders → open them → Suspend, with a reason they can read.
  2. They cannot unlock from that moment. Their balance is untouched — suspending is not a punishment you take money for.
  3. Lift it from the same place when it is resolved.