Maintain carrier rates and vessel schedules¶
Guide information
Requirements
This tutorial requires the installation of the following applications/modules:
Every time Sales quotes a shipment or Ops adds a charge to a booking, Viindoo looks up the buy price from a rate card for the exact lane, carrier and container type. A missing or wrong rate card means the charge auto-fills at zero, forcing someone to type the price by hand - and it is easy to reuse the wrong lane’s rate by mistake. If a term such as POL, POD or Container Type is new to you, see the Freight forwarding glossary.
Running scenario: Duc (Operations Manager) enters Hai Long Logistics’ first Carrier Rate for ONE Line from Hai Phong Port to Port of Los Angeles, adds two vessel schedules, sets up an Agent Rate for destination charges through Pacific Coast Forwarding Agency, Inc., and sets the customer sell rate - all before quoting the FCL export for Nhat Long Footwear.
Before you start¶
ONE Line and Pacific Coast Forwarding Agency, Inc. already have Is Forwarder Carrier and Is Forwarder Agent ticked on their contact record.
Ocean Freight - FCL is already classified as a freight service.
If Hai Long Logistics’ company currency is VND, activate USD as a second currency first (standard Odoo multi-currency setting, not specific to Freight).
You have the carrier’s new price and the date it takes effect, from the carrier’s rate notice. Viindoo does not record the notice itself - only the rate card you enter from it.
Note
The Carrier Rates, Agent Rates and Customer Rates menus show for every freight user, but saving a new carrier or agent rate needs the Purchase: Administrator access group on top of a freight group - a freight Administrator does not get this automatically. Confirm the person entering rates has this access before they start, or the menu will open but Save will fail.
Create a carrier rate card¶
Go to and click New.
Fill in:
Carrier: ONE Line. Service: Ocean Freight - FCL (required - Transport Mode and Load Mode then display automatically and stay read-only).
POL: Hai Phong Port. POD: Port of Los Angeles. Container Type: Container 40FT HC (only shown while Load Mode is FCL).
Buy Price: 1,850. Currency: USD.
Valid From: 01 Jan 2026 to 31 Dec 2026 - one date-range field; its end date is the rate’s Valid To.
After you click Save, the rate card appears in the Carrier Rate Cards list, ready for the lane’s rate lookup to find automatically when a charge or booking is created for this route.
Warning
If this lane and container type already has another active rate, Viindoo does not warn you or block the save - it silently keeps only one result when both are looked up later. Always close the old rate’s Valid To to the day before the new one starts (see Known limitations).
Decide how specific a rate card should be¶
Option |
Use when |
What changes |
|---|---|---|
Set POL, POD and Container Type |
The price differs by lane and container type (the common case, like ONE Line Hai Phong Port to Port of Los Angeles for a 40FT HC) |
The lookup only matches this exact lane and container type before falling back to a broader rate |
Leave POL, POD or Container Type empty |
The carrier quoted one flat price across lanes or container types |
The rate becomes the widest fallback, used only when no more specific rate matches |
Enter POL, POD and Container Type only when the carrier’s approved rate is restricted to those values. Leave a dimension empty when the contracted price applies more broadly; otherwise a specific but unsupported value can prevent the right fallback rate from being used. Confirm the rate scope with Pricing before saving it.
Add vessel schedules to the rate card¶
In the Vessel Schedules tab of the rate card you just created, click to add a new line.
Fill in Vessel: ONE COMMITMENT, Voyage No.: 026W, POL/POD: Hai Phong Port/Port of Los Angeles, ETD/ETA: 05 Nov 2026 to 01 Dec 2026 (one date-range column).
Add a second line for ONE COMPETENCE, voyage 027W, 12 Nov 2026 - 09 Dec 2026, so Sales has two sailing schedules to compare when quoting (see Quote a full container load for sea export).
Note
The schedule’s own name is generated for you, in the form
ONE COMMITMENT (026W) | HPH -> USLAX | 05 Nov 2026 ... - it uses the port’s Port
Code (HPH), not the full UN/LOCODE (VNHPH).
Set up an agent rate for destination charges¶
Go to and click New. The form and fields are the same as a carrier rate; only the list of partners you can pick from is filtered by Is Forwarder Agent instead of Is Forwarder Carrier.
Fill in Carrier: Pacific Coast Forwarding Agency, Inc., Service: Delivery Order (D/O) Fee, POD: Port of Los Angeles, Buy Price: 150, Currency: USD.
Tip
The setup is correct when: the new rate cards appear under Carrier Rates and Agent Rates (filtered by the correct partner flag), and on a trial quotation for Nhat Long Footwear, the Select Sailing Schedule (FCL) wizard lists ONE Line at USD 1,850 for both the 026W and 027W sailing schedules.
Set the customer sell rate¶
opens the standard Sales Pricelist screen - Viindoo does not have a separate sell-side rate card the way it has one for buying.
Option |
Use when |
What changes |
|---|---|---|
Pricelist rule with base “Supplier Price” |
You want the sell price to follow the buy price of the exact lane used on the quotation |
The quotation wizard’s Apply Quote step honours this rule: it starts from the matching carrier rate and adds your markup, converted to the customer’s currency |
Pricelist rule with base “Fixed Price” |
The service always sells at one price regardless of lane |
Only applies to a charge line a user adds by hand outside the wizard - Apply Quote overwrites the line with the buy price instead of using this rule |
Choose the pricelist rule that follows the approved selling-price policy. The quotation wizard reads Supplier Price for this product and applies its configured markup, so confirm that the base and markup are authorized before using it for customer quotations. Do not create a markup rule just to make the wizard return a price; ask Sales/Pricing which rule applies.
Note
Unlike Carrier Rate and Agent Rate, a pricelist rule applies by product (and optionally by customer) - it does not distinguish by POL/POD the way a carrier rate does. If one freight product is sold on several lanes with different buy prices, a Fixed Price rule gives every lane the same sell price unless Sales edits the quotation line by hand (see Known limitations).
Classify an LCL/LTL rate by weight or volume¶
When the rate card’s Service has Load Mode LCL or LTL, Container Type is hidden and a read-only W/M Factor (kg/CBM) shows instead - 1,000 for sea, 333 for road, 167 for air, depending on the service’s Transport Mode.
Note
This factor is fixed by transport mode and cannot be edited on the form. If you agree a different weight/volume factor with a consolidator, record it outside Viindoo (for example in the rate card’s chatter) and apply it by hand when quoting LCL/LTL (see Known limitations).
See also
Charges and Profitability - see how a rate card’s price flows into a shipment’s charges and gross profit.
Known limitations¶
Step |
What Viindoo does today |
What you do instead |
|---|---|---|
Create a carrier rate card |
Nothing blocks two rate cards with overlapping validity for the same lane and container type; the lookup silently keeps only one result and does not say which |
Always close the old rate’s Valid To the day before a new rate starts; periodically review the list for overlaps |
Set the customer sell rate |
A Fixed Price pricelist rule does not distinguish by lane - every lane sells at the same price for one product unless a rule with base Supplier Price is used |
Use a Supplier Price rule when the sell price should follow the buy price of each lane; otherwise correct the price by hand on the quotation |
Classify an LCL/LTL rate |
The W/M Factor is fixed per transport mode; there is no field to enter a factor agreed with a specific consolidator |
Record the agreed factor outside Viindoo and apply it manually when quoting |
Create a carrier rate card |
When no rate matches the exact container type requested, the lookup can fall back to a rate with no container type set at all, without telling you it did so |
Always create a specific rate card for every container type actually used on the lane; do not rely on an empty Container Type as a safety net |
Check rates against carrier invoices |
No report or field compares the price on a rate card with the price on the carrier’s actual invoice |
Each month, Accounting exports the carrier rate cards and the vendor bills of that carrier and compares them outside Viindoo, then updates any rate card that has drifted |
Troubleshooting¶
A 40FT HC charge picks up no price, or the wrong one¶
Symptom: The buy price that a booking or charge picks up for a Container 40FT HC on this lane is 0, or it is the price of a rate card that has no Container Type.
Cause: No rate card for the lane has Container Type set to exactly Container 40FT HC. The lookup then falls back to a rate with no container type set, or returns nothing if none exists - without indicating which happened.
Fix: Open Carrier Rates and confirm a rate card exists with Container Type set to the exact type used on the shipment (here, Container 40FT HC) - do not leave it empty and expect the lookup to find the right price.
I cannot save a vessel schedule¶
Symptom: “ETA must be after ETD.” or “‘Valid To’ must be on or after ‘Valid From’.”
Cause: The vessel schedule’s arrival date is not after its departure date, or its validity range is reversed.
Fix: Correct the dates so ETA is after ETD, and Valid To is on or after Valid From, then save again.