Analyze shipments and profit by customer and salesperson

Guide information

Audience: Accounting, Operations Manager
Reading time: about 10 minutes
Use this page to: read the four freight profit reports correctly, and understand why their Cost and Revenue can differ from the Charges tab of a shipment

Requirements

This tutorial requires the installation of the following applications/modules:

  • Freight Forwarder Management

  • Logistics Shipment Sale Integration (installed automatically with the Sales app) - owns the Shipment Profitability report used throughout this page

  • Freight Sale - adds the Profit by Customer and Profit by Salesperson menus, reading the same report grouped differently

  • Freight Sale - Consolidation Profitability Bridge (installed automatically when both Freight Sale and Freight Consolidation are active) - adds the Shipment Role column used further down this page

  • Logistics Routes Integration (installed automatically with Logistics Shipment and Routes) - owns the Top Routes report

These four reports read the same underlying figures as the Charges tab of a shipment (see Record charges, invoice the customer, and bill vendors), but on a different rule: Charges shows every buy and sell price you have entered, whether or not it has reached an invoice or a bill yet, while these reports count revenue from the confirmed sales order and cost only from posted bills. Reading a report number as if it followed the Charges tab’s rule is the most common way to misjudge a shipment’s real profitability.

Running scenario: Tuan (Accounting) and Duc (Operations Manager) read Nhat Long Footwear’s FCL export (SHP/26xx/000nn, Gross Profit 17,180,000 VND on its Charges tab) and the SITC LCL import master (container SITU6677887, 4 houses: Sao Mai Cosmetics, Dong Do Electronics, Thanh Cong Textile Materials, Viet Han Food Import).

Note

Only the freight Administrator access level sees these report menus: Profit Reports and Shipment Management ‣ Report are restricted to it (see Settings –> Users & Companies –> Users (ask your administrator)).

How Cost and Revenue differ from the Charges tab

  • Cost only counts an analytic entry that already came from a posted vendor bill or purchase receipt. A vendor bill still in Draft contributes 0 here, even when the same charge already shows a Cost Price on the Charges tab.

  • Revenue (Untaxed) counts a sales order line as soon as the order is confirmed - Viindoo’s standard invoicing policy puts the line at To Invoice right away, it does not wait for the customer invoice to actually be issued. A charge added on the shipment but not yet synced back to the sales order does not count here at all.

Because Revenue starts counting earlier (at SO confirmation) than Cost does (at bill posting), Profit on this page can run higher than the Gross Profit on the Charges tab early in a shipment’s life, not lower or zero as you might expect. Once every vendor bill for the shipment is posted, the two numbers converge.

Fields on every profit report

Label on screen

What it means

Filled by

Cost

Sum of posted vendor bill and purchase receipt lines on the shipment’s analytic account, always shown in company currency (VND) even when the original charge was priced in USD.

System, once a bill is posted

Revenue (Untaxed)

Sum of confirmed sales order lines, converted to company currency at the order’s own exchange rate.

System, once the sales order is confirmed

Profit

Revenue minus Cost, on the two gated figures above - not the same figure as Gross Profit on the Charges tab.

System

Profit Margin (%)

(Revenue - Cost) / Revenue x 100; shows 0% when Revenue is 0, which does not mean the shipment broke even.

System

Currency

Always your company’s currency (VND) - not the USD the ocean freight was actually quoted and sold in.

System

Shipment Role

Direct, Master (Consol) or House LCL - only shown once Freight Sale - Consolidation Profitability Bridge is installed. A Master row and its House rows are independent lines, never summed automatically into one another here.

System

Open Profit by Customer and Profit by Salesperson

These two menus read the exact same report, pre-filtered with a different Group By - Profit by Customer for a commercial review, Profit by Salesperson for evaluating each Sales person’s book.

Go to Freight Forwarding ‣ Report ‣ Profit Reports ‣ Profit by Customer. Switch to the Pivot view and add the This Year filter. For this example, search Customer for Nhat Long Footwear, then add Group By –> Shipment to separate the FCL shipment from the mixed-container shipment. A customer total combines all included shipments.

Profit by Customer for Nhat Long Footwear, This Year and grouped by Shipment: L1 revenue111,800,000/cost96,200,000/profit15,600,000 VND; L1B revenue148,980,000/cost0. Customer total revenue260,780,000 and profit164,580,000 VND.

Tip

This step is done when: the SHP/2610/00001 row under Nhat Long Footwear shows Revenue (Untaxed) equal to its confirmed sales order’s untaxed total in VND, and Cost equal to its posted vendor bills - including 96,200,000 VND (USD 3,700 at 26,000) once ONE Line’s ocean freight bill is posted.

Open Freight Forwarding ‣ Report ‣ Profit Reports ‣ Profit by Salesperson the same way. Change Group By from Sale Person to Sale Person + Date (month) as a cross-check.

Tip

This step is done when: the total across all salespeople for the period matches the total shown by Profit by Customer for the same period - if it does not, a filter (Date or Delivery Status) differs between the two views.

Look up one shipment with Shipment Profitability

Use this report instead of the two above when you need one specific shipment, for example to reconcile a customer dispute.

Go to Shipment Management ‣ Report ‣ Shipment Statistics ‣ Shipment Profitability. Type the shipment’s name in the search box, then switch to the Pivot view.

Note

This action only opens in Graph and Pivot - there is no List view here, even though a list layout exists in the database. Use Group By > Shipment on the Pivot view to read one row per shipment instead of looking for a list.

Tip

This step is done when: searching SHP/26xx/000nn returns exactly one pivot row, with the same Revenue (Untaxed) and Cost as the Nhat Long Footwear row above.

Split profit by Shipment Role for a consolidated shipment

An LCL master and its houses each carry their own revenue and cost - reading only the master hides what each individual customer actually earned or cost the company.

To review one master together with its houses, open Freight Forwarding ‣ Operations ‣ Master Shipments and switch to Kanban. Open the menu on the master’s card and select Profitability. Switch to Pivot, then group by Shipment Role and Shipment. This action includes the selected master and its houses, so other shipments do not change the totals in your comparison.

Shipment Profitability opened from SITC master SHP/2611/00018, grouped by Shipment Role and Shipment. Four House LCL rows total revenue 34,944,000 VND; the Master row carries posted cost 24,960,000 VND and no own revenue.

Note

The Master (Consol) row and its 4 House LCL rows are 5 independent lines here - adding them together does not double-count anything, but this is not the same figure as the combined profitability panel on the Master’s own form (see Record charges, invoice the customer, and bill vendors), which is a different, pre-summed view.

Tip

This step is done when: grouping by Shipment Role on the import master shows exactly 1 Master (Consol) row plus 4 House LCL rows for Sao Mai, Dong Do, Thanh Cong and Viet Han - no row missing, none merged.

Read Top Routes (Shipment Routes)

Use this report to see which route is running the most shipments, for example before negotiating a rate with a carrier - not to count containers or volume.

Go to Shipment Management ‣ Report ‣ Shipment Statistics ‣ Shipment Routes (the action’s window title reads Top Routes).

Top Routes pivot grouped by Route: shipment counts by route, including Hai Phong to Los Angeles; this report does not measure gross profit.

Note

Each row here counts a leg carrying a route, not a container or a CBM figure. A route with many rows means many transport legs have used it, not that it necessarily moved the most cargo.

Tip

This step is done when: the route Hai Phong Port -> Port of Los Angeles appears with at least 1 entry, matching the Nhat Long Footwear shipment’s main carriage leg.

See also

Record charges, invoice the customer, and bill vendors - the real-time buy and sell figures.

Decide which report to open

Option

Use when

What changes

Profit by Customer / Profit by Salesperson, Pivot pre-filtered

A periodic (weekly/monthly/quarterly) commercial or management review

Fast aggregate numbers, no per-shipment detail

Shipment Profitability, Group By Shipment

You need one specific shipment - reconciling a customer dispute or an internal query

You search and group by hand; no customer filter is pre-set

Choose Profit by Customer or Profit by Salesperson for an aggregate commercial review; use Shipment Profitability when investigating one shipment. To reconcile a difference, compare the report with that shipment’s charge lines and the related posted vendor bills, then ask Accounting to review any unresolved variance.

Known limitations

Report

What Viindoo does today

What you do instead

Shipment Profitability, Profit by Customer, Profit by Salesperson

Only Graph and Pivot views open, even though a List view exists in the database

Use Pivot with Group By > Shipment to see one row per shipment

All four reports

Cost and Revenue follow accounting status (Posted bill, confirmed order), not the real-time figures on the Charges tab

Read the Charges tab of the shipment itself for a real-time Gross Profit

Troubleshooting

Profit on this report is higher than Gross Profit on the Charges tab

Symptom: A shipment’s Profit here is higher than its Gross Profit on the Charges tab, or Cost reads 0 despite the Charges tab already showing a Cost Price.

Cause: Revenue counts from the moment the sales order is confirmed, while Cost only counts once the related vendor bill is Posted - early in a shipment’s life, Revenue has already arrived here but Cost has not caught up yet.

Fix:

  1. Post the shipment’s vendor bills and confirm every charge is synced to the sales order (see the order’s Logistics tab and the shipment’s route and container records).

  2. For a number that must be correct right now, read the Charges tab instead of this report.

Total by Customer does not match total by Salesperson for the same period

Symptom: Profit by Customer and Profit by Salesperson show different totals for what looks like the same period.

Cause: The two menus only differ by their default Group By - a different Date or Delivery Status filter left active on one of them, not the other, changes the total.

Fix: open both views and align their Date filter and any status filter before comparing totals.

The Shipment Role column or filter is missing

Symptom: No Shipment Role column or filter appears on any of the four reports.

Cause: Freight Sale - Consolidation Profitability Bridge only installs automatically when both Freight Sale and Freight Consolidation are active - a forwarder that does not run LCL consolidation never installs it.

Fix:

  1. If you do run LCL consolidation, check Apps and confirm Freight Consolidation is installed - the bridge module follows automatically.

  2. If you do not run LCL consolidation, this is expected: every shipment is Direct and the column adds no information.

See also

Related articles

  • Allocate shared master costs to house shipments - how a shared master cost gets split into each house’s own Cost before it ever reaches these reports

  • the order’s Logistics tab and the shipment’s route and container records - keeping shipment charges and the sales order in sync, which is what feeds the Revenue side of these reports