Setup & Configuration¶
This guide covers the configuration options specific to commercial weighing operations. For general station setup, user management, and TruConnect installation, see the enforcement setup guide and TruConnect installation — the process is identical.
Commercial Settings¶
Navigate to Setup > Settings > Commercial to configure organisation-wide commercial parameters.
| Setting | Description | Default |
|---|---|---|
| Weighing Business Model | Third-Party Weighbridge (charges transporters per transaction) or Facility-Owned Scale (no per-transaction fee, internal use only) |
— |
| Legal framework (pre-compliance check) | Optional. None, Traffic Act, or EAC Vehicle Load Control Act. Lets transporters check a load against that Act's axle/GVW tolerances — using the same axle configurations as enforcement weighing — before it reaches an enforcement weighbridge. This is separate from, and does not affect, the declared-vs-measured cargo weight tolerance every commercial tenant already has. |
None |
| Weighing fee (KES) | Fallback per-transaction fee, used only when no tariff rule (see below) matches a weighing. Only applies when model is Third-Party Weighbridge. Leave at 0 for facility-owned scales. |
— |
| Default tare expiry (days) | Number of days a stored tare weight remains valid before re-verification is required | 90 |
| Payment gateway | Integrated payment provider (read-only; configured by platform admin) | — |
Business model
Set the Weighing Business Model before going live. When set to Facility-Owned Scale, the system skips invoice creation and payment collection for every transaction. See Business Models for a full comparison.
Legal framework is optional by design
TruLoad may be deployed outside Kenya/East Africa, where neither the Traffic Act nor the EAC Vehicle Load Control Act applies. Leaving this as None (the default) means weighing tickets record weight only and never calculate or flag a compliance decision. Configuring a framework does not change billing or tariffs — it only enables the axle-load pre-compliance check described above.
Tariff Rules¶
Navigate to Setup > Tariffs to configure how commercial weighing fees are calculated. This is
the primary billing mechanism for Third-Party Weighbridge organisations — the flat Weighing
fee (KES) above only applies when a weighing matches no tariff rule.
Each rule has:
| Field | Description |
|---|---|
| Label | Optional display name, e.g. "Heavy trucks (5+ axles)" or "Acme Transporters contract rate" |
| Transporter Contract Rate | Optional. When set, the rule applies only to that transporter's weighings and ignores the bracket fields below. Takes priority over every bracket rule. Can still be narrowed by Cargo/Material Type (below) — a contract hauler can be priced differently per material under the same contract. |
| Bill To (if different) | Optional. When set, invoices this rule generates go to this transporter/customer instead of whichever transporter operated the weighed vehicle. See "Billing on behalf of a client" below. |
| Cargo / Material Type | Optional. Matches a specific material (from the same cargo type list used elsewhere in the system) — e.g. a quarry pricing ballast higher than sand, or a waste facility pricing hazardous waste higher than general waste. Works alongside a transporter contract rate or a bracket rule. |
| Vehicle Type / Min-Max Axle Count / Min-Max Gross Weight (kg) | Optional bracket-matching fields, used when no transporter is selected. Leave any field blank to match any value; the most specific matching bracket (including cargo type, if set) wins. |
| Fee (KES) | The amount, interpreted according to Rate Basis below |
| Rate Basis | Per tonne (fee × net weight in tonnes — the default), Per kg (fee × net weight in kg), or Flat fee (a fixed amount per matching weighing) |
| Minimum Charge (KES) | Optional, for Per tonne/Per kg rules only. A floor applied when the computed amount would be less than this — e.g. a waste facility charging a flat minimum for any small load, then the per-tonne rate above it. |
| Invoiced | Per transaction (invoice immediately on completion — the original behaviour) or Daily/Weekly/Bi-weekly/Monthly/Quarterly/Yearly (roll every matching weighing in that period into one invoice) |
Resolution order for a completed weighing: a matching transporter contract rule always wins
(narrowed further by cargo type if more than one contract rule matches this transporter);
otherwise the most specific matching bracket rule applies (cargo type counts toward specificity
alongside vehicle type/axle count/weight bracket); if nothing matches, the organisation's flat
Weighing fee (KES) applies. Rules with a non-immediate billing period don't invoice right away —
they accrue, and the commercial-periodic-billing background job (see
Background Jobs) rolls up every accrual for the same
organisation, billed party, and period into one invoice once that period has fully elapsed.
Billing on behalf of a client¶
Some tenants operate on behalf of a client who isn't the same entity as the vehicle's own transporter — for example, a quarry contracted to extract and haul material for a client, where the client should receive one invoice regardless of which specific hauling company's trucks were weighed. Set Bill To (if different) on the tariff rule to the client's transporter record: invoices (and, for a non-immediate billing period, the accrual rollup) go to that client instead of the vehicle's own transporter, while the rule still matches weighings the normal way (by transporter contract or by vehicle/axle/weight bracket). Leave it unset for the common case — billing the vehicle's own transporter — which is unaffected.
Tare expiry
When a stored tare expires, the system prevents single-pass operations on the affected vehicle and prompts the operator to capture a fresh tare weight. The tare expiry period can be overridden per vehicle in the tare register.
Tolerance Settings¶
Tolerances define the acceptable variance between expected and actual net weight. They apply per cargo type and are business rules set by the site operator — not legal compliance limits (those belong to the enforcement module).
Navigate to Setup > Tolerances to configure:
| Field | Description | Example |
|---|---|---|
| Cargo type | Apply this rule to a specific commodity, or leave blank for a global rule | Maize |
| Tolerance type | Percentage or Absolute (kg) |
Percentage |
| Tolerance value | Numeric value (% or kg) | 2.0 |
| Maximum tolerance (kg) | Cap applied when using percentage mode — the discrepancy will not be flagged as exceeded beyond this kg ceiling | 2,000 kg |
| Description | Label for operators (e.g. "Maize moisture variance") | — |
How tolerance is evaluated¶
- Operator enters Expected Net Weight in the Ticket step.
- After both weights are captured and net is calculated, TruLoad compares the actual net weight against the expected.
- If the discrepancy exceeds the configured tolerance, the transaction is flagged Tolerance Exceeded.
- The ticket cannot be finalised until a supervisor with
weighing.overridepermission approves the exception.
Discrepancy (kg) = |Actual Net Weight − Expected Net Weight|
For percentage tolerance: Threshold = ExpectedNetWeight × ToleranceValue / 100
Cap applied: min(Threshold, MaxToleranceKg)
For absolute tolerance: Threshold = ToleranceValue (kg)
Flag if: Discrepancy > Threshold
Expected net weight required
Tolerance is only evaluated when the operator provides an Expected Net Weight in the Ticket step. If omitted, no tolerance check runs.
Tolerances vs. enforcement limits
In enforcement mode, axle-load limits are defined by the Kenya Traffic Act. In commercial mode, tolerances are business rules you configure. Exceeding a tolerance generates a supervisor approval gate on the transaction — not a legal case or prosecution record.
Cargo Type Configuration¶
Cargo types determine the commodity-specific rules applied to each transaction.
Navigate to Setup > Weighing Metadata > Cargo Types:
| Field | Description |
|---|---|
| Name | Display name (e.g., "Maize", "Cement", "Ballast") |
| Code | Short code for tickets and reports (e.g., MZ, CM, BL) |
| Moisture target % | Target moisture content for deduction calculation |
| Foreign matter limit % | Threshold above which foreign matter deductions apply |
| This organisation only | When checked, this cargo type is only visible and usable within your organisation. Unchecked (default) makes it a shared entry visible to every tenant on the platform, which is how every pre-existing cargo type behaves today. |
| Active | Enable/disable the cargo type |
Tolerance override lives on the Tolerances page, not here
There is no tolerance field on the Cargo Type form itself. To override the global tolerance for a specific commodity, create a rule scoped to that cargo type on Setup > Tolerances. See Tolerance Settings above for the exact fields.
Adding a new cargo type¶
- Click Add Cargo Type.
- Fill in the name and code.
- Check This organisation only if this cargo type should not be visible to other tenants (leave unchecked to add it as a shared/global entry, the default and most common case).
- Configure quality parameters if deductions are enabled for this commodity.
- Click Save.
The cargo type is immediately available in the weighing capture screen.
Origin and Destination Management¶
Origins and destinations are used for logistics tracking and reporting. They appear on weight tickets and can be filtered in reports.
Navigate to Setup > Weighing Metadata > Origins/Dest.:
- Click Add Location.
- Enter the name, code, country, and location type. This describes the kind of place (city, town, port, border crossing, warehouse), not whether it's used as an origin or a destination. The same location can be selected as either an origin or a destination during capture; there is no separate origin/destination role flag.
- Check This organisation only if this location should not be visible to other tenants (default: shared/global, same convention as Cargo Types above).
- Click Save.
Route-based reporting
Configuring origins and destinations enables the Tonnage by Route report, which shows cargo flows between locations.
Driver and Transporter Management¶
Drivers and transporters are pre-registered for fast lookup during weighing capture.
Navigate to Setup > Weighing Metadata:
- Transporters tab: add hauling companies with contact details and portal email (for transporter portal access)
- Drivers tab: add drivers with licence number and expiry date
- Vehicles tab: register vehicle plates with default tare weight and tare expiry override
Station Configuration¶
Each station (physical weighbridge site) has its own configuration. Navigate to Users & Roles > Stations (station and user/role management are managed together on this screen, not under Setup):
| Setting | Description |
|---|---|
| Station name | Display name in the UI and on tickets |
| Station code | Short code for ticket numbering |
| Address | Physical location |
| Operating hours | Define shift boundaries (start/end time) |
| Default weighing mode | Enforcement or Commercial, informational and for reporting only. The mode a station actually operates in is still determined by your organisation's tenant type; this field does not change routing behaviour. |
| Printer configuration | Free-text/JSON printer details (name, model, connection), metadata only today. TruLoad does not yet drive an 80mm thermal printer directly from this configuration (see Weight Tickets > Printing) |
| Ticket template | Free-text label for the ticket layout you intend this station to use (commercial or enforcement format) |
Quality Deduction Rules¶
When quality deductions are enabled, the system applies deductions based on measured quality parameters:
Moisture deduction¶
- Only applied when actual moisture exceeds the target
- Target moisture is configured per cargo type
Foreign matter deduction¶
- Applied when foreign matter exceeds the configured limit
- The full percentage is deducted (not just the excess)
Adjusted net weight¶
After all deductions, the system computes:
The adjusted net is the billable weight shown on the final ticket.