Dashboard
Fleet overview
Recent activity
Add a truck
| Truck ID | Reg No. | Make/Model | Capacity | Driver | Status |
|---|
Record a truck-hire job
Distance = End Mileage − Start Mileage. This is income earned hiring a truck out to carry someone else's goods.
| Hire ID | Date | Truck | Dept | Hirer | Route | Start | End | Distance | Hire Fee | Payment | Invoice | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Total | — | — | ||||||||||
Log a maintenance expense
| Maint. ID | Date | Truck | Dept | Mileage | Category | Description | Cost | Service Provider | Purchase | |
|---|---|---|---|---|---|---|---|---|---|---|
| Total | — | |||||||||
Log a power saw hire transaction
Tracked separately here — also captured per-sale in the Sales sheet's own Power Saw Hire column — so this is not double-counted with Sales in the Income & Expense Summary. Net Amount = Hire Amount − Operator Fee − Fuel Used, calculated automatically.
| PSH ID | Date | Truck | Dept | Purpose | Hire Amount | Operator Fee | Fuel Used | Net Amount | Notes | Purchase | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Total | — | — | — | — | |||||||
Add a customer
| Customer ID | Name | Contact | Location | Total Sales | Outstanding |
|---|
Customer account
Every transaction tied to one customer — forest product sales, truck hire jobs, invoices and payments — in one chronological view.
| Date | Type | Reference | Details | Amount | Status |
|---|
Add a product
Products here are just a name/ID reference — no price is attached. Unit price is entered manually on each sale.
| Product ID | Name |
|---|
Record a forest product sale
Net Tonnage = Gross − Tare. Total Amount = Net Tonnage × Unit Price. Net Profit = Total Amount − Total Trip Cost (all the fee fields below, including Truck Hire Fee, added together). Unit Price is filled in manually for each sale. Forest Location is picked from a managed list — add more locations any time from Settings > Custom Lists.
| Sale ID | Date | Truck | Customer | Dept | Product | Forest Location | Gross | Tare | Net (t) | Unit Price | Total Amount | Payment | Trip Cost | Net Profit | Invoice | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Total | — | — | — | |||||||||||||
Trip cost analysis
Every fee incurred running each sale's trip — Loading, Fuel, Power Saw Hire, Driver, Movement Permit, Turn Man, Off Loading, Fines and Truck Hire Fee — broken out per sale and totalled, for analysing where trip costs are going.
| Sale ID | Date | Truck | Customer | Loading | Fuel | Power Saw | Driver | Permit | Turn Man | Off Loading | Fine | Truck Hire | Total Trip Cost |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Total | — | — | — | — | — | — | — | — | — | — | |||
Add an employee
Only employees added here can be given a system login — see the Users tab.
| Employee ID | Name | Position | Department | Phone | Date Joined | Status |
|---|
Create an invoice
Build a fresh invoice here, or use "Convert to Invoice" on a Sale or Truck Hire record to pull its details in automatically.
| Description | Qty | Unit price | Line total |
|---|
Invoices
| Invoice # | Date | Customer | Due | Total | Balance | Status | Source | Payments |
|---|
Create a purchase order
Raise an order to a supplier before the bill arrives — useful for parts, tyres or bulk fuel. Once goods/services are received and billed, mark it Received; it then also appears as a bill below.
| PO # | Date | Supplier | Description | Amount | Approval | Status |
|---|
Accounts Payable — Bills
Bills from service providers (maintenance workshops, power saw operators etc). Use "Convert to Purchase" on a Maintenance or Power Saw Hire record, or add one manually below.
| Purchase # | Date | Supplier | Description | Amount | Status | Source |
|---|
All documents
Every invoice, purchase order and purchase bill generated by the system — search, filter by type, and view or print any of them from one place.
| Type | Number | Date | Party | Amount | Status |
|---|
Accounts Receivable
| Invoice # | Date | Customer | Due | Total | Paid | Balance | Status |
|---|
Record a customer payment
Choose which invoice(s) this payment covers and how much goes to each — amounts default to oldest-invoice-first but the finance manager can change any of them before saving. Anything left over is kept as credit on the customer's account.
| Receipt # | Date | Customer | Amount | Method | Reference | Applied to |
|---|
Customer statement
Every invoice and payment for one customer, oldest first, with a running balance — for sending to a customer or reviewing what they owe.
| Date | Reference | Type | Debit | Credit | Balance |
|---|
Transaction ledger
| Date | Reference | Type | Party | Debit | Credit | Balance |
|---|
Company-wide profit
Income & expenses by department
| Department | Income | Expenses | Profit / (Loss) |
|---|
Department contribution chart
Import from Excel
Upload a workbook matching this system's structure (README, Trucks, Customers, Products, Sales, Truck Hire, Maintenance, Power Saw Hire sheets) to bring its data in. New rows are added; existing records with a matching ID are left alone to avoid duplicates.
Full report
The Excel workbook mirrors this system's own structure — Trucks, Customers, Products, Sales, Truck Hire, Maintenance, Power Saw Hire, Dashboard and Income & Expense Summary sheets — so it can be re-imported later or shared with anyone using the original spreadsheet format.
Download individual reports
Each report as its own CSV file — for when you only need one dataset, not the full workbook.
Data backup
Everyday download to a saved Excel file
Chrome/Edge only: link a file once, then refresh it anytime with the latest data — no repeated save dialogs.
A browser can't silently save files in the background for security reasons — true unattended daily downloads aren't possible from a web page. What this does instead: once you've linked a file above, turning this on re-writes that same file automatically (no extra prompts) the first time you open this app on a given day, as long as the tab is open. For a guaranteed daily copy regardless of whether the app is open, pair this with a scheduled task on your computer, or download a manual backup periodically.
Company details
Departments
Every department in the business, with a short code (e.g. PSH for Power Saw Hire, TH for Truck Hire). Sales, Truck Hire, Maintenance, Power Saw Hire and Employee records all pick from this same list when posting a transaction — add, rename or remove a department here and it updates everywhere at once.
| Code | Name |
|---|
Custom lists
Add, edit or delete any dropdown list in the system — including creating entirely new lists of your own. Changes to a list update every form using it immediately.
Custom fields
Add extra fields to any section's records — a super user can add or remove these anytime. For dropdown-type fields, new options can be added later too, so a choice that doesn't exist yet becomes pickable without recreating the field. New fields appear in that section's Edit dialog for every record; fill them in there after creating a record. Core fields the rest of the system relies on (name, date, amounts, and similar) can't be removed, since calculations and reports depend on them directly.
User accounts
Only a super user can create logins, and only for people already in HR's employee list. Pick which sections a new account can see below — use "Manage access" anytime after to also grant full add/edit/delete rights in specific sections, or mark sections view-only (visible, but no adding, editing or deleting). Admins always see and can edit everything, everywhere.
| Username | Employee | Role | Access |
|---|