Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Purchasing
  3. Purchase Landed Cost v 19.0
  4. Sales Conditions FAQ

Purchase Landed Cost

by Grevlin Global Corp. https://www.grevlin.com
Odoo

$ 149.28

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Inventory (stock)
• Invoicing (account)
• Purchase (purchase)
Lines of code 1786
Technical Name grev_od_purchase_landed_cost
LicenseOPL-1
Websitehttps://www.grevlin.com
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Inventory (stock)
• Invoicing (account)
• Purchase (purchase)
Lines of code 1786
Technical Name grev_od_purchase_landed_cost
LicenseOPL-1
Websitehttps://www.grevlin.com
  • Description
  • Documentation
  • License

Purchase Landed Cost

Scenario simulation, DDP cost-per-unit, multi-currency costing, and variance analysis for true landed cost visibility

✓ Odoo 19.0 ✓ Community/Enterprise Edition ✓ OPL-1 License

Purchase Landed Cost gives procurement, finance, and logistics teams a single platform to model, simulate, and reconcile the complete cost of every imported shipment. Build named cost scenarios per Purchase Order, auto-populate lines from Incoterm rules, compare trade routes, and arrive at a DDP cost-per-unit that reflects freight, customs duties, insurance, handling, and every other charge — in any currency. After shipment, reconcile actual costs against estimates, classify variance severity automatically, and surface cost-overrun alerts directly on the Purchase Order.

Key Benefits

📊

Scenario Simulation Engine

Create named cost scenarios per PO, auto-populate cost lines from Incoterm rules with one click, and compare multiple trade routes before committing to a sourcing decision.

🏷

DDP Cost Per Unit

Instantly see the Delivered Duty Paid (DDP) cost per unit — total landed cost divided by PO quantity — for objective supplier comparison and margin planning.

🌎

Multi-Currency Cost Lines

Record each cost component in its native currency (freight in USD, customs in local, insurance in EUR) with a configurable exchange rate per line. Totals auto-convert to company currency.

📈

Variance Analysis

Compare estimated vs actual costs per cost type, classify variance as within-budget, minor, or major, and receive automatic activity warnings on the PO when overruns exceed thresholds.

How It Works

1

Configure

Define reusable cost component templates (freight, customs, insurance, handling) with calculation methods — fixed, percentage of value, per unit, per kg, or per m³. Map components to Incoterms so the right costs auto-populate per trade route.

2

Simulate

Create a named scenario against a Purchase Order, select Incoterm and countries, and click Populate from Incoterm. The engine fills in all buyer-responsible cost lines. Adjust, compare scenarios, and promote the best one to an active plan.

3

Reconcile

After shipment, enter actual cost lines on the linked landed cost record. Click Compute Variance to get a per-cost-type breakdown. Major overruns automatically create warning activities on the Purchase Order for immediate buyer action.

Core Features

📃 Incoterm Auto-Population

Pre-loaded rules for FOB, CIF, DDP, CFR, and more. Select an Incoterm and the engine instantly adds all buyer-responsible cost components with their default calculation methods.

💲 Five Allocation Methods

Fixed amount, percentage of goods value, per unit, per kg, or per m³. Calculated amounts recompute automatically on every input change — no manual recalculation required.

🕐 Estimation Lifecycle

Pre- and post-shipment states: None → Estimated → Confirmed → Reconciled. The OWL dashboard tracks the pipeline so nothing falls through the cracks.

🔔 Cost Overrun Alerts

Major variance automatically schedules a warning activity on the related Purchase Order. Configurable threshold via system parameter — no hard-coded values.

💻 OWL Dashboard

Estimation pipeline counts, variance health distribution, and 5 KPI tiles — all clickable to filter an embedded scenario kanban. Loads in under 2 seconds for up to 1,000 records.

🏢 Three-Tier Security

User (read-only), Manager (full CRUD), and Auditor (standalone read-only for finance teams). Multi-company record rules on all owned models.

Who Is This For?

👤

Procurement Managers

Run Incoterm-based scenario simulations before committing to a sourcing decision. Compare trade routes by true DDP unit cost.

💰

Finance Controllers

Reconcile actuals against estimates, review per-cost-type variance breakdowns, and access a read-only Auditor group for compliance reviews.

🚚

Supply Chain Managers

Configure country-specific cost component templates, manage Incoterm rule libraries, and track estimation pipeline health on the OWL dashboard.

Changelog

Version 2.0.0 — April 2026

  • OWL Dashboard — estimation pipeline counts, variance health, 5 KPI tiles, embedded scenario kanban
  • Scenario Simulation Engine — named scenarios per PO with Draft / Active / Archived states
  • Incoterm Auto-Population — pre-loaded rules for FOB (7 costs), CIF (4 costs), DDP (0 buyer costs)
  • DDP Cost Per Unit — total landed cost ÷ total PO quantity, stored and recomputed automatically
  • Multi-Currency Cost Lines — per-line currency and exchange rate, auto-converted to company currency
  • Variance Analysis — estimated vs actual by cost type, within-budget / minor / major classification
  • Cost Overrun Alerts — automatic PO activity on major variance; configurable threshold via ir.config_parameter
  • Pre/post-shipment Lifecycle — None → Estimated → Confirmed → Reconciled estimation states
  • Landed Cost Auditor security group for standalone finance read-only access

Version 1.0.0 — January 2026

  • Initial release for Odoo 19.0
  • Cost component templates with calculation methods (fixed, %, per unit, per kg, per m³)
  • Landed cost calculation per PO with allocation to stock.landed.cost
  • Multi-currency support with configurable exchange rates
  • Three-tier security: User / Manager / Auditor
  • Multi-company record rules on all owned models

Need Help?

For support, contact us at odoo@grevlin.com

Follow us on X: @GrevlinGlobal

✓ 30 Days Free Support

Grevlin Global Corp

Professional Odoo Solutions & Procurement Optimization

Purchase Landed Cost

Complete landed cost management for Odoo 19.0: scenario simulation with Incoterm auto-population, multi-currency cost lines, DDP cost-per-unit, variance analysis, and an OWL dashboard for pipeline visibility.

Note

This module extends Odoo's native stock_landed_costs module. It adds procurement-facing workflows (scenarios, simulation, variance) without replacing any standard landed cost accounting logic.

Overview

The Purchase Landed Cost module gives procurement, finance, and logistics teams a single platform to model, simulate, and reconcile the complete cost of every imported shipment. Key capabilities:

  1. Cost Component Templates — reusable components (freight, customs duties, import tax, insurance, handling, inspection, documentation) with five calculation methods.
  2. Incoterm Rules — map each Incoterm to its buyer-responsible cost components; scenarios auto-populate in one click.
  3. Scenario Simulation — named pre-shipment scenarios per Purchase Order with Draft / Active / Archived states and multi-currency cost lines.
  4. DDP Cost Per Unit — total landed cost divided by total PO quantity, recomputed automatically on every input change.
  5. Variance Analysis — compare estimated vs actual per cost type with within-budget / minor / major classification.
  6. Cost Overrun Alerts — major variance schedules a warning activity on the related Purchase Order automatically.
  7. OWL Dashboard — estimation pipeline counts, variance distribution, 5 KPI tiles, and an embedded scenario kanban.

Configuration

Installation

  1. Install the module. Ensure these Odoo standard modules are present:
    • purchase, product, stock, account, mail
    • stock_landed_costs (Odoo native landed costs engine)
  2. Assign users to the appropriate security group under :menuselection:`Settings --> Users & Companies --> Users`.

Security Groups

Group Permissions
:guilabel:`Landed Cost User` Read-only access to all module records.
:guilabel:`Landed Cost Manager` Full CRUD on all records; implies User.
:guilabel:`Landed Cost Auditor` Standalone read-only for finance audit teams (does not imply User).

Configuring Cost Components

Go to :menuselection:`Purchase Landed Cost --> Configuration --> Cost Components` and click :guilabel:`New`.

Field Description
:guilabel:`Name` Descriptive label (e.g. Ocean Freight — FCL 20ft).
:guilabel:`Cost Type` Category: Freight, Customs Duties, Import Tax, Insurance, Handling, Inspection, Documentation, Other.
:guilabel:`Calculation Method` How the amount is computed. See table below.
:guilabel:`Origin Country` Optional filter. Component only appears for this country of origin.
:guilabel:`Destination Country` Optional filter. Component only appears for this destination country.

Calculation methods:

Method Formula
Fixed Amount User-entered absolute cost per shipment.
% of Goods Value rate_value / 100 × total_goods_cost
Per Unit rate_value × total_PO_quantity
Per Weight (kg) rate_value × total_product_weight
Per Volume (m³) rate_value × total_product_volume

Tip

Use Per Weight for ocean freight (LCL) and % of Goods Value for ad-valorem customs duty and insurance premiums.

Configuring Incoterm Rules

Go to :menuselection:`Purchase Landed Cost --> Configuration --> Incoterm Rules`. Pre-loaded rules ship with the module:

  • FOB — 7 buyer-responsible costs (main carriage, customs import, taxes, insurance, destination handling, inspection, documentation).
  • CIF — 4 buyer-responsible costs (customs import, import taxes, destination handling, documentation).
  • DDP — 0 buyer costs (all costs borne by seller).

Add custom rules by clicking :guilabel:`New`, selecting an Incoterm, and linking it to the cost components that become the buyer's responsibility under that term.

Usage

Creating a Cost Scenario

  1. Open a confirmed or draft Purchase Order.
  2. Go to :menuselection:`Purchase Landed Cost --> Cost Scenarios --> New`.
  3. Fill in the header:
    • :guilabel:`Purchase Order` — the linked PO.
    • :guilabel:`Incoterm` — trade term for this shipment.
    • :guilabel:`Origin Country` and :guilabel:`Destination Country`.
  4. Click :guilabel:`Populate from Incoterm`. The system reads the Incoterm rule and creates one scenario line per buyer-responsible component, pre-filling the calculation method from the component template.
  5. Adjust individual lines as needed:
    • Override :guilabel:`Rate / Value`.
    • Set :guilabel:`Cost Currency` and :guilabel:`Exchange Rate` for multi-currency lines.
    • The :guilabel:`Calculated Amount` column updates automatically.
  6. Review summary totals at the bottom of the form:
    • :guilabel:`Total Goods Cost` — PO untaxed amount.
    • :guilabel:`Total Additional Cost` — sum of all calculated amounts in company currency.
    • :guilabel:`Total Landed Cost` — goods + additional.
    • :guilabel:`Overhead %` — additional as % of goods value.
    • :guilabel:`Total Quantity` — sum of PO line quantities.
    • :guilabel:`DDP Cost Per Unit` — total landed cost ÷ total quantity.
  7. Click :guilabel:`Set Active` to promote the scenario to Active state.

Creating the Linked Landed Cost

Once the active scenario is confirmed, click :guilabel:`Create Landed Cost`. This generates a stock.landed.cost record linked to the PO and scenario, pre-populated with the scenario's cost lines. The standard Odoo landed cost workflow (validate, apply to stock valuation) then proceeds normally.

Tracking the Estimation Lifecycle

The landed cost record carries an :guilabel:`Estimation State` field:

State Meaning
None Not yet estimated. Landed cost created but no scenario linked.
Estimated Scenario has been applied. Awaiting actual cost data.
Confirmed Actuals entered. Ready for variance computation.
Reconciled Variance computed. Record is closed for further edits.

Use the action buttons on the landed cost form to advance the state: :guilabel:`Mark as Estimated`, :guilabel:`Confirm Estimation`, :guilabel:`Compute Variance`.

Variance Analysis

  1. After entering actual cost lines on the landed cost record, set the state to Confirmed.
  2. Click :guilabel:`Compute Variance`.
  3. The system groups scenario lines and actual lines by :guilabel:`Cost Type` and creates a :guilabel:`Variance` record with one line per cost type.
  4. Each variance line is classified automatically:
    • Within Budget — absolute variance ≤ threshold (default 5%).
    • Minor Variance — between threshold and 3× threshold.
    • Major Variance — above 3× threshold.
  5. If Major Variance is detected, a warning activity is scheduled on the linked Purchase Order.

Important

The variance threshold is configurable via :menuselection:`Settings --> Technical --> Parameters --> System Parameters`. Key: grev.lc.variance.threshold. Default: 5 (percent).

Using the Dashboard

Navigate to :menuselection:`Purchase Landed Cost --> Dashboard`.

  • Left panel — estimation pipeline counts by state. Click any count button to filter the embedded scenario kanban.
  • Right panel — variance distribution (within-budget, minor, major). Click to navigate to the variance list.
  • KPI strip — total landed cost this month, average overhead %, pending reconciliation count, active scenarios count, major variance count.
  • Refresh button reloads all data without a full page reload.

Technical Details

Data Model

Model Description
stock.landed.cost (extended) Adds purchase_order_id, scenario_id, estimation_state, total_purchase_price, total_quantity, cost_per_unit.
stock.landed.cost.lines (extended) Adds cost_type, cost_currency_id, exchange_rate, price_unit_company_currency.
grev.purchase.landed.cost.component Reusable cost component templates with type, method, country filters.
grev.purchase.landed.cost.incoterm.rule Incoterm → buyer-responsible components mapping.
grev.purchase.landed.cost.scenario Pre-shipment cost scenario (per PO, per Incoterm, per route).
grev.purchase.landed.cost.scenario.line One line per cost component in a scenario; stores multi-currency inputs and calculated_amount.
grev.purchase.landed.cost.variance Estimated vs actual variance record, linked to stock.landed.cost.
grev.purchase.landed.cost.variance.line Per-cost-type variance breakdown with classification state.

Key Computed Fields

All totals on scenarios and landed costs are stored computed fields (store=True). They recompute via @api.depends chains covering:

  • Scenario: PO line quantities/amounts, scenario line inputs (rate, method, currency, exchange rate).
  • Landed cost: cost line amounts, PO amount_untaxed.

This means the UI shows up-to-date values without requiring a manual recalculation step.

Integration Points

Upstream (data sources):

  • purchase.order — goods cost and quantity for scenario totals.
  • grev_od_purchase_esourcing — estimated bid prices (optional).
  • grev_od_purchase_comparator — selected offer prices (optional).

Downstream (consumers):

  • stock.landed.cost — actual cost execution and stock valuation.
  • grev_od_spend_analytics — total cost reporting and KPIs.
  • grev_od_purchase_ai_assistant — predictive landed cost insights (phase 2, optional).

Note

Cross-module lookups use try/except guards. The module degrades gracefully when optional suite modules are not installed.

Out of Scope

  • No accounting postings — calculation and preparation only; journal entries are produced by the native stock_landed_costs module.
  • No logistics execution — belongs to grev_purchase_trade_logistics.
  • No quality inspection — belongs to grev_od_purchase_quality_check.

See Also

  • :doc:`../grev_od_purchase_comparator/doc/index` — Supplier Price Comparator
  • :doc:`../grev_od_purchase_trade_logistics/doc/index` — Trade Logistics
  • :doc:`../grev_od_purchase_budget_control/doc/index` — Budget Control
  • :doc:`../grev_od_spend_analytics/doc/index` — Spend Analytics
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with