Ledgr/Documentation/Logistics

Logistics & fleet

Watch the lesson: Plan a delivery trip and follow the driver (2:11).

The half of a delivery that happens after the paperwork. Which vehicle went where, who signed for it, what actually came off the truck, and why the one that failed failed.

Plan.

Logistics is included on the Manufacturing plan. See pricing.

On Business and above it can be bought on its own as the Logistics & Fleet add-on at R399/mo, with no per-vehicle charge. The live map is a separate add-on on every plan, Manufacturing included — see the live map.

What this fixes

A delivery note is a document that describes an intention. It is printed before anybody drives anywhere, it has a box for a pen, and nothing in most accounting systems ever reconciles it against what happened. So when a customer rings in March about a pallet they say never arrived in January, the answer is a driver's memory and a signature on a page in a file — if the page can be found.

What Ledgr captures instead, as data: who signed, where they were standing, when, a photograph of the goods at the door, and how much of each line actually changed hands. Plus, when it went wrong, a reason from a list rather than a sentence nobody can count.

The seven tabs

TabWhat it is for
Fleet boardEvery vehicle and what it is doing today
Live mapWhere each reporting vehicle last was — with the Live driver & truck tracking add-on
Load planningBuilding tomorrow's runs out of the documents waiting to be delivered
Trips & PODsThe runs themselves, their stops, and the proof captured at each one
VehiclesThe fleet, with licence disc, roadworthy and operator-card expiry
DriversDrivers, their licence codes and PrDPs, and their app links
PerformanceOn-time delivery, distance and exceptions, per vehicle and per driver

Set up the fleet

  1. Logistics → Vehicles → Add vehicle

    Registration, what it can carry, and the three dates that stop a vehicle at a roadblock: the licence disc, the certificate of fitness, and — for a goods vehicle over 3 500 kg — the operator card. Ledgr warns you thirty days out and keeps warning you after.

  2. Logistics → Drivers → Add driver

    A driver is not a Ledgr user and does not need a login. Capture their licence code and expiry, and their PrDP if they hold one. Adding drivers costs you nothing in seats.

Fuel. Record a fill from a vehicle's fuel log, let the driver record it at the pump, or paste a fuel-card statement exported from a spreadsheet. Each fill is one fuel expense in your books. Pasting a statement you have already imported records nothing twice — Ledgr says how many fills were already there — while two genuine fills on one statement, the same truck and the same amount on the same day, stay two.

Plan a run

  1. Plan a trip — a date, a vehicle and a driver.
  2. Add the loads

    The Load planning tab lists every delivery note and pro-forma that is not yet on a trip. Adding one from there is what links the stop to the document and each stop line to its invoice line — so when a delivery comes up short, the proof says which line and how many, and the credit note you raise for it in Invoicing can be written against the right line three weeks later. Ledgr does not raise that credit note for you. A stop typed by hand can be signed for perfectly well; it simply cannot be reconciled to anything.

  3. Order the stops

    The sequence is the route. It can be changed until the trip is dispatched — after that the driver is working down the list, so only new work at the end is allowed.

  4. Dispatch

    The trip appears on the driver's phone. Departure asks for the odometer reading, which is what the trip's distance, its fuel consumption and its cost per drop are all worked out from.

The same round every day: standing runs

A round your vehicles drive on a fixed pattern — a bakery's six mornings a week, a Tuesday hardware run — is a standing run (Fleet care → Standing runs). Choose how often it goes: on chosen days (Monday to Saturday, weekdays, every day, or any days you tick), weekly, fortnightly or monthly. Give each stop its customer and, if it takes the same goods every time, its standing order: the products and how many.

When you open a day on the planner, Ledgr raises that day's trip and, for each stop with a standing order, a draft delivery note to that customer carrying those quantities, on the stop. Change a note before the run leaves if the customer wants more or less that day. Opening the same day again raises nothing a second time, and a trip you delete stays deleted for that day.

The live map

Every vehicle that is reporting, plotted where it last was, and each trip's trail from stop to stop. A vehicle starts reporting the moment its driver opens Ledgr on a dispatched trip — there is no tracking box to fit, nothing to install in the cab and no hardware to buy.

  • Positions come from the driver's phone, only while the app is open and a trip is running, and only when you hold the live-tracking add-on. Without it the app takes no position at all and Ledgr stores none. Ledgr does not ask for background location, so a driver's own time is their own.
  • A fix is accepted at most once a minute per vehicle, and a batch is capped — an app catching up after an offline stretch replays correctly without writing a day's worth of rows in one go.
  • If you already run a tracking provider, their feed can post positions to /api/logistics/positions against the vehicle id their system knows, with no mapping table at your end. That route is part of the add-on too, and refuses a position without it rather than storing one nobody can see.
The live map is an add-on, charged per driver.

Live driver & truck tracking is R39 per driver a month, on top of Logistics, and it is what shows you where a vehicle is: the live map, each trip's trail, each vehicle's last position, how long ago it last reported, and the distance tracked on a trip. Without it no position is collected at all, and trips, stops, proof of delivery and the fleet board all still work — the board simply has no "last seen" figure to show. An owner adds it under Settings → Billing & Plan. Nothing else in this module is metered: there is no per-vehicle charge for the fleet, the runs or the PODs.

Proof of delivery

At each stop the driver records what happened: delivered in full, part delivered, or not delivered. A part delivery asks for the quantities line by line, and a failure asks for a reason from your own code list — which ships with the ones a South African delivery actually fails for, load shedding included.

Ledgr will accept a thin proof. That is deliberate: a signature pad that blocks a driver from closing a stop is one drivers work around, which leaves the business with a false proof of delivery instead of an honest one. What it does instead is grade every proof and say so plainly:

  • Strong evidence — signed, named, located at the address and photographed. This is what you show an insurer and expect the conversation to end.
  • Adequate evidence — signed or photographed, and located. Believed in the ordinary case, short of what settles a determined dispute.
  • Limited evidence — recorded honestly, with nothing attached: the driver's word, or the office's.

The grade is on the stop, on the printed proof, and rolled up on the performance tab. It is a number a business can move: "84% of our deliveries are signed and located" is a target; "we have delivery notes" is not.

Money taken at the door

When a stop carries an invoice, the driver can record the payment with the proof: cash, card or EFT. The phone knows what is still owed and will not let the driver take more. A cash payment counts as with the driver until the office banks it — Cash to hand in on the Trips tab lists it by driver, with Bank the cash beside each.

A card or an EFT taken at the door is not in your bank yet: a card is paid out days later, less the card fee, and an EFT is the customer's word until your statement shows it. The invoice reads Paid — awaiting bank until then. When the line arrives on your bank statement, settle it in Banking against the payment it brings; a card's fee goes on the difference and is recorded as a bank charge.

A proof captured without signal waits on the phone and sends when it reconnects. If the office has been paid for that invoice, or has voided it, in the meantime, the proof and the money are still recorded — the cash is in the driver's hand either way. What the invoice can still take pays it; the rest is kept as the customer's credit, and the stop says so. Apply that credit to the customer's next invoice, or, if the cash goes back to them, remove the receipt in Invoicing before the cash is banked.

Couriers: collect, then deliver; customers pick their time

For a parcel picked up from one address and dropped at another, add the collection to the trip, then add a stop and choose Delivery of a collection, naming the collection it delivers. The driver cannot record that delivery until the collection has been recorded, so nothing is signed over that was never picked up.

Under Customers can book on the Dispatch tab, list the delivery windows you offer, like 08:00-12:00 and 12:00-17:00. Customers then choose one on their tracking link while their delivery is still to come, and the window they pick becomes the stop's window — the one the planner and the driver see.

Messages with the driver

Every trip has its own thread between the office and the driver. Open the trip in Logistics and write under Messages with the driver; on the phone, the driver taps Message the office on any stop. Use it for the questions a call is too much for — the gate code, where to leave a delivery, whether a short load is acceptable. The answer stays with the trip as its record.

A message the driver types without signal waits on the phone and is sent when signal returns, in the order it was written, and only once. A photo needs signal to send. Each message shows whether it was delivered and read. The office gets a notification when a driver writes (turn it off under Settings → Notifications, Messages from drivers); the driver's phone shows new messages while the thread is open. Calling the office from the stop still works as before.

Contractor drivers: paid by drop, km or hour

For an owner-driver or a subcontractor, open the driver and choose how they are paid under Paid as — per drop, per km or per hour — with their rate and the supplier they are billed as (add them under Contacts as a supplier first). To pay them, open the driver again, choose the first and last day under Settle a period and press Raise draft bill. Ledgr counts what they did on their completed trips in those days — drops that were delivered, kilometres from the odometer readings, or hours from dispatch to completion — and raises a draft supplier bill at their rate. It posts nothing until you approve it under Expenses → Bills, where you also set VAT if the contractor charges it.

A period can be settled once: settling the same days again shows the bill already raised, and a period that overlaps one already settled is refused. A driver linked to an employee is paid through payroll and can never be billed as a contractor.

The cold chain

Give a product the range it must be kept in under Inventory (edit the product: Keep at least and Keep at most, in °C). The driver then takes a temperature for it when the vehicle is loaded and again at the door. A reading outside the range is flagged the moment it is typed, and the proof cannot be recorded until the driver writes what happened. Every reading — the range, and the note where there is one — is printed on the proof of delivery the customer receives, so you can show the goods left cold and arrived cold.

Crates, pallets and cylinders

Mark a product as a returnable container under Inventory (edit the product, tick Returnable container) and, if you charge one, give it a deposit per unit. At every stop with a customer, the driver's proof then lists your returnables with what that customer already holds, and the driver counts how many were left and how many empties came back.

Each customer's balance moves by the difference, and Returnables with customers on the Dispatch tab shows who holds what. Where a deposit applies, more left than brought back is invoiced to the customer, and more brought back is credited, through the Returnable Container Deposits account — so that account always equals what your customers hold times the deposit.

What happens to stock

Deliver against a delivery note and the goods move when they leave the vehicle — the same rule job cards use for parts: Ledgr posts the stock movement at the door, costed from the batches. An invoice moves its own stock when it is sent, so delivering against one posts nothing at the door. Posting twice would show a shortfall that never happened and report the margin on that sale at roughly nothing.

That is also why a trip carrying an invoice that has not been sent cannot be dispatched: its goods would leave the building while Ledgr still counted them on the shelf. Send the invoice first — or, to deliver first and invoice afterwards, put a delivery note on the trip.

The driver's side: driver mode

The driver app is Ledgr itself. Logistics → Drivers → Issue link gives you a pairing link for one driver; Copy link and send it to them, on WhatsApp or however you like. Opening it on their phone pairs the phone and puts Ledgr into driver mode — their trips, their stops and proof of delivery, and nothing else. They stay paired afterwards, so the link is only needed once, and they need no Ledgr login. If the link arrives mangled, the driver can paste it into the box on the driver screen instead. Three things worth knowing:

  • It is shown once. Ledgr cannot show it again — Re-issue link retires the one the driver is holding.
  • Withdraw takes effect on the phone's next request, not at expiry. A lost handset is a thirty-second problem.
  • It expires in ninety days by default, and can never be made permanent.

Driver mode keeps working out of signal: a proof captured at a kerbside with no network is queued on the phone and sent when it reconnects, and sending it twice records it once. Its photographs are held on the phone with it and uploaded after the proof is accepted, each once. A phone's storage for them is limited, so a full phone refuses a new photograph and says why rather than dropping one it already holds. The same endpoints driver mode uses are listed in the API playground under Driver app, for a business that wants to connect its own in-cab system.

What it tells you afterwards

  • Success and on-time rates. On-time is measured only against stops that carried a promised window — a business that promises nothing has no on-time figure, which is different from having a bad one.
  • Why deliveries failed, in order, with the chargeable ones marked. Most SMEs never bill for a wasted trip because they cannot evidence whose fault it was.
  • Cost per drop and litres per 100 km, per vehicle, from the odometer readings and the fuel you captured.
  • Odometer distance beside tracked distance. Where the two disagree is usually the most useful line on the page. Tracked distance is measured from the phone's reports, so it needs the live-tracking add-on; without it the odometer distance stands alone.

Next

  • Invoicing — where a delivery note comes from
  • Inventory — the stock a delivery draws down
  • Job cards — for work done at a site rather than goods sent to one

Common problems

What you seeWhat to do
A trip will not dispatch It needs a vehicle and a driver, and Ledgr names whichever is missing — both at once if both are. It also needs at least one stop: dispatching an empty trip hands a driver nothing to do.
The driver cannot see a trip you have planned A planned trip is invisible to the app. Dispatching is what hands the load to the phone.
The proof says "delivered in full" but the record says partial The line quantities win. A driver who fills in three of four pallets and taps "delivered in full" has made the mistake that costs a pallet, so the lines override the button — and a line left blank counts as not delivered.
A proof was accepted but graded "Limited evidence" Working as intended. Ledgr accepts a thin proof and grades it rather than refusing it, because a signature pad that blocks a completion is one drivers work around, which leaves the business with a false proof instead of an honest one. The grade's sentence is printed on the customer's copy and says what the proof establishes.
Only a failure or a partial is refused Those two need a reason code, and a partial needs line quantities. Without them there is nothing to act on later, which is the whole purpose of recording them.
A stop shows a stock warning Something about the posting needs a person: a delivered quantity that is not a whole number of units books no stock movement at all, a shortfall was costed at the product's cost price because no batch covered it, or a location went below zero. The warning is on the office's stop card and deliberately not on the driver's — nothing about a stock count can be resolved at a kerbside.
A delivery moved no stock Correct when the document was an invoice: sending the invoice took the goods out of stock, and moving them again would take them out twice and report the margin on that sale at roughly nothing. A delivery note is what moves stock at the door. If the stop also warns that the invoice had not been sent, send it — its stock moves then.
A trip will not dispatch: "… has not been sent" An invoice on the trip is still a draft, so its goods have not left stock and a delivery will not move them. Send the invoice first — or, if the goods go out before the invoice does, deliver against a delivery note instead. A voided invoice has nothing on it to deliver: take its stop off the trip.
A vehicle has vanished from the board The board shows the age of the last position — it turns amber past an hour. The app samples every two minutes and sends in batches roughly every fifteen, so a gap of a few minutes is normal. A long gap means no signal; the fixes are buffered on the phone and arrive when it reconnects, so the trace fills in rather than being lost. Without the live-tracking add-on there is no position to show, so the column reads "—" rather than an alarm.
The Live map tab says it is an add-on Where a vehicle is — the map, a trip's trail and a vehicle's last position — is the Live driver & truck tracking add-on, on every plan, and so is the board's "last seen" column: without the add-on no position is collected. An owner adds it under Settings → Billing & Plan.
A cancelled trip asks for a reason It requires one. Pick one of your own failure reasons or type your own — "vehicle went in for its certificate of fitness" is not a drop's reason, which is why free text sits beside the chips.