{{ pageTitle }}
{{ pageSub }}
180 vehicles · 9 depots · {{ todayStr }}
New chat request
{{ chatAlertText }}
{{ st.num }} {{ st.label }}
Scope this planning run
Pick the date and time window to plan, and which stations to include. The optimiser builds routes for every order due in that window.
1 · Plan date
{{ planDateStr }}
2 · Time window
3 · Stations in this run
Orders awaiting routing
{{ poolTotal }}
across {{ selectedDepotCount }} selected depots
{{ b.label }}{{ b.count }}
Optimising routes for {{ poolTotal }} orders
Packing loads into {{ vehicleCountStr }} vehicles across {{ selectedDepotCount }} depots
{{ o.num }}
{{ o.title }}
{{ o.sub }}
Done
Routes
{{ kpiRoutes }}
Vehicles used
{{ kpiVehicles }}
Total distance
{{ kpiMiles }}
Avg fill
{{ kpiFill }}
Deadline flags
{{ kpiFlags }}
Showing {{ kpiRoutes }} routes from your selected depots · full UK plan covers {{ poolTotal }} orders across ~47 routes.
{{ poolLeftCount }} orders unrouted - open a route to add them.
{{ r.vehicleReg }}
{{ r.depot }}
{{ r.dayLabel }}
{{ r.stopCount }} stops · {{ r.milesStr }}{{ r.litresStr }} / {{ r.capStr }}
● {{ r.lateCount }} stop(s) past deliver-by
Route {{ selRouteReg }} · {{ selRouteDepot }}
{{ selRouteStats }}
{{ selRouteDepot }}
{{ m.seq }}
Load required · by tank
{{ l.fuelName }} · {{ l.litresStr }}
{{ t.label }}{{ t.capStr }}
{{ t.fuelName }}
{{ t.allocStr }}{{ t.pctStr }}
⚠ No matching tank for: {{ x.fuelName }} ({{ x.litresStr }})
{{ selOutOfHoursStr }}
Stop {{ w.seq }} · {{ w.customer }} - {{ w.why }}
Reorder the run or move these stops to another day.
{{ s.seq }}
{{ s.customer }}
{{ s.place }} · {{ s.litresStr }} · {{ s.fuelName }}
Site open {{ s.hoursStr }} · {{ s.weekendStr }}
ETA {{ s.etaStr }}
{{ s.hoursChipLabel }}
by {{ s.dueShort }}
Add an unrouted order to this route
All stations across the UK. Click a pin or a station below to edit its vehicles and service area.
New station
UK station & service-area map
Schematic · not to scale
{{ c.area }}
{{ p.name }}
{{ st.name }}
{{ st.vehCount }} vehicles · {{ st.areaCount }} areas
{{ selStationName }}
Tap a postcode district to add or remove it from this station
{{ c.area }}
In this station Covered by another station Unassigned
Linked vehicles · {{ selStationVehCount }}
{{ v.reg }}
Bulk storage · {{ selStationTankCount }} tanks
{{ t.id }} · {{ t.fuelName }}{{ t.levelStr }} / {{ t.capStr }}Low
{{ selStationStockStr }} in storage across this depot.
No bulk storage recorded at this station.
Service area · {{ selStationAreaCount }} districts
Add a district not shown on the map:
Bulk fuel held in storage across every depot, plus what is loaded on tankers right now.
Total fuel in storage
{{ stockKpis.totalStr }}
of {{ stockKpis.capStr }} capacity · {{ stockKpis.pctStr }} full
Change since yesterday
{{ stockKpis.deltaStr }}
net movement across all depots
Depots
{{ stockKpis.depotCount }}
reporting bulk storage
Variances flagged
{{ stockKpis.flaggedToday }}
recent readings over threshold
Supply by fuel type
{{ f.name }}{{ f.deltaStr }}
{{ f.curStr }}
of {{ f.capStr }} · {{ f.tanks }} tanks · {{ f.pctFull }} full
Storage by depot
{{ d.name }}
{{ d.tankCount }} tanks · {{ d.curStr }} / {{ d.capStr }} · {{ d.pctStr }} full
{{ m.name }} {{ m.litresStr }}
{{ t.id }} · {{ t.fuelName }}{{ t.avgStr }}{{ t.levelStr }} / {{ t.capStr }}Low
No depots match that search.
Stock on tankers
{{ tankerKpis.totalStr }}
{{ tankerKpis.vehStr }}
{{ fz.name }}
{{ fz.litresStr }}
Tankers by depot
{{ g.depot }} {{ g.countStr }} · {{ g.totalStr }} on board
{{ v.reg }}{{ v.plannedLabel }}
{{ v.body }} · {{ v.driver }} · {{ v.stopsStr }}
{{ v.totalStr }}
of {{ v.capStr }} · {{ v.pctStr }}
{{ l.fuelName }}{{ l.litresStr }}
Empty - no fuel currently on board.
No tankers match that search.
Daily reconciliation
{{ reconTable.kpis.countStr }}
Every tank is dipped daily and agreed to the ledger
Flagged
{{ reconTable.kpis.flaggedStr }}
Net variance
{{ reconTable.kpis.netLStr }}
Value at cost
{{ reconTable.kpis.netVStr }}
Reading
Depot
Tank / product
Book
Physical
Variance
Tolerance
Value
Recorded by
Status
{{ r.at }}
{{ r.depot }}
{{ r.tank }}{{ r.fuelName }}
{{ r.bookedStr }}
{{ r.actualStr }}
{{ r.varStr }}
{{ r.thrStr }}
{{ r.valStr }}
{{ r.by }}
{{ r.badgeLabel }}
No readings match those filters.
Click a reading to open the tank and reconcile its movements. Tolerance comes from the variance threshold in Options.
This month
{{ adjTotals.countStr }}
Net {{ adjTotals.litresStr }} across all tanks
Value to post
{{ adjTotals.valueStr }}
At buy price
Monthly report by tank
Post a stock adjustment
Use a negative figure for stock lost, positive for stock found. Recorded against you with a timestamp.
Tank
Depot / product
Gains
Losses
Net litres
Value
{{ r.tank }}
{{ r.countStr }}
{{ r.depot }}
{{ r.fuelName }}
{{ r.gainsStr }}
{{ r.lossesStr }}
{{ r.netStr }}
{{ r.valueStr }}
No adjustments recorded this month.
Post the value column to your accounting system at month end. Gains are stock found, losses are stock written off.
Adjustment log
{{ a.tank }} · {{ a.reason }}
{{ a.depot }} · {{ a.fuelName }} · {{ a.note }}
{{ a.litresStr }}
{{ a.valueStr }}
{{ a.by }}
{{ a.at }}
Depot
{{ stockDepotView.name }}
{{ stockDepotView.tankCountStr }}
In storage
{{ stockDepotView.curStr }}
Capacity
{{ stockDepotView.capStr }}
{{ m.name }} {{ m.litresStr }} avg {{ m.avgStr }}
Ullage
{{ stockDepotView.ullageStr }}
Tankers at this depot {{ stockDepotView.tankerCountStr }}
{{ v.reg }}
{{ v.driver }} · {{ v.stopsStr }}
{{ v.totalStr }}
of {{ v.capStr }}
{{ l.fuelName }}{{ l.litresStr }}
No tankers loaded from this depot right now.
Tanks · click through for movements
{{ t.id }} {{ t.fuelName }} Low {{ t.moveCountStr }} →
Level {{ t.levelStr }} ({{ t.pctStr }}) Avg cost {{ t.avgStr }} Value {{ t.stockValStr }} In {{ t.inStr }} Out {{ t.outStr }}
{{ stockTankerView.reg }}
{{ stockTankerView.driver }} · {{ stockTankerView.body }} · {{ stockTankerView.depot }}
Reconciled — all fuel accounted for Unreconciled variance
On board now
{{ stockTankerView.onBoardStr }}
of {{ stockTankerView.capStr }} capacity
Per ledger
{{ stockTankerView.expectedStr }}
Loaded {{ stockTankerView.loadedStr }} − delivered {{ stockTankerView.deliveredStr }}
Difference to reconcile
{{ stockTankerView.discStr }}
Against the last meter reading
Blended cost on board
{{ stockTankerView.avgCostStr }}/L
Stock value {{ stockTankerView.valueStr }}
{{ m.fuelName }} {{ m.litresStr }} avg {{ m.avgStr }}
Movements to reconcile {{ stockTankerView.unmatchedCountStr }} All movements verified {{ stockTankerView.matchedCountStr }}
{{ r.detail }}
{{ r.at }} · {{ r.ref }} · {{ r.fuelName }}
{{ r.verifiedByStr }}
{{ r.litresStr }}
@ {{ r.pplStr }} · {{ r.valueStr }}
{{ r.status }}
No movements recorded against this tanker.
{{ stockTankView.id }}
{{ stockTankView.fuelName }} · {{ stockTankView.depot }}
Reconciled — all fuel accounted for Unreconciled variance
Latest reading
{{ stockTankView.levelStr }}
{{ stockTankView.readingAt }} · of {{ stockTankView.capStr }} ({{ stockTankView.pctStr }})
System balance (per ledger)
{{ stockTankView.expectedStr }}
Opening + received − loaded out ± adjustments
Difference to reconcile
{{ stockTankView.discStr }}
≈ {{ stockTankView.discValueStr }} at average cost
Average cost in tank
{{ stockTankView.avgCostStr }}/L
Stock value {{ stockTankView.stockValueStr }} · {{ stockTankView.avgLotsStr }}
Opening {{ stockTankView.openStr }} Received in {{ stockTankView.inStr }} Loaded out {{ stockTankView.outStr }} Ullage {{ stockTankView.ullageStr }}
If the variance is real (loss, temperature, metering), post an adjustment so the ledger agrees with the physical reading. Every adjustment is attributed and audited.
{{ stockTankView.adjCountStr }}
Recorded against you, with a timestamp, and written to the audit log.
{{ a.litresStr }}
{{ a.reason }}
{{ a.note }}
{{ a.by }}
{{ a.at }}
Movements to reconcile {{ stockTankView.unmatchedCountStr }} All movements verified {{ stockTankView.matchedCountStr }}
{{ r.detail }}
{{ r.at }} · {{ r.ref }} · {{ r.haulier }} ·
{{ r.verifiedByStr }}
{{ r.litresStr }}
@ {{ r.pplStr }} · {{ r.valueStr }}
{{ r.status }}
No movements recorded against this tank.
Placed to {{ orderResultCount }} shown
{{ failedCountStr }} Contact each customer, then reschedule the delivery.
{{ fo.customer }} {{ fo.place }} · {{ fo.phone }} {{ fo.fuelName }} · {{ fo.litresStr }} {{ fo.reason }}
{{ fo.contactedStr }} Rescheduled for {{ fo.reschedStr }}
Order
Customer
Location
Depot
Fuel
Litres
Margin
Placed
Deliver by
Status
{{ o.id }}
{{ o.placedStr }}
{{ o.customer }}
{{ o.place }}
{{ o.depot }}
{{ o.fuelName }}
{{ o.litresStr }}
{{ o.marginStr }}
{{ o.placedStr }}
{{ o.dueStr }}
{{ o.status }}
{{ selOrder.id }}
{{ selOrder.customer }}
{{ selOrder.statusLabel }}
Previous order
{{ selOrder.prevOrder.date }} · {{ selOrder.prevOrder.summary }} · {{ selOrder.prevOrder.totalStr }}
{{ selOrder.custOrderCount }} on file →
Delivery
Address{{ selOrder.address }}
Station{{ selOrder.depot }}
Contact{{ selOrder.contact }}
Phone{{ selOrder.phone }}
Site hours{{ selOrder.siteHoursStr }}
{{ selOrder.siteWeekendStr }}
Assigned vehicle{{ selOrder.routeReg }}
Tanker size{{ selOrder.tankerSizeStr }}
Payment{{ selOrder.paymentMethod }}
Delivery instructions
{{ selOrder.deliveryInstructions }}
Site opening times
{{ selOrder.siteOpening }}
Product & price
{{ selOrder.fuelName }}
Quantity{{ selOrder.litresStr }}
Price / litre{{ selOrder.pplStr }}
Subtotal{{ selOrder.subStr }}
VAT{{ selOrder.vatStr }}
Total{{ selOrder.totStr }}
Margin{{ selOrder.orderMarginStr }} ({{ selOrder.marginPplStr }})
Delivery window{{ selOrder.windowStr }}
Booking date{{ selOrder.bookingDateStr }}
Placed{{ selOrder.placedStr }}
SLA window{{ selOrder.slaStr }}
Delivered by (auto){{ selOrder.deliveredByStr }}
History
{{ t.label }}
{{ t.time }}
Requested delivery tank
Delivering into 1 of {{ selOrder.reqTank.siteTankCount }} tanks on site
{{ selOrder.reqTank.label }} · {{ selOrder.reqTank.id }}
Holds {{ selOrder.reqTank.fuelName }} · {{ selOrder.reqTank.capStr }} capacity
Currently in tank {{ selOrder.reqTank.beforeStr }}
This delivery {{ selOrder.reqTank.deliverStr }}
Ullage after {{ selOrder.reqTank.afterUllageStr }}
Fill after delivery {{ selOrder.reqTank.afterPctStr }}
Notes & call log
{{ n.text }}
{{ n.by }} · {{ n.time }}
No notes yet. Add a note or log a call about this order.
Vehicles
180
Depots
9
Fleet capacity
≈ 2.9M L
Fuels carried
{{ fuelCount }}
{{ d.name }}
{{ d.vehicles }} vehicles
Vehicle tank configuration · showing {{ vehShownCount }} of 180
Tanks are fixed-capacity vessels. Swap a tank for a different size, change the fuel it carries, or add/remove tanks on a vehicle.
Create a new truck
Tanks · {{ ntCapStr }} total
{{ c.label }}
{{ c.capStr }}
{{ t.reg }} · {{ t.depot }}
{{ t.body }} · {{ t.tankCount }} tanks · {{ t.capStr }} total
{{ t.address }}
{{ c.label }}
{{ c.capStr }}
Fuel type
Category
On shown fleet
Tank capacity
{{ f.name }}
{{ f.cat }}
{{ f.usage }}
{{ f.capStr }}
Add a fuel type
New types appear in the tank fuel selectors.
{{ k.label }}
{{ k.value }}
{{ k.sub }}
Fleet capacity today · fuel delivered vs capacity
Fleet utilisation {{ dashFleetUsedStr }}
Vehicle
Station
Trips
Delivered
Capacity
Utilisation
{{ v.reg }}
{{ v.depot }}
{{ v.trips }}
{{ v.deliveredStr }}
{{ v.capStr }}
{{ v.pctStr }}
My sales · {{ sales.meName }}
Rank #{{ sales.myRank }} of {{ sales.teamSize }} · {{ sales.myValueStr }} this month
{{ sales.myDay }}
Today
{{ sales.myWeek }}
This week
{{ sales.myMonth }}
This month
Leaderboard · {{ sales.periodLabel }}
{{ p.rank }}
{{ p.name }}You
{{ p.count }}
{{ p.valueStr }}
Points tiers
Tier
12-month litres to reach
Points / litre
Standing discount (p/L)
{{ t.name }}
Add a tier
Changes apply to how customers earn from their next order - tier status stays based on rolling 12-month litres, and you can set a customer's tier directly on their record.
Spend-points offers
{{ o.name }}
{{ o.costStr }} points · {{ o.period }}
Time-limited promotions
{{ p.name }}
{{ p.rule }} · {{ p.period }} · {{ p.tiers }}
Promotions boost earn rates or unlock offers for a set period - e.g. double points this month, or 5,000 points for £30 off.
{{ openInqCount }} open · assign an agent and reply - responses go to the customer by SMS & email and appear in their order history.
{{ q.id }} {{ q.customer }} · order {{ q.orderId }} · {{ q.date }} {{ q.statusLabel }} {{ q.agent }}
{{ q.message }}
Assigned to
{{ q.reply }}
Replied by {{ q.by }} · sent by SMS & email
No inquiries match these filters.
Every change made in the portal - who, what and when. {{ auditCount }} entries.
Area
Change
By
When
{{ e.area }}
{{ e.action }}
{{ e.by }}
{{ e.at }}
Price changes, order edits, customer updates, fleet changes and rewards toggles are logged automatically as you work.
Users & access
User
Role
Settings access
Adjust pricing
{{ u.initials }}
{{ u.name }}
{{ u.email }}
Showing {{ userFilteredCount }} of {{ userTotal }} users. Changing a role sets sensible default access - only users with Settings access can open this page; only those with Adjust-pricing can change fuel prices.
Email & SMS templates
{{ tplCount }} templates · shared ones are available to every user
{{ t.name }} {{ t.channelLabel }} {{ t.shareLabel }} {{ t.owner }}
Subject: {{ t.subject }}
{{ t.body }}
New template
Share with all users
Delivery windows & slots
Next working day delivery
{{ nextDayStateStr }}
AM / PM timed slots
{{ slotsStateStr }}
Additional delivery options
{{ l.stateStr }}
Only options switched on appear in the customer order flow. A negative amount offers a discount for waiting longer.
todays
:00 — orders after this go to standard
£per booked AM/PM slot
Customers see the standard window by default. Next day only appears before the cut-off; AM/PM slots carry the premium.
Go live Record the day's briefing for the customer portal {{ briefingCountStr }}
Recording {{ liveTimeStr }}
Publishing replaces the live briefing on every customer's dashboard.
Previous briefings
{{ b.title }}Live
{{ b.presenter }} · {{ b.at }}
{{ b.length }}
{{ b.viewsStr }}
Fuel stock reconciliation
% of booked volume
litres floor
A daily reading is flagged when the variance between actual usage and booked dispatch exceeds the greater of these two - so small tanks aren't flagged on rounding, and large tanks still get a meaningful percentage check.
Pricing levels
{{ l.name }}
List price - no discount applied.
{{ l.unit }} off list
{{ l.custCount }}
customers
A customer's pricing level is set on their individual customer record. Use “View customers” to see everyone on a level.
Partner hauliers who deliver on our behalf. Allocate orders by service area, monitor the day, and compare quotes on margin.
{{ provCount }} approved providers
Provider
Service areas
Rate
On time
Jobs
Today
{{ p.name }}
{{ p.subLine }}
{{ p.areasStr }}
{{ p.pplStr }}
{{ p.onTimeStr }}
{{ p.jobsStr }}
{{ p.todayCount }}
{{ selProv.name }}
{{ selProv.base }} · {{ selProv.pplStr }} · {{ selProv.onTimeStr }} on time · {{ selProv.jobsStr }} jobs
Postcode areas served
Specific postcodes ({{ selProv.postcodeCount }})
{{ pc.label }}
{{ c2.initials }}
{{ c2.name }}Primary
{{ c2.role }} · {{ c2.phone }}
{{ c2.email }}
{{ j.orderId }}{{ j.statusLabel }}
{{ j.customer }} · {{ j.place }}
{{ j.litresStr }} {{ j.fuelName }} · delivered {{ j.deliveredStr }}
No orders allocated to this provider yet.
Allocated today
{{ allocKpis.total }}
{{ allocKpis.litresStr }} in total
Awaiting acceptance
{{ allocKpis.sent }}
link sent, not accepted
Accepted
{{ allocKpis.accepted }}
on their way
Completed
{{ allocKpis.completed }}
litres confirmed
Providers used
{{ provCount }}
on the panel
Allocated orders
Order
Customer
Provider
Ordered
Delivered
Margin
Status
{{ a.customer }}
{{ a.place }} · {{ a.fuelName }}
{{ a.litresStr }}
{{ a.deliveredStr }}
{{ a.marginStr }}
{{ a.statusLabel }}
No orders allocated for this provider.
Orders per provider
Today's split across the panel
{{ b.count }}
{{ b.sent }} sent · {{ b.accepted }} accepted · {{ b.completed }} completed · {{ b.litresStr }}
Text a quote request to several providers at once. They submit a price via their link; we compare margin and accept one.
{{ g.orderId }} · {{ g.customer }}
{{ g.place }} · {{ g.litresStr }} {{ g.fuelName }} · selling at {{ g.sellStr }}
{{ g.responded }} of {{ g.requested }} responded
Best: {{ g.bestLabel }}
Provider
Their price
Our cost
Margin
On time
Action
{{ r.provider }}Best marginAccepted
{{ r.pplStr }}
{{ r.costStr }}
{{ r.marginStr }}
{{ r.onTimeStr }}
Waiting…
No quote requests out yet.
Every quote given to a customer, which rep gave it, and whether it turned into an order.
Quote conversion
{{ quoteKpis.convPctStr }}
{{ quoteKpis.converted }} of {{ quoteKpis.total }} quotes won
Open quotes
{{ quoteKpis.open }}
{{ quoteKpis.openValStr }} in play
Value won
{{ quoteKpis.wonValStr }}
from converted quotes
Average quote
{{ quoteKpis.avgQuoteStr }}
across all quotes
Quote
Customer
Sales rep
Quantity
Value
Given
Status
Order
{{ q.id }}
{{ q.customer }}
{{ q.fuelName }}
{{ q.rep }}
{{ q.litresStr }}
{{ q.totalStr }}
{{ q.dateStr }}
{{ q.ageStr }}
{{ q.statusLabel }}
{{ q.orderRef }}
No quotes match these filters.
Sales leaderboard · quote conversion
Ranked by conversion rate, then value won
#
Sales rep
Conversion
Rate
Quotes
Won
Open
Value won
{{ b.rank }}
{{ b.initials }}
{{ b.name }}Top converterNeeds coaching
{{ b.quotedValStr }} quoted · {{ b.lost }} expired
{{ b.pctStr }}
{{ b.quotes }}
{{ b.won }}
{{ b.open }}
{{ b.wonValStr }}
Contracted volumes are set month by month. Underlift penalties are assessed monthly.
Add a supplier
The monthly figure seeds all twelve months - adjust individual months afterwards from the supplier's Edit panel.
Today's buying position
What we need to buy for tomorrow
Stock in tank, less tomorrow's routed liftings, against the cover you want to hold.
In tank now
{{ planTotals.stockStr }}
Out tomorrow
{{ planTotals.demandStr }}
Cover held
{{ planTotals.coverStr }}
Market direction
To order
{{ planTotals.totalStr }}
{{ planTotals.loadsStr }}
{{ marketNote }}
Order requirement by product
Rounded to full loads and capped by the ullage you actually have
{{ planTotals.shortCount }} under a day of cover
Product
In tank
Out tomorrow
Left after
Cover
Target
Recommend
Order
{{ r.name }}
{{ r.stockStr }}
{{ r.demandStr }}
routed above budget
{{ r.afterStr }}
{{ r.coverStr }}
Not on programme
{{ r.targetStr }}
{{ r.recStr }}
{{ r.loadsStr }}
Ullage capped
Daily run rate comes from the annual budget split by month and by day, or the routed order book where that is already running hotter. Requirement = target cover less what is left after tomorrow's liftings, rounded up to whole tanker loads of {{ loadSizeStr }} (you cannot buy a part load). "Ullage capped" means the tank physically cannot take the full requirement.
Contract tracking · {{ supMonthName }}
Daily run rate needed against what has actually been ordered
Supplier
Per day
Expected
Ordered
Vs plan
Progress
Projected close
{{ c.name }}
{{ c.perDayStr }}
{{ c.expectedStr }}
{{ c.orderedStr }}
{{ c.gapStr }}
{{ c.pctStr }} of {{ c.nomStr }} · marker shows where we should be
{{ c.projectedStr }}
short {{ c.shortfallStr }} · {{ c.penaltyStr }}
Contract month
{{ x.name }} {{ x.contractLabel }} {{ x.riskLabel }} API feed No kerosene {{ x.mode }} · {{ x.terminalCount }} terminals
{{ x.terminals }}
Pricing mechanism
{{ x.mechanism }}
Differential {{ x.diffStr }}
Contracted
{{ x.contractPctStr }} of volume
Tolerance {{ x.toleranceStr }}
Underlift penalty
{{ x.penaltyStr }}
Terms
{{ x.termsStr }}
Renews {{ x.renewal }}
{{ supMonthName }} contracted vs lifted {{ x.liftedStr }} of {{ x.nominatedStr }} · {{ x.liftedPctStr }}
Underlift {{ x.underStr }} this month - projected penalty {{ x.penExposureStr }} if {{ supMonthName }} closes here.
Contacts {{ x.contactCountStr }}
{{ c.initials }}
{{ c.name }}
{{ c.role }}
{{ c.email }}
{{ c.phone }}
No contacts saved - add one so orders can be emailed or texted through.
Sites & purchase orders {{ x.poCountStr }}
{{ st.terminal }}
{{ st.countStr }} · {{ st.litresStr }}
Contracted litres by month {{ x.annualStr }} across the year
{{ mc.label }}
{{ mc.valStr }}
Edit {{ supEditDraft.name }}
{{ supEditDraft.contractLabel }}
Contracted litres by month {{ supEditDraft.totalStr }} total
Fuel bought in from suppliers. Each order is raised against a supplier site and lands at one of your depots.
Delivery date to
On order {{ m.name }} {{ m.litresStr }} Total {{ poFuelTotals.totalStr }}
Create a purchase order
Buy
{{ poCostPreview.buyStr }}
Haulage
{{ poCostPreview.haulStr }}
Landed
{{ poCostPreview.landedStr }}
{{ poCostPreview.litresStr }} total
{{ poCostPreview.totalStr }}
{{ poCostPreview.msg }}
Send to supplier by
Goes to the supplier's first saved contact when the order is raised.
Orders
{{ poSummary.countStr }}
Volume
{{ poSummary.litresStr }}
Value
{{ poSummary.valueStr }}
Inbound
{{ poSummary.openStr }}
{{ p.id }} {{ p.supplierName }} · {{ p.terminal }} → {{ p.depot }} {{ p.status }} {{ p.date }}
{{ p.fuelName }}
{{ p.litresStr }} at {{ p.pplStr }}
Value
{{ p.valueStr }}
Haulier
{{ p.haulier }}
On site by
{{ p.arrive }}
BOL
Loading instruction: {{ p.loadWindow }}
Haulier link {{ p.acceptedLabel }} Sent {{ p.linkSent }} Not sent yet · Supplier: {{ p.supNotified }}
PHOTO
Collection receipt
{{ p.receipt.ref }}
{{ p.receiptLitresStr }} · captured {{ p.receipt.at }}
Photographed by {{ p.receipt.by }}
{{ poEmptyMsg }}
Every load our hauliers are moving, grouped by company. Each trip has a unique link the driver uses to accept, photograph the BOL at collection, and complete the delivery.
Trips
{{ haulTrips.kpis.tripsStr }}
Delivered
{{ haulTrips.kpis.doneStr }}
Fuel moving
{{ haulTrips.kpis.movingStr }}
Outstanding
{{ haulTrips.kpis.outstandingStr }}
{{ g.name }} {{ g.countStr }} · {{ g.litresStr }}
{{ g.doneStr }}
{{ t.id }}
{{ t.route }}
{{ t.fuelName }} · {{ t.litresStr }} · {{ t.arrive }}
{{ st.label }}
{{ t.stage }}
No haulage trips for this day.
Click a trip's link to see exactly what the driver sees — accept the load, photograph the bill of lading at the terminal, and mark it delivered.
The hauliers who move fuel from supplier terminals into your depots. Click through for contacts, loads and invoices.
Add a haulage company
{{ h.name }} {{ h.onTimeStr }} on time
{{ h.contact }}
{{ h.phone }}
{{ h.email }}
Rate
{{ h.rateStr }}
Lanes
{{ h.lanesStr }}
Loads
{{ h.jobsStr }}
Live
{{ h.liveStr }}
No haulage companies match that search.
Haulage company
{{ haulDetail.name }}
{{ haulDetail.rateStr }} · {{ haulDetail.onTimeStr }} on time
Loads
{{ haulDetail.loadCountStr }}
{{ haulDetail.deliveredStr }}
Volume
{{ haulDetail.litresStr }}
Receipts
{{ haulDetail.receiptStr }}
{{ haulDetail.invoicedStr }}
Contacts {{ haulDetail.contactCountStr }}
{{ c.initials }}
{{ c.name }}
{{ c.role }}
{{ c.email }}
{{ c.phone }}
Loads to
{{ r.id }} {{ r.lane }} {{ r.fuelName }} · {{ r.litresStr }} {{ r.status }} {{ r.date }}
Receipt uploaded · {{ r.receiptRef }} No receipt uploaded Expected haulage {{ r.expectedStr }} {{ r.invRef }} · {{ r.invAmountStr }}{{ r.varianceStr }}PaidAwaiting payment Invoice £
No loads for this haulier in that period.
Haulage invoices
{{ paySummary.countStr }}
Recorded against purchase orders
Outstanding
{{ paySummary.outstandingStr }}
{{ paySummary.unpaidCount }} awaiting payment
Selected
{{ paySummary.selTotalStr }}
{{ paySummary.selCount }} invoices
Invoice
Purchase order
Haulier / lane
Expected
Invoiced
Variance
Status
{{ r.ref }}
{{ r.at }}
{{ r.poId }}
{{ r.haulier }}
{{ r.lane }} · {{ r.litresStr }}
{{ r.expectedStr }}
{{ r.amountStr }}
{{ r.varianceStr }}
{{ r.statusLabel }}
{{ r.paidAt }}
No haulage invoices recorded yet. Record one against a load in Haulage companies.
Today's notified buy price per litre by supplier and terminal. These feed the landed cost and every depot's exit price. Edits are written to the audit log.
Supplier
Terminal
{{ hf.name }}
Last updated
{{ r.supplier }}
{{ r.terminal }}
-
{{ r.lastUpdatedStr }}
by {{ r.lastBy }}
Not changed today
A dash means that supplier does not offer the product at that terminal.
Price change history
{{ l.supplier }} · {{ l.terminal }}
{{ l.fuelName }}
{{ l.fromStr }} → {{ l.toStr }}
{{ l.deltaStr }}
{{ l.at }}
{{ l.by }}
Price a postcode
{{ quoteResult.zone }} zone · served by {{ quoteResult.depot }} · lifting {{ quoteResult.fuelName }} from {{ quoteResult.supplierName }} at {{ quoteResult.terminal }}
Buy
{{ quoteResult.buyStr }}
+
Haulage
{{ quoteResult.haulStr }}
=
Landed
{{ quoteResult.landedStr }}
+
Margin
{{ quoteResult.marginStr }}
Exit price
{{ quoteResult.exitStr }}
{{ quoteResult.per1000Str }} per 1,000 L
{{ quoteResult.msg }}
Exit price by depot
Zone / depot
Supply from
Buy
Haulage
Landed
Margin
Exit price
{{ r.zone }}
{{ r.depot }}
{{ r.supplierName }} · {{ r.terminal }}
{{ r.buyStr }}
{{ r.haulStr }}
{{ r.landedStr }}
{{ r.marginStr }}
{{ r.exitStr }}
Completed today
{{ finQueueKpis.countStr }}
Value
{{ finQueueKpis.totalStr }}
Invoiced
{{ finQueueKpis.invoicedStr }}
{{ finQueueKpis.invoicedCountStr }}
Still to invoice
{{ finQueueKpis.outstandingStr }}
{{ finBulk.countStr }} selected {{ finBulk.valueStr }} · {{ finBulk.emailedStr }} · {{ finBulk.postedStr }}
Fuel
Litres
p/L
Action
{{ r.id }}
{{ r.customer }}
{{ r.depot }}
{{ r.fuelName }}
{{ r.litresStr }}
{{ r.pplStr }}
{{ r.valueStr }}
{{ r.marginPplStr }}
{{ r.stageLabel }}
{{ r.invRef }} {{ r.methodLabel }} · {{ r.invAt }} No email on file
Review invoice run
{{ finRun.countStr }} will be generated — check the list, then generate in one go.
Invoice run complete
{{ finRun.emailedStr }} · {{ finRun.postedStr }}
{{ r.id }} {{ r.customer }} {{ r.fuelName }} · {{ r.litresStr }} {{ r.viaLabel }} {{ r.ref }}
Tick the orders (or select all), then Run invoicing. Click a column heading to sort. Manager approves, finance signs off, invoice goes out — all from the row.
Orders today
{{ finDash.todayOrders }}
Expected to invoice
{{ finDash.todayExpected }}
Actually invoiced
{{ finDash.todayInvoiced }}
{{ finDash.todayPct }} of expected
Month vs last month
{{ finDash.deltaStr }}
{{ finDash.monthInvoiced }} vs {{ finDash.prevMonth }}
Invoiced this month by week
{{ w.label }}
{{ w.val }}
{{ finDash.monthOrders }} orders invoiced this month. Use the depot filter on the Invoicing tab for a date-range view by depot.
{{ tripDayLabel }} · {{ tripDateStr }}
{{ tripKpis.driverStr }}
{{ tripKpis.dropStr }} · {{ tripKpis.doneStr }}
Spare capacity
{{ tripKpis.spareStr }}
Find them extra work
{{ tripDayLabel }}
{{ tripDateStr }}
{{ t.initials }}
{{ t.driver }}{{ t.statusLabel }}{{ t.spareStr }}
{{ t.reg }} · {{ t.depot }} · {{ t.shiftStr }}
{{ t.dropStr }}
{{ t.doneStr }}
Est. finish {{ t.etaStr }} On board {{ t.onBoardStr }} Fuel left {{ t.remainingStr }}
{{ tripDetail.initials }}
{{ tripDetail.driver }}{{ tripDetail.statusLabel }}
{{ tripDetail.reg }} · {{ tripDetail.body }} · {{ tripDetail.depot }} · shift {{ tripDetail.shiftStr }}
Est. finish
{{ tripDetail.etaStr }}
{{ tripDetail.doneStr }}
Tanker capacity {{ tripDetail.capStr }} Loaded {{ tripDetail.onBoardStr }} Committed {{ tripDetail.requiredStr }} Fuel left over {{ tripDetail.remainingStr }} Spare capacity {{ tripDetail.ullageStr }}
{{ tripDetail.spareStr }} left on shift and {{ tripDetail.remainingStr }} still on board - there is room for another drop before {{ tripDetail.shiftStr }} ends.
{{ tripDetail.dropStr }} on this trip
{{ st.seq }}
{{ st.customer }}Added today
{{ st.place }} · {{ st.fuelName }} · {{ st.litresStr }}
{{ st.statusLabel }}
Each zone maps a set of postcode areas to the depot that serves them and the supplier and terminal that depot lifts from. A customer's price follows the zone their postcode falls in.
{{ z.name }} {{ z.depot }} {{ z.areaCount }} areas
{{ a.label }}
Haulage on this lane {{ z.haulStr }}/L
Customers who've found fuel cheaper elsewhere. Agree a match and we email them a price locked to their account for 48 hours, ready to activate on their next order.
{{ p.id }} {{ p.customer }} · {{ p.at }} {{ p.status }}
Product
{{ p.fuelName }}
{{ p.litresStr }}
Our price
{{ p.ourPplStr }}
{{ p.rival }}
{{ p.theirPplStr }}
Gap
{{ p.gapStr }}
Margin at that price
{{ p.marginStr }}/L
Email & text sent automatically
{{ p.status }} by {{ p.by }} · agreed price {{ p.agreedPplStr }}/L
No price match requests here.
Chats coming in from the customer portal - who picked them up, how quickly, and how the customer rated it.
{{ outstandingStr }}
Came in
Customer & question
Actioned by
Response
Rating
Status
{{ c.openedAt }}
{{ c.customer }}
{{ c.topic }} · {{ c.message }}
{{ c.agentLabel }}
{{ c.respStr }}
{{ c.ratingStr }}
{{ c.statusLabel }}
No chats in this view.
{{ selChat.customer }}
{{ selChat.id }} · {{ selChat.topic }}
{{ selChat.statusLabel }}
{{ selChat.message }}
Came in{{ selChat.openedAt }}
Actioned by{{ selChat.agentLabel }}
First replied{{ selChat.answeredAt }}
Response time{{ selChat.respStr }}
Customer rating
{{ selChat.ratingStr }}
“{{ selChat.comment }}”
Rate this chat (as the customer would)
Average response time
{{ chatKpis.avgRespStr }}
across {{ chatKpis.total }} chats today
Answered under 5 min
{{ chatKpis.under5Str }}
of answered chats
Average rating
{{ chatKpis.avgRatingStr }}
from {{ chatKpis.ratedCount }} ratings
Waiting now
{{ chatKpis.waiting }}
slowest today {{ chatKpis.slowest }}
How quickly we replied
Distribution of first-response times
{{ b.label }}{{ b.count }}
Chat responder leaderboard
Ranked by customer rating, then response time
#
Responder
Rating
Avg rating
Avg response
Chats
5★
Low
{{ a.rank }}
{{ a.initials }}
{{ a.name }}Top ratedNeeds support
{{ a.starsStr }} · {{ a.ratedStr }}
{{ a.avgRatingStr }}
{{ a.avgRespStr }}
{{ a.chats }}
{{ a.fiveStar }}
{{ a.low }}
New credit-account applications from the website. Accounts run the checks, set a credit limit and approve or decline.
{{ appResultStr }}
Applicant
Volume
Sales rep
Accounts
Status
{{ a.company }}Rep link
{{ a.contact }} · {{ a.place }} · {{ a.nature }} · {{ a.submittedStr }}
{{ a.litresStr }}
{{ a.rep }}
{{ a.ownerLabel }}
{{ a.statusLabel }}
No applications match this search or filter.
{{ selApp.company }}
{{ selApp.id }} · {{ selApp.submittedStr }}
{{ selApp.statusLabel }}
Contact{{ selApp.contact }}
Phone{{ selApp.phone }}
Email{{ selApp.email }}
Business{{ selApp.nature }}
Expected volume{{ selApp.litresStr }}
Sales rep{{ selApp.rep }}
{{ selApp.viaLabel }}
Trade references {{ selApp.refsVerifiedStr }}
{{ r.n }} {{ r.company }} {{ r.statusLabel }}
Contact{{ r.contact }}
Phone{{ r.phone }}
Email{{ r.email }}
Postcode{{ r.postcode }}
Trading history{{ r.years }} · {{ r.terms }}
Verify all three references before approving credit.
Approved by {{ selApp.ownerLabel }} · limit {{ selApp.limitStr }}
Declined by {{ selApp.ownerLabel }}
{{ selApp.note }}
Call reminders and follow-ups against customers. Assign to a sales agent, set a due time, and track completion.
Agent
My open tasks
{{ taskKpis.open }}
assigned to {{ taskAgent }}
Due today
{{ taskKpis.today }}
calls to make
Overdue
{{ taskKpis.overdue }}
past their due time
Completed today
{{ taskKpis.doneToday }}
logged as done
Reminders
{{ t.customer }} {{ t.statusLabel }} {{ t.kind }}
{{ t.note }}
✓ {{ t.outcome }}
{{ t.dueStr }}
{{ t.agent }}
No tasks match these filters.
New reminder
Set a call-back against a customer
{{ taskAgent }} vs the team
Team rank
{{ perfKpis.rank }}
by tasks completed
Completed
{{ perfKpis.done }}
{{ perfKpis.vsTeam }}
Completion rate
{{ perfKpis.rateStr }}
of tasks in period
Calls → orders
{{ perfKpis.conv }}
orders placed on a call
Agent leaderboard
#
Agent
Completed
Done
Open
Overdue
Orders
Rate
{{ a.rank }}
{{ a.initials }}
{{ a.name }}
{{ a.done }}
{{ a.open }}
{{ a.over }}
{{ a.conv }}
{{ a.rateStr }}
Set the national card for a given day. Each depot sells at the card plus its local adjustment — pick a depot or type a postcode to see the price a customer would actually pay.
Price date {{ priceDateStr }}
or {{ pricingSel.pcMsg }} No zone covers that postcode Showing {{ pricingSel.depotName }} · card {{ pricingSel.adjStr }}
Fuel
Buy
Card sell
Depot sell
Margin
Min sell
Last change / save
{{ p.name }}
{{ p.cat }}
{{ p.depotSell }}
{{ p.marginStr }}
{{ p.marginPctStr }} · {{ p.flag }}
{{ p.lastBy }}
{{ p.lastAt }}
Price history · {{ p.name }}
Buy
Sell
Min
Changed by
When
{{ h.buy }}p
{{ h.sell }}p
{{ h.min }}p
{{ h.by }}Current
{{ h.at }}
Edit a price then press Save to commit it - every change is logged with the user and timestamp, so multiple updates a day are all recorded. Sell prices flow into the quote & order builder.
{{ customerCount }} customers · showing up to 30 at a time - search or filter to narrow.
Level: {{ custLevelName }}
Customer
Type
Sales rep
Location
Orders
Balance
{{ c.name }}
{{ c.contact }} · {{ c.phone }}
{{ c.segment }}
{{ c.salesRep }}
{{ c.place }}
{{ c.orderCount }} orders
{{ c.balanceStr }}
Edit customer details
{{ custDetail.initials }}
{{ custDetail.name }}
{{ custDetail.levelName }}
{{ custDetail.contact }} · {{ custDetail.phone }}
{{ custDetail.address }} · {{ custDetail.townPostcode }}
Served by {{ custDetail.station }} · {{ custDetail.tankCount }} tanks on site
Contact & address details
Contact name
{{ custDetail.contact }}
Phone
{{ custDetail.phone }}
Email
{{ custDetail.email }}
Served by station
{{ custDetail.station }}
Sales rep
{{ custDetail.salesRep }}
Delivery address
{{ custDetail.address }}
{{ custDetail.townPostcode }}
Points history{{ custDetail.pointsBalanceStr }} pts
{{ ph.label }}
{{ ph.date }}
{{ ph.pts }}
Earned at their tier rate - boosts from live promotions apply automatically.
Account
Type{{ custDetail.segment }}
Total orders{{ custDetail.orderCount }}
Lifetime spend{{ custDetail.totalSpentStr }}
Balance{{ custDetail.balanceStr }}
Credit control
Only Finance can change a credit limit.
Credit limit{{ custDetail.creditLimitStr }}
Currently used{{ custDetail.creditUsedStr }}
Available{{ custDetail.creditAvailStr }}
{{ custDetail.creditPctStr }} of limit used
Over their credit limit - new orders need approval.
On credit hold - no new orders.
Take an order by phone
Quote live, save it, or place the order - the customer gets an instant SMS confirmation.
Saved quotes
{{ q.fuelName }} · {{ q.litresStr }}
{{ q.id }} · {{ q.date }} · {{ q.pplStr }}
{{ q.totalStr }}
Order history · {{ custDetail.orderCount }} orders
Order
Fuel
Litres
Total
Status
{{ o.id }}
{{ o.fuelName }}
{{ o.date }}
{{ o.litresStr }}
{{ o.totalStr }}
{{ o.statusLabel }}
{{ t.label }}
{{ t.loc }}
{{ t.fuelName }}
Low
Current {{ t.levelStr }} ({{ t.pctStr }}) Ullage {{ t.ullageStr }} Capacity {{ t.capStr }}
Delivery site
{{ custDetail.address }}
{{ custDetail.townPostcode }}
///{{ custDetail.w3w }}
{{ custDetail.accessNote }}
Served by {{ custDetail.station }}
Invoices & payments Each invoice shows whether it's been paid, how and when. Click the order ref to open the order. Prepaid balance {{ custDetail.prepaidStr }} · Direct Debit active
Invoice
Order
Details
Date
Amount
Payment
Status
Resend
{{ v.orderId }}
{{ v.summary }}
{{ v.method }}
{{ v.date }}
{{ v.totalStr }}
{{ v.payMethod }}
{{ v.payRef }} · paid {{ v.paidOn }}
Awaiting payment
{{ v.status }}
No invoices yet — they appear here once orders are completed and invoiced.
Delivery sites
{{ custDetail.siteCountStr }} · each site has its own postcode, contact and linked tank
New site
{{ st.name }}Main site
{{ st.address }}, {{ st.town }} · {{ st.postcode }}
{{ st.tankLabel }}
{{ st.contactNames }} · {{ st.contactPhone }} {{ st.serviceDays }} {{ st.serviceHours }}
Edit site
Every change made to this customer's account - who made it, what changed and when. Credit limit changes can only be made by Finance.
{{ a.initials }}
{{ a.field }} {{ a.role }}
{{ a.from }} → {{ a.to }}
{{ a.note }}
{{ a.by }}
{{ a.at }}
No changes recorded against this customer yet.
Contacts
{{ custDetail.contactCountStr }} · each can be assigned to one or more sites
New contact
{{ c2.initials }}
{{ c2.name }}Primary{{ c2.role }}
{{ c2.phone }} · {{ c2.email }}
Sites: {{ c2.siteNames }}
Tasks & call reminders
{{ t.kind }}{{ t.statusLabel }}
{{ t.note }}
✓ {{ t.outcome }}
{{ t.dueStr }}
{{ t.agent }}
No tasks against this customer yet.
Notes against this customer
{{ n.text }}
{{ n.by }} · {{ n.time }}
No notes yet for this customer.
NWF
Order desk
Take an order by phone
Who's calling?
Search by name, town or phone number - or add a new customer.
Search by
{{ composer.matchTotalStr }} · narrow it down by
{{ m.initials }}
{{ m.name }}
{{ m.contact }} · {{ m.place }} · {{ m.phone }}
{{ m.orderCount }} →
No customers match that search. Try a different field, or add them as new.
Matching delivery sites
{{ st.siteName }} · {{ st.postcode }}
{{ st.addr }} · {{ st.custName }}
Adding a new customer? Switch to Name and type their name - you can add the {{ composer.quickAddSeedLabel }} on the order.
Recent customers
{{ composer.custInitials }}
{{ composer.custName }}
{{ composer.custType }} · {{ composer.custStation }}
Contact{{ composer.custContact }}
Phone{{ composer.custPhoneStr }}
Town{{ composer.custPlace }}
Lifetime spend{{ composer.custSpendStr }}
Balance{{ composer.custBalanceStr }}
Priced from{{ composer.depotPriceName }} · {{ composer.depotAdjStr }}
Pricing level{{ composer.levelName }}
Previous orders
{{ composer.custOrderCount }} on file · tap to repeat
{{ p.fuelName }}{{ p.totalStr }}
{{ p.date }} · {{ p.litresStr }} · {{ p.id }}
Paid {{ p.pplStr }}/L Margin {{ p.marginPplStr }}/L · {{ p.marginValStr }}
No previous orders - this is their first.
Last order - {{ composer.lastOrderSummary }}
Contact & delivery details
Tanks to fill
{{ t.label }}
p
Line total
{{ t.lineNetStr }}
margin {{ t.marginPplStr }}
Below the {{ t.minStr }} floor for {{ t.fuelName }}
Delivery & scheduling
Same-day delivery?
Check whether a tanker already out has room for this order.
{{ capCheck.countStr }} · {{ capCheck.litresStr }} needed
{{ m.driver }} · {{ m.reg }}
{{ m.remainingStr }} on board · {{ m.spareStr }} before {{ m.shiftEnd }}
Booked onto {{ capCheck.assignedTo }} for today.
No tanker out today has {{ capCheck.litresStr }} spare with time left on shift. Book a delivery window below.
{{ composer.deliveredByStr }}
Card payment · taken over the phone
Card is tokenised on submit - the full number is never stored.
{{ composer.summaryTitle }}
Fulfilled from {{ composer.depotPriceName }} — matched from the customer's postcode. Depot price {{ composer.depotAdjStr }} on the card.
Litres
{{ composer.litresStr }}
Margin
{{ composer.orderMarginStr }}
Net{{ composer.netStr }}
VAT (20%){{ composer.vatStr }}
Timed slot{{ composer.slotFeeStr }}
Total{{ composer.totalStr }}
Delivery window
{{ composer.windowSummary }} · {{ composer.windowFeeStr }}
⚠ Below the {{ composer.minStr }} floor for this fuel
Reading it back
{{ composer.readBack }}
Customer tracking link
{{ tracking.id }} · {{ tracking.custName }}
{{ tracking.truckLabel }}
{{ tracking.litresStr }} · {{ tracking.fuelName }}
{{ st.n }}
{{ st.label }}
{{ st.sub }}
This is the live view your customer sees at nwffuels.co.uk/track/{{ tracking.id }}
Allocate to a provider
{{ allocModal.orderId }} · {{ allocModal.customer }}
{{ allocModal.litresStr }} {{ allocModal.fuelName }} to {{ allocModal.place }}
Choose a provider
Recommended - serves {{ allocModal.postcode }} at the best rate.
Sent to {{ allocModal.chosenName }}
SMS to {{ allocModal.chosenPhone }} and email to {{ allocModal.chosenEmail }}, with the order details and an accept link.
Request quotes
{{ quoteModal.orderId }} · {{ quoteModal.customer }}
{{ quoteModal.litresStr }} {{ quoteModal.fuelName }} to {{ quoteModal.place }}
Select providers to text ({{ quoteModal.count }} selected)
Quote request texted to {{ quoteModal.names }}. Prices will appear in the Quotes tab as they come back.
NWF
Delivery job for {{ pvLink.providerName }}
{{ pvLink.orderId }}{{ pvLink.statusLabel }}
Job details
Customer{{ pvLink.customer }}
Location{{ pvLink.place }}
Product{{ pvLink.fuelName }}
Customer ordered{{ pvLink.litresStr }}
Can you take this job? Accepting confirms you'll deliver and updates the order status for NWF.
Complete the job
Ordered {{ pvLink.litresStr }} - enter the actual delivered volume from your meter ticket.
Applications
Send the application form
We'll email a pre-linked application form. Anything they submit comes back tagged to the chosen sales rep.
Form emailed to {{ sendForm.email }} - tagged to {{ sendForm.rep }} with rep code {{ sendForm.code }}. It'll appear here as soon as they submit.
Message customer
{{ compose.name }}
{{ compose.charCount }} · standard SMS is 160 characters
{{ compose.channelLabel }} sent to {{ compose.destination }} - logged against the customer.
Proof of delivery
{{ tripPod.customer }}
{{ tripPod.id }} · {{ tripPod.place }}
Product{{ tripPod.fuelName }}
Ordered{{ tripPod.orderedStr }}
Delivered{{ tripPod.deliveredStr }}
On site{{ tripPod.startStr }} - {{ tripPod.endStr }}
Driver{{ tripPod.driver }}
Signed by{{ tripPod.signedBy }}
Delivery note{{ tripPod.bol }}
Fill point///{{ tripPod.w3w }}
Signature
Photographs · {{ tripPod.photoCount }}
Find work for {{ findWork.driver }}
{{ findWork.reg }} · {{ findWork.depot }} · {{ findWork.remainingStr }} left on board · {{ findWork.spareStr }} before {{ findWork.shiftEnd }}
Unrouted orders near this driver's route, matched against the fuel still on board and the time left on shift.
{{ findWork.depot }}
{{ sp.seq }}
{{ p.seq }}
{{ findWork.reg }}
Driver now Today's stops Can take Won't fit
{{ w.seq }}
{{ w.customer }}
{{ w.place }} · {{ w.fuelName }} · {{ w.litresStr }}
{{ w.detourStr }}
{{ w.milesStr }}
{{ w.fitLabel }} {{ w.timeLabel }}
No unrouted orders nearby right now.
{{ supHistoryView.name }}
{{ supHistoryView.countStr }} · {{ supHistoryView.litresStr }} · {{ supHistoryView.valueStr }}
{{ c.name }} · {{ c.role }}
{{ c.email }} · {{ c.phone }}
Order
Date
Site → depot
Product
Litres
Value
Status
{{ r.id }}
{{ r.date }}
{{ r.terminal }} → {{ r.depot }}
{{ r.fuelName }}
{{ r.litresStr }}
{{ r.valueStr }}
{{ r.notified }}{{ r.status }}
No orders raised with this supplier yet.
NWF Fuels · load instruction
{{ haulLinkView.id }}
Haulier view · {{ haulLinkView.haulier }}
Collect from{{ haulLinkView.supplierName }}
{{ haulLinkView.terminal }}
Deliver to{{ haulLinkView.depot }}
Product{{ haulLinkView.fuelName }}
Volume{{ haulLinkView.litresStr }}
Date{{ haulLinkView.date }}
On site by{{ haulLinkView.arrive }}
Loading{{ haulLinkView.loadWindow }}
Load accepted
Capture the bill of lading handed over at the terminal.
PHOTO
Receipt captured
{{ haulLinkView.receipt.ref }}
{{ haulLinkView.receiptLitresStr }}
{{ haulLinkView.receipt.at }}
Delivered - thanks
{{ smsToastTitle }}
To {{ sms.name }} · {{ sms.to }}
{{ sms.body }}
Invoice {{ invDoc.ref }}
NWF Fuels
NWF Fuels Ltd · Wardle, Nantwich, Cheshire CW5 6BP
01829 260 260 · fuels@nwf.co.uk · VAT GB 158 4408 27
INVOICE
{{ invDoc.ref }}
Paid
Due · {{ invDoc.dueDate }}
Invoice to
{{ invDoc.custName }}
{{ invDoc.addr1 }}
{{ invDoc.addr2 }}
Invoice date
{{ invDoc.date }}
Order ref
{{ invDoc.orderId }}
Terms
14 days
Description
Quantity
Unit price
Amount
{{ invDoc.fuelName }} — fuel delivery
{{ invDoc.litresStr }}
{{ invDoc.pplStr }}/L
{{ invDoc.netStr }}
Net{{ invDoc.netStr }}
VAT ({{ invDoc.vatRateStr }}){{ invDoc.vatStr }}
Total due{{ invDoc.totalStr }}
Paid in full on {{ invDoc.paidOn }} — thank you.
Payment to NWF Fuels Ltd · Sort 20-45-45 · Account 5522 8901 · Reference {{ invDoc.ref }}. Pay online at nwf.co.uk/pay. Registered in England No. 00699790. A member of the NWF Group.
Bill of lading · {{ bolModal.bol }}
{{ bolModal.id }} · photographed by {{ bolModal.haulier }} at collection
BILL OF LADING
{{ bolModal.bol }}
Terminal{{ bolModal.terminal }}
Supplier{{ bolModal.supplier }}
Product{{ bolModal.fuelName }}
Quantity{{ bolModal.litresStr }}
ConsigneeNWF Fuels · {{ bolModal.depot }}
Date{{ bolModal.date }}
Carrier{{ bolModal.haulier }}
Driver signature
Delivered · document on file Imported from the haulier's tracking link when the load was collected.