Skip to main content

Shipment calculation

The Shipment calculation section is a calculator: the system works out the cost and shows how that amount was arrived at.

Costing, quoting, rating — it all belongs here

The section is called "Shipment calculation", but the job it does goes by many names: costing a carriage, quoting a price, ballparking a figure, rating cargo, giving a client a quotation. There is no separate "Costing" section in the system — everything listed above is done here.

The calculator has two modes, switched by the tabs above the form:

TabWhen you need it
By requestThe request already exists. Weight and volume are taken from it.
Without a requestA client calls and asks "how much for 300 kg to Almaty". Weight and volume are entered by hand; no request is needed and none is created.

It answers the question "how much would this cost under such-and-such tariff today". It saves nothing and changes nothing: neither the request nor the bill. It is an estimate made before talking to the client or before picking a tariff in a request.

The calculation records nothing

The calculator is read-only. To lock a rate onto a request, the tariff must be selected in the request itself; to get an amount into a document, add a line to the bill. See The tariff in a request and a bill.

Who has access to the section​

RoleAccess
Administrator, HeadFull: calculation for any request and any tariff plus management of tariffs
ManagerCalculation for any request and any tariff, viewing of tariffs; creating and changing tariffs is not allowed
ClientCalculation for their own requests and for the tariffs available to them (both modes); tariffs are read-only
Warehouse workerThe section is not visible
What a client sees in the lists

It plays out differently for each of the form's two lists, but the principle is the same — a client works only with what is "theirs":

  • Requests — only those where they are named as the customer. Exactly as on the Requests page: someone else's requests are not found by the search.
  • Tariffs — public ones plus those assigned in their own requests. See What a client sees for details.

The restriction is enforced on the server: another company's request or a non-public tariff cannot be pulled up, even if you know its number.

The section has no mobile version — the calculation is done on a desktop. A client who opens /calculation from a phone will be shown the mobile version of the system, not the calculator.

The section screen​

On the left are the "By request" / "Without a request" tabs and, below them, the "Calculation parameters" form; on the right is the result card. In the top right is a "Tariffs" button that opens the tariff reference book.

Until a calculation has been run, the right side shows the placeholder: "Nothing calculated yet".

Switching tabs clears the result

This is deliberate: otherwise an amount calculated from a form that is no longer on screen would stay on the right — and it would be easy to mistake it for the result of the current form.

How to calculate by request​

  1. Request — pick a request. The list is searched by request number; the client is shown next to the number.
  2. Tariff — pick a tariff. The search is by name; the rate is visible under the name ("1200.00 EUR per 100.000 kg").
  3. Click "Calculate".
Only active tariffs appear in the list

The tariff combo box shows only tariffs with the "Active" flag — so that you cannot accidentally calculate at a withdrawn rate. The hint under the field says the same thing: "The list shows active tariffs only."

Both fields are required: without a request or without a tariff the form shows an error under the field and does not send the query.

How to calculate without a request​

This mode is for incoming "how much for so-many kilograms" questions — when there is no request yet and no point in creating one.

  1. Switch to the "Without a request" tab.
  2. Tariff — pick a tariff. The list is the same as in the first mode.
  3. Enter the weight and/or the volume — exactly which fields appear depends on the tariff you picked.
  4. Click "Calculate".
Fields appear according to the tariff, not all at once

What you need to enter is decided by the tariff itself — and the hint underneath says so directly:

TariffFieldsHint
By weight, volumetric weight offWeight only"This tariff charges by weight."
By weight, volumetric weight onWeight and Volume"This tariff charges by volumetric weight — both values are required."
By volumeVolume only"This tariff charges by volume."

A field that does not affect the price is not shown at all — so that you never have to invent a number that goes nowhere.

Numbers can be entered with either a comma or a dot: "1,2" and "1.2" are the same thing.

The "Calculate from places" block​

A batch of several packages does not need to be added up in your head or in a separate calculator. Below the fields there is a collapsed "Calculate from places" block — expand it and describe the cargo row by row.

One row is one type of package:

FieldWhat to enter
Length / Width / Heightthe dimensions of one package, in centimetres — measured at the outermost points, including the pallet and the crating
Weight per place, kgthe weight of one unit, not of the whole group
Identical placeshow many identical units there are in the batch

On the right of the row the system immediately shows what came out of it: 90 kg · 1.920 m³.

Weight is per package, not for the whole group

This is the main trap when entering data. If you enter a pallet weight of 600 kg and set the quantity to 5, the batch comes out as 3,000 kg — and that is exactly how the system will calculate it. So check against the number on the right of the row: it shows the weight of the whole group, and the mistake is visible at once.

The buttons in a row: ⧉ duplicates it (handy when the box is the same but the weight differs), ✕ deletes it. On the only remaining row the cross does not delete it but clears it.

At the bottom of the block is the total "Total: 12 places · 210 kg · 2.220 m³" and a "Use as weight and volume" button. It carries both numbers over into the calculation fields, after which you can click "Calculate".

  • The number of packages does not affect the price — it is there so that you can check your measurements against the client's waybill.
  • The values are carried over only by the button: until you press it, whatever you typed by hand stays untouched. After the transfer the values can still be corrected — what is calculated is always whatever stands in the "Weight" and "Volume" fields.
  • If the fields diverge from the table, the block says so: "The fields above are used. Places total: …". Nothing is blocked — it is only there so the figure does not surprise you.
  • If the tariff charges by weight only, the dimension columns are not shown: they do not affect the price, and the block is still useful — it sums the weight across packages.
  • Enter adds a new row, Ctrl+Enter runs the calculation.
Why there is no cost on a package row

Volumetric weight is applied to the shipment as a whole, not to each package separately. If you work out a "chargeable weight" for each package individually and add them up, the sum is almost always larger than the real one — on this system's own data the discrepancy reached +32%. A row of such a table is easily mistaken for the price of a separate shipment, and the error runs into tens of percent, so there is no money at package level in the system, and there never will be.

For the same reason you should not divide the total by the number of packages: a "price per package" simply does not exist in carriage of this kind.

How the "without a request" mode differs​

  • The result card has no "actual" / "declared" badges: values entered by hand have neither source.
  • The result is saved nowhere and cannot become a bill line. To issue a bill you do need a request after all — see The tariff in a request and a bill.
  • The calculation is always made for today and for the service specified in the tariff: you cannot pick another date or another service.

How to read the result​

The result card consists of two blocks.

Quantity used​

The large number is the quantity (kg or m³) the money was calculated from. Below it is the caption "The amount is calculated from this quantity".

On the right are the source badges, separately for weight and for volume:

BadgeWhat it means
Weight: actualThe request's actual weight (as weighed by the warehouse) went into the calculation.
Weight: declaredThere is no actual weight, so the declared one (as stated by the client) was taken.
Volume: actual / Volume: declaredThe same for volume.

The rule is simple: an actual value displaces a declared one. As soon as the warehouse has entered the actual weight, we calculate from it; until then, from the declared one. Weight and volume are independent here: you can have "Weight: actual" and "Volume: declared" at the same time.

If the tariff has volumetric weight enabled, the block shows both values — the physical and the volumetric weight — side by side, and highlights the winner with the caption "Volumetric weight applied":

Physical weight 100.00 kg · Volumetric weight 375.00 kg — the volumetric weight is greater than the physical one, so it went into the calculation.

This is deliberate: "250 kg" in the answer when the physical weight is 80 kg looks like an error until you can see where the 250 came from.

Cost​

RowWhat it shows
Cost in the tariff currencyThe amount at the rate, before conversion.
Exchange rate"1 EUR = 95.0000 RUB". If the currencies match, the rate is replaced by "The tariff currency matches the service currency — no conversion needed."
Calculation dateThe date the exchange rate was requested for (for the calculator — today).
Rate as ofThe date of the exchange rate that was actually applied. If there is no rate for the requested date, the nearest earlier one is taken — and then this date differs from the calculation date.
Volume usedThe volume the volumetric weight was derived from. Shown when volumetric weight kicked in — so that it is clear where it came from.
Cost in the service currencyThe bottom line — the amount you will put on the bill.
Unit price"12.00 RUB per 1 kg" — the price the total was built from.

If the calculation was made from the places table, the caption "For the whole batch: 12 places · 210.00 kg · 2.220 m³" appears under the total. It is not decorative: over the phone, an amount named after a list of packages is almost always heard as the price of a single package — the caption settles that question in advance.

Under the card there is a disclaimer: "Preliminary estimate, not a binding offer." When a batch is calculated, a second line is added to it — stating that the calculation excludes per-place limits, oversize surcharges, minimum batch charges and additional services.

The "Copy calculation" button​

It copies the calculation as ready-made text — the tariff, the composition of the batch, the applied weight, the total, the date and both disclaimers. The text can be pasted straight into a messenger or an email to the client.

Do not remove the disclaimer from the copied text

It travels with the amount on purpose. A figure without the disclaimer, sent to a client, reads as a promise of a price.

A figure named to a client is not yet a price

The calculation uses today's exchange rate and the current rate; both grounds may change. On top of that, the system does not yet account for a minimum chargeable weight — on small batches the calculator understates the cost, and a manager needs to correct such a figure by hand.

The calculation also does not check per-package limits: overweight on a single package, oversize cargo, inability to stack. A 2,000 kg batch as one package and as ten packages are different carriages, and the calculator knows nothing about that.

Sometimes there are two rate dates

If both the tariff currency and the service currency differ from the company's base currency, their rates are looked up independently and may come back with different dates. In that case, instead of one row, two are shown: "EUR rate as of" and "USD rate as of".

The formula​

quantity = the request's weight or volume (actual displaces declared),
with volumetric weight: max(physical weight, volume × factor)
unit price = (rate ÷ "per quantity") × exchange rate
cost = unit price × quantity

The order and the roundings are fixed:

  • The quantity is rounded to 2 decimal places, and it is that value the money is calculated from — "unit price × quantity" always agrees with the total, and a manual recalculation will match the screen.
  • Money — 2 decimal places, the exchange rate — 4 decimal places, rounding is arithmetic (0.5 up).

Example. Request: actual weight 240 kg, volume 1.5 m³. Tariff: 1,200 EUR per 100 kg, volumetric weight 250 kg/m³, service in RUB, exchange rate 95.0000.

  • volumetric weight = 1.5 × 250 = 375 kg → more than 240, so the quantity is 375.00 kg;
  • unit price = (1200 ÷ 100) × 95 = 1,140.00 RUB per 1 kg;
  • cost = 1,140.00 × 375 = 427,500.00 RUB.

Why a calculation may fail​

The refusal is shown in place of the result, in a "Calculation failed" block — with a specific reason.

MessageWhat to do
"Request #N has no weight"The tariff charges by weight, and the request has neither an actual nor a declared weight. Fill in the weight.
"Request #N has no volume"The same for a tariff charging by volume.
"Request #N has no volume — tariff "…" charges by volumetric weight"The tariff has volumetric weight enabled; without the volume it cannot be calculated.
"No weight specified" / "No volume specified"The same thing in the without a request mode: the value has to be entered in the form.
"No EUR rate is set for 10.08.2026"There is no rate either on that date or earlier. Enter the rate — see Reference books → Currencies. If a rate for an earlier date exists, the calculation goes through on it and there is no refusal.
"The EUR rate for 09.08.2026 is zero or negative"A zero or negative rate got into the reference book. Fix the value: the system refuses to calculate on such a rate rather than zero out the amount.
"The EUR → PLN cross rate for 10.08.2026 rounds to zero — calculation by tariff is impossible"Both currencies are non-base and their ratio degenerates to zero after rounding. Check both rates in the reference book.
"The company has no base currency — calculation by tariffs is impossible"Mark one of the currencies as the "default" one.
"Request #N has no tariff snapshot — select a tariff in the request"The request reached the "Add by tariff" path without a tariff selected. Open the request and pick a tariff.
"Currency EUR from the snapshot of request #N is missing from the reference book — reselect the tariff"The currency frozen in the request was deleted or renamed in the reference book. Open the request and pick the tariff again — the snapshot will refresh.
"The tariff rate is below 0.01 in the service currency — the bill line would be zero"After conversion the rate degenerates to zero. Check "per quantity" and the exchange rate.
"The unit price exceeds the bill item limit" / "The line amount exceeds the limit"The numbers are too large for a bill line: split the shipment or enter the price manually.
"The tariff calculation cannot be expressed as a unit price"A rare case of micro-rates: after rounding, the unit price diverges too far from the exact amount. The line has to be entered manually.
The calculation uses the current reference book, not the request

The calculator always takes the current tariff parameters from the reference book. If a request already has a tariff selected, its own (frozen) terms may differ — and it is those that the bill line is calculated from. See Tariff terms snapshot.

What's next​