{"id":4190,"date":"2026-06-08T11:53:34","date_gmt":"2026-06-08T01:53:34","guid":{"rendered":"https:\/\/www.hashmicro.com\/au\/blog\/?p=4190"},"modified":"2026-06-09T11:53:43","modified_gmt":"2026-06-09T01:53:43","slug":"landed-cost","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/","title":{"rendered":"What Is Landed Cost and How Do You Calculate It?"},"content":{"rendered":"<p>Landed cost is the true cost of importing goods into Australia. It captures every expense from the factory floor to your receiving dock, not just the price on the supplier&#8217;s invoice.<\/p>\n<p>Australian importers face a layered cost environment. Freight volatility, GST obligations, customs duties, and free trade agreement rules all shape what a product truly costs once it reaches your facility.<\/p>\n<p>This article covers how landed cost is calculated, what components it includes, how Incoterms and trade agreements affect it, and the best practices that keep import costs accurate and controlled.<\/p>\n<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#what-is-landed-cost\">Landed cost is<\/a> the total expense of importing goods into Australia, covering product cost, freight, duties, insurance, and every ancillary charge to the receiving dock.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#key-components-of-landed-cost\">Key components<\/a> include supplier pricing, international freight, import duties, insurance, and ancillary charges, each billed by a different party at a different stage.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#how-to-calculate-landed-cost\">Calculating landed cost<\/a> involves summing product cost, freight, duties, insurance, and fees, then allocating the total to individual SKUs by value, volume, or weight.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#how-australias-free-trade-agreements-impact-landed-cost\">Free trade agreements<\/a> such as ChAFTA, AUSFTA, and CPTPP reduce the duty component of landed cost for qualifying goods, provided Rules of Origin and documentation requirements are met.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\n<!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div> -->\r\n\r\n<!-- <div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Table of Content<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\r\n<!-- <script>\r\n\/\/ \tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/ \t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\/\/ \t\tdropdownFixedTop.addEventListener('click', function() {\r\n\/\/ \t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\/\/ \t\t\tdropdownContent.classList.toggle('show');\r\n\/\/ \t\t});\r\n\r\n\/\/ \t\twindow.addEventListener('click', function(event) {\r\n\/\/ \t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\/\/ \t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\/\/ \t\t\t\tlistTocTop.classList.remove('show');\r\n\/\/ \t\t\t}\r\n\/\/ \t\t});\r\n\/\/ \t});\r\n\t\r\n\/\/ \tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\/\/ \tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n\/\/     var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n\/\/     window.addEventListener('scroll', function() {\r\n\/\/         if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(false);\r\n\/\/             triggered = true;\r\n\/\/         } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(true);\r\n\/\/             triggered = false;\r\n\/\/         }\r\n\/\/     });\r\n\r\n\/\/     function isCompletelyScrolledPast(element) {\r\n\/\/         var elementTop = element.getBoundingClientRect().top;\r\n\/\/         var elementBottom = element.getBoundingClientRect().bottom;\r\n\/\/         return elementTop < 0 && elementBottom < 0;\r\n\/\/     }\r\n\r\n\/\/     function showSectionDropdownFixedTop(show) {\r\n\/\/ \t\tif (show) {\r\n\/\/ \t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\/\/ \t\t}\r\n\/\/     }\r\n<\/script> -->\r\n<!-- <script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!--  <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\r\n        Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\t\r\n        Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n\n\r\n    <div class=\"adjustable-banner-wrap\">\r\n        <a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system?medium=moneysite-banner\" target=\"_blank\">\r\n            <img decoding=\"async\" loading=\"lazy\"\r\n                 src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/procurement_desktop_1-scaled.webp\"\r\n                 data-desktop-src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/procurement_desktop_1-scaled.webp\"\r\n                 data-mobile-src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/procurement_mobile_1.webp\"\r\n                 alt=\"ProcurementGeneral\"\r\n                 class=\"responsive-image-banner\">\r\n\r\n            \r\n            <div class=\"adjustable-banner-overlay\" style=\"width: 53%\">\r\n                <p class=\"adjustable-banner-text\"><strong>Need an expert<\/strong> to find the <strong>right procurement system<\/strong> for your team?<\/p>\r\n                <div class=\"adjustable-banner-btn\">Schedule a Consultation<\/div>\r\n            <\/div>\r\n\r\n        <\/a>\r\n    <\/div>\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>What is Landed Cost?<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-4533\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72.webp\" alt=\"what-is-landed-cost?\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72.webp 800w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72-300x150.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72-768x384.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72-150x75.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-72-696x348.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Landed cost is the total expense of bringing a product from a supplier&#8217;s facility to your receiving dock, covering every charge incurred between the factory floor and your inventory.<\/p>\n<p>The term extends well beyond the supplier&#8217;s quoted price. It covers international and domestic freight, customs duties, taxes, insurance, brokerage fees, and port handling charges.<\/p>\n<p>Without an <a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system\">efficient purchasing management system<\/a>, purchasing decisions based on the supplier price alone consistently produce inaccurate margin calculations and mispriced goods.<\/p>\n<p>The gap between the invoice and the true unit cost can range from 5 to 20 percent or more.<\/p>\n<p>Inventory valuation under Australian accounting standards requires all acquisition costs to be included in the recorded value of stock. This makes landed cost a compliance requirement as much as a commercial practice.<\/p>\n<style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            \u201cMost businesses price on the supplier invoice and wonder why margins are wrong at month-end. Landed cost is the only number that tells you what a product truly costs.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Luke Sheridan, Head of Finance Dept.<\/em>\r\n    <\/p>\r\n<\/div>\n<h2><strong>Why Landed Cost Matters for Your Business<\/strong><\/h2>\n<p>Landed cost is the foundational metric behind pricing, sourcing, and financial reporting. Every decision that depends on the true cost of goods requires an accurate landed cost figure.<\/p>\n<p>Retail prices set without accounting for duties, freight, and handling fees appear profitable on paper but frequently produce losses at settlement.<\/p>\n<p>Supplier selection also depends on landed cost. A higher unit price from a nearby source may produce a lower total cost than a cheaper offshore supplier, once transport, duties, and lead times are included.<\/p>\n<p>Finance teams use landed cost to value inventory on the balance sheet. Understating this figure distorts reported assets and reduces the reliability of financial statements.<\/p>\n<p>For businesses with thin margins, such as consumer goods or wholesale distribution, even a small error in landed cost estimation can shift a product line from profit to loss.<\/p>\n<h2><strong>Key Components of Landed Cost<\/strong><\/h2>\n<p>Landed cost is built from several distinct cost categories. Each is billed by a different party at a different stage of the shipment journey, making thorough data collection essential.<\/p>\n<h3>1. Product cost and supplier pricing<\/h3>\n<p>The product cost is the price negotiated with the supplier for the goods. It is the starting point of the landed cost calculation, but it rarely reflects the full financial impact of acquiring that stock.<\/p>\n<p>Volume discounts reduce the per-unit cost but increase capital outlay and holding costs. Businesses must weigh whether the savings justify the inventory investment required to unlock tiered pricing.<\/p>\n<p>Tooling, mould amortisation, and origin packaging charges may be added to the supplier&#8217;s quoted price. These must be captured within the product cost component of the calculation.<\/p>\n<p>The applicable Incoterm affects how product cost is interpreted. An Ex Works price appears lower than a Free On Board price on the invoice, but the buyer absorbs significantly more costs at origin under EXW.<\/p>\n<h3>2. International freight and shipping fees<\/h3>\n<p>Freight is typically the second-largest landed cost component and the most volatile. Rates fluctuate based on carrier capacity, fuel prices, trade lane demand, and seasonal shipping patterns.<\/p>\n<p>Ocean freight via Full Container Load (FCL) or Less than Container Load (LCL) is the primary mode for most Australian importers.<\/p>\n<p>Air freight offers speed but costs significantly more per kilogram and is reserved for high-value or time-critical consignments.<\/p>\n<p>Beyond the base rate, carriers apply surcharges including the Bunker Adjustment Factor (BAF), Peak Season Surcharge (PSS), and Currency Adjustment Factor (CAF).<\/p>\n<p>These additions can increase base rates by 20 to 40 percent in volatile periods and must be factored into landed cost estimates at the time of booking.<\/p>\n<p>Origin inland freight and destination delivery from the Australian port to the warehouse must also be included. These domestic legs are frequently missed in preliminary cost estimates.<\/p>\n<h3>3. Import duties, tariffs, and GST obligations<\/h3>\n<p>Import duties are determined by the Harmonized System (HS) code assigned to the product. Each code carries a specific duty rate, and even minor misclassification produces substantially different financial outcomes.<\/p>\n<p>Standard duty rates may be reduced under a free trade agreement if goods meet the relevant Rules of Origin. The country of manufacture, not the country of export, determines eligibility in most cases.<\/p>\n<p>GST of 10 percent applies to most imported goods in Australia. It is calculated on the Value of Taxable Importation (VoTI), which includes the customs value, duty, freight, and insurance.<\/p>\n<h3>4. Insurance and ancillary charges<\/h3>\n<p>Cargo insurance protects against financial loss from damage, theft, or total loss during transit. Premiums are typically calculated as a percentage of the commercial invoice value plus freight costs.<\/p>\n<p>Ancillary charges include Terminal Handling Charges (THC), customs brokerage fees, port storage, quarantine inspection fees, and documentation costs such as the Bill of Lading and Certificate of Origin.<\/p>\n<p>Fumigation costs apply to timber, certain packaging materials, and goods subject to biosecurity restrictions. These fees vary by product type and inspection outcome at the Australian border.<\/p>\n<h2><strong>How to Calculate Landed Cost<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-4530\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-scaled.webp\" alt=\"how-to-calculate-landed-cost\" width=\"2560\" height=\"1429\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-scaled.webp 2560w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-300x167.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-1024x572.webp 1024w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-768x429.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-1536x857.webp 1536w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-2048x1143.webp 2048w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-753x420.webp 753w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-150x84.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-696x388.webp 696w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-1068x596.webp 1068w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/unnamed-41-1920x1072.webp 1920w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p>Calculating landed cost involves three steps: applying the standard formula to sum all cost components, allocating the shipment total to individual SKUs, and reconciling estimates against actual invoices once all charges are received.<\/p>\n<h3>1. The landed cost formula explained<\/h3>\n<p>The standard landed cost formula is: Total Landed Cost = Product Cost + Freight + Customs Duties and Taxes + Insurance + Ancillary Fees.<\/p>\n<p>Each category originates from a different party. Product invoices come from the supplier, freight bills from the forwarder, duty payments go to the ABF, and brokerage invoices arrive from the customs agent.<\/p>\n<p>Estimates should be built at the purchase order stage using <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-software\/\">tools for cost-efficient sourcing<\/a> to project rates for each component. A final reconciliation against actual invoices is completed once all charges are received.<\/p>\n<h3>2. How to calculate landed cost per unit<\/h3>\n<p>Total shipment cost must be broken down to the individual SKU level to support retail pricing and inventory management.<\/p>\n<p>When a container holds mixed products, shared costs must be allocated proportionally across each item using one of three methods.<\/p>\n<p>By value: duties and insurance are calculated as a percentage of the goods&#8217; value. Allocating based on the relative commercial value of each SKU reflects how these costs are applied by customs authorities.<\/p>\n<p>By volume (CBM): ocean freight is priced by the space a product occupies. Bulky, lightweight products absorb a proportionally larger share of freight costs based on cubic metres consumed.<\/p>\n<p>By weight: air freight and inland trucking are billed by gross weight. Distributing costs based on each product&#8217;s weight produces the most accurate result for weight-sensitive shipments.<\/p>\n<p>Most importers apply a hybrid approach, allocating duties by value, ocean freight by volume, and inland transport by weight. This produces the most accurate per-unit outcome for mixed shipments.<\/p>\n<h3>3. A worked example for Australian importers<\/h3>\n<p>An Australian retailer imports 1,000 electronic tablets from Shenzhen to Sydney. The Free On Board (FOB) price is $100 per unit, giving a total product cost of $100,000.<\/p>\n<p>Additional costs for the shipment: ocean freight (LCL) $2,500; marine insurance $300; import duty at 5 percent of FOB value $5,000; local charges including brokerage and delivery $1,200.<\/p>\n<p>The VoTI for GST purposes is $100,000 + $5,000 + $2,500 + $300 = $107,800. GST at 10 percent = $10,780, claimable as an input tax credit for GST-registered businesses.<\/p>\n<p>Total landed cost (excluding GST) = $100,000 + $2,500 + $300 + $5,000 + $1,200 = $109,000.<\/p>\n<p>Landed cost per unit = $109,000 divided by 1,000 = $109.00 per tablet. The quoted price was $100, but the true unit cost is $109, a 9 percent increase that must be reflected in retail pricing.<\/p>\n<h2><strong>Landed Cost vs. FOB: What Australian Importers Should Know<\/strong><\/h2>\n<p>Incoterms define where risk and cost responsibility transfer from seller to buyer. The term selected directly shapes how landed cost is structured and which expenses the buyer must arrange.<\/p>\n<p>A low invoice value under a seller-favourable Incoterm does not mean the total acquisition cost is low. Understanding this difference is critical for accurate landed cost projection.<\/p>\n<p>The table below summarizes the difference between landed cost and FOB.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-size: 15px;\">\n<thead>\n<tr>\n<th style=\"background-color: #990000; color: #ffffff; padding: 8px; text-align: left;\">Cost component<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 8px; text-align: left;\">Included in FOB price?<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 8px; text-align: left;\">Included in landed cost?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Supplier invoice value<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr style=\"background-color: #f9fafb;\">\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Origin inland freight<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes (supplier pays)<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Export clearance<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes (supplier pays)<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr style=\"background-color: #f9fafb;\">\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">International freight<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No \u2014 buyer arranges<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Marine insurance<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No \u2014 buyer arranges<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr style=\"background-color: #f9fafb;\">\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Import duties and tariffs<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">GST (calculated on VoTI)<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr style=\"background-color: #f9fafb;\">\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Customs brokerage fees<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Port handling charges<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<tr style=\"background-color: #f9fafb;\">\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">Domestic delivery to the warehouse<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2717 No<\/td>\n<td style=\"padding: 8px; border: 1px solid #e5e7eb;\">\u2713 Yes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u00a01. EXW and its impact on total cost<\/h3>\n<p>Under Ex Works (EXW), the supplier&#8217;s responsibility ends at their factory or warehouse. The buyer arranges and pays for all transport from that point, including collection, export clearance, and international freight.<\/p>\n<p>EXW prices appear very low on the commercial invoice because the supplier transfers almost all logistical costs to the buyer. The gap between the EXW price and the final landed cost is the largest of any Incoterm.<\/p>\n<p>Importers without established freight networks in the country of origin face significant complexity under EXW.<\/p>\n<p>Managing origin-side logistics remotely requires reliable local agents and adds operational burden to the procurement process.<\/p>\n<h3>2. FOB vs CIF for Australian importers<\/h3>\n<p>Under Free On Board (FOB), the supplier covers inland transport to the origin port and export clearance. Cost and risk transfer to the buyer once goods are loaded onto the vessel.<\/p>\n<p>FOB gives the importer direct control over international freight selection. By managing their own forwarder relationship, businesses can negotiate competitive rates and maintain full visibility into shipping costs.<\/p>\n<p>This level of carrier control is a core element of <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-management-system\/\">procurement process optimisation<\/a> for businesses that import regularly from multiple origins.<\/p>\n<p>Under Cost, Insurance, and Freight (CIF), the supplier arranges and pays for international freight and insurance. Risk transfers at the destination port.<\/p>\n<p>CIF reduces cost transparency because suppliers often embed margins into the freight rate they pass on to buyers. Australian importers using CIF frequently pay above-market freight rates as a result.<\/p>\n<h3>3. When DDP simplifies your cost calculation<\/h3>\n<p>Under Delivered Duty Paid (DDP), the supplier takes full responsibility for all costs, including duties, taxes, and final delivery to the buyer&#8217;s premises.<\/p>\n<p>The buyer pays one price and receives goods cleared and delivered without additional charges. DDP simplifies the calculation because the landed cost equals the supplier&#8217;s quoted price.<\/p>\n<p>However, DDP removes the buyer&#8217;s ability to control logistics or verify individual cost components.<\/p>\n<p>Suppliers embed their margins into the total DDP price, making it difficult to assess whether the overall cost is competitive or reasonable.<\/p>\n<h2><strong>How Australia&#8217;s Free Trade Agreements Impact Landed Cost<\/strong><\/h2>\n<p>Australia has negotiated <a href=\"https:\/\/ftaportal.dfat.gov.au\" target=\"_blank\" rel=\"noopener\">free trade agreements<\/a> with its major trading partners. These agreements reduce or eliminate the duty component of landed cost for qualifying goods.<\/p>\n<p>FTAs do not apply automatically. The importer must hold valid proof of origin documentation, and goods must satisfy the Rules of Origin criteria specified in each agreement.<\/p>\n<p>According to the\u00a0<a href=\"https:\/\/www.abs.gov.au\/statistics\/economy\/international-trade\" target=\"_blank\" rel=\"noopener\">Australian Bureau of Statistics<\/a>, Australia&#8217;s merchandise trade with FTA partner countries accounts for more than 70 percent of total goods trade, making preferential duty access a significant cost lever.<\/p>\n<h3>1. ChAFTA and importing from China<\/h3>\n<p>The China-Australia Free Trade Agreement (ChAFTA) entered into force in December 2015 and has progressively eliminated tariffs on most goods imported from China.<\/p>\n<p>Most product categories now attract zero duty under ChAFTA. Eligibility requires a valid Certificate of Origin issued by a recognised Chinese authority at the time of export.<\/p>\n<p>For businesses sourcing heavily from China, validating ChAFTA eligibility at the HS code level before assuming a zero rate applies is essential. Not all product classifications qualify.<\/p>\n<h3>2. AUSFTA, CPTPP, and other key agreements<\/h3>\n<p>The Australia-United States Free Trade Agreement (AUSFTA) has eliminated duties on most goods from the United States. Specific staging provisions apply to certain agricultural and automotive products.<\/p>\n<p>The CPTPP covers eleven member countries, including Japan, Canada, Vietnam, and Mexico. It provides staged tariff reductions across thousands of product categories, with most now at zero for qualifying goods.<\/p>\n<p>Australia also has agreements with South Korea (KAFTA), Singapore (SAFTA), ASEAN, and New Zealand (AANZFTA), and the United Kingdom (A-UKFTA). Each carries its own Rules of Origin requirements.<\/p>\n<h3>3. Rules of Origin and documentation requirements<\/h3>\n<p>Rules of Origin define the criteria a product must meet to qualify as originating from a partner country. The most common tests are wholly obtained, substantial transformation, and regional value content.<\/p>\n<p>Meeting the criteria is not sufficient. Importers must hold a valid Certificate of Origin or Declaration of Origin before claiming a preferential rate at the border.<\/p>\n<p>Claiming an FTA rate without valid documentation exposes the importer to retrospective duty assessments. All proof-of-origin records must be retained for five years under Australian customs law.<\/p>\n<h2><strong>GST and Australian Border Force Compliance For Importers<\/strong><\/h2>\n<p>GST and customs compliance are inseparable components of landed cost management. Errors in tariff classification or GST calculation create financial exposure that surfaces only at audit.<\/p>\n<h3>1. How GST is calculated on imports<\/h3>\n<p>GST on imports is 10 percent of the Value of Taxable Importation (VoTI). The VoTI includes the customs value of the goods, applicable duty, and the cost of international freight and insurance.<\/p>\n<p>For GST-registered businesses, import GST is claimable as a full input tax credit in the BAS period in which the goods are entered for home consumption. No net GST cost applies for registered importers.<\/p>\n<p>Goods below the $1,000 low-value threshold are subject to a separate framework. GST is collected by the overseas seller or platform at the point of sale, and standard Import Declaration requirements do not apply.<\/p>\n<h3>2. Australian Border Force requirements<\/h3>\n<p>The ABF administers customs laws and assesses duties and GST at the Australian border. All commercial imports require an Import Declaration lodged via the Integrated Cargo System (ICS).<\/p>\n<p>The ABF may audit importer records and recover underpaid duties for up to four years after entry. Voluntary disclosure before an audit generally results in reduced penalties and interest charges.<\/p>\n<p>Importers must retain all customs documentation, including commercial invoices, Bills of Lading, and import entries, for a minimum of five years to satisfy ABF recordkeeping obligations.<\/p>\n<h3>3. Working with a licensed customs broker<\/h3>\n<p>A licensed customs broker lodges Import Declarations on the importer&#8217;s behalf and ensures correct tariff classification, duty assessment, and FTA preference claims.<\/p>\n<p>Brokers identify opportunities to apply preferential FTA rates and flag goods that may require import permits, quarantine inspection, or specific biosecurity clearance procedures.<\/p>\n<p>Choosing a broker with expertise in the relevant product category reduces classification errors, accelerates clearance, and produces more accurate pre-shipment landed cost estimates.<\/p>\n<h2><strong>Challenges and Common Mistakes in Landed Cost Management<\/strong><\/h2>\n<p>Accurate landed cost management requires integrating data from multiple parties across different stages of the supply chain. Several recurring patterns produce the most significant errors.<\/p>\n<h3>1. Underestimating freight surcharges<\/h3>\n<p>Base freight quotes represent only a fraction of what carriers actually invoice. Surcharges, including fuel adjustments, congestion fees, and peak season levies, routinely add 20 to 40 percent above the base rate.<\/p>\n<p>Landed cost estimates built on base rates alone consistently understate the freight component. The full surcharge profile must be applied at the quote stage, not absorbed at settlement.<\/p>\n<h3>2. Misclassifying HS codes<\/h3>\n<p>Tariff classification requires product-level precision. A single incorrect chapter or heading selection can produce a duty rate several percentage points above or below the correct applicable rate.<\/p>\n<p>Misclassification creates compliance exposure. The ABF may issue a post-entry amendment and recover underpaid duties, plus interest and penalties, for up to four years after the entry date.<\/p>\n<h3>3. Ignoring exchange rate volatility<\/h3>\n<p>Most import invoices are denominated in USD or another foreign currency. A significant AUD depreciation between the purchase order date and settlement date increases the AUD landed cost substantially.<\/p>\n<p>Forward exchange contracts can lock in rates and provide cost certainty for future shipments. Businesses without a currency risk policy absorb the full impact of exchange rate movements in their margins.<\/p>\n<h3>4. Using the supplier invoice price as a cost basis<\/h3>\n<p>Pricing or margin calculations based solely on the supplier&#8217;s invoice produce overstated gross margins. The gap is realised at settlement when freight, duties, and brokerage invoices are received.<\/p>\n<p>Businesses that operate this way frequently discover margin shortfalls at month-end when actuals are posted to inventory, and the supplier invoice price no longer reflects the true unit cost.<\/p>\n<h3>5. Failing to reconcile estimates against actuals<\/h3>\n<p>Landed cost estimates are projections built before departure. Actual invoices rarely match estimates exactly. Without a reconciliation process, variances accumulate and compound over time.<\/p>\n<p>Pricing, sourcing, and supplier decisions become increasingly unreliable when built on cost data that has never been validated against actual invoices and charges received post-shipment.<\/p>\n<h3>6. Not updating cost models for AUD fluctuations<\/h3>\n<p>Landed cost models relying on outdated exchange rate assumptions become progressively inaccurate. A model built six months ago on a different AUD\/USD rate can materially misstate current import costs.<\/p>\n<p>Reviewing cost model exchange rate assumptions at least quarterly ensures that pricing decisions are based on current import cost conditions and not rates from an earlier market environment.<\/p>\n<h2><strong>Landed Cost Across Industries in Australia<\/strong><\/h2>\n<p>The weight of each landed cost component varies by product type, supplier location, and industry. Understanding the cost profile relevant to your sector allows for more targeted cost management.<\/p>\n<h3>1. Retail and consumer goods<\/h3>\n<p>Retailers importing finished goods face high freight-to-product-cost ratios on bulky, low-value items. A product with a $10 supplier price may attract $4 to $6 in freight and handling costs alone.<\/p>\n<p>Duty rates for consumer goods vary significantly by category. Clothing and footwear carry higher tariff rates than electronics, making FTA preference claims particularly valuable for fashion importers.<\/p>\n<h3>2. Manufacturing and industrial equipment<\/h3>\n<p>Capital equipment and industrial machinery typically attract low or zero duty rates in Australia. Freight is the primary landed cost driver given the weight and dimensions of most equipment.<\/p>\n<p>Accurate <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/vendor-invoice\/\">supplier invoice tracking<\/a> helps these businesses reconcile freight and handling actuals against landed cost estimates at the SKU level.<\/p>\n<p>Spare parts and sub-components must be classified individually under their own HS codes. Classifying a component as part of a finished machine, rather than in its own heading, can produce incorrect duty outcomes.<\/p>\n<h3>3. Food, beverage, and pharmaceutical imports<\/h3>\n<p>Biosecurity requirements add a significant cost layer to food and pharmaceutical imports. Inspection fees, fumigation, and quarantine holding charges can represent a material share of total landed cost.<\/p>\n<p>Pharmaceutical goods may require TGA registration and import permits before border clearance. Permit processing timelines must be included in lead time and cash flow planning to avoid demurrage charges.<\/p>\n<h2><strong>Best practices for Landed Cost Management<\/strong><\/h2>\n<p>Consistent landed cost management requires process discipline, accurate data capture, and the right tools. These three practices address the most common failure points across Australian importing businesses.<\/p>\n<h3>1. Build landed cost estimates at the purchase order stage<\/h3>\n<p>Sourcing and pricing decisions made before a PO is raised require a landed cost estimate to be reliable. A supplier price without freight, duty, and brokerage projections is an incomplete cost basis.<\/p>\n<p>An estimated landed cost sheet, including freight quotes, duty rates at the applicable HS code, and broker fee estimates, should be attached to every purchase order before it is approved.<\/p>\n<h3>2. Maintain a centralised landed cost register<\/h3>\n<p>A register tracking actual landed costs by shipment, supplier, and SKU allows the business to identify cost trends, validate pricing assumptions, and improve the accuracy of future estimates.<\/p>\n<p>The same register supports inventory valuation adjustments at period end and provides the documentation base required for financial reporting and potential ABF audit requests.<\/p>\n<h3>3. Audit carriers and use software to automate cost tracking<\/h3>\n<p>Carrier rates and routing options change over time. A regular freight market review, at a minimum once per year, ensures the business is not overpaying on established trade lanes.<\/p>\n<p>Use <a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system\">professional procurement tools<\/a> that can automate cost capture and SKU-level allocation, and flag variances between estimated and actual charges without requiring manual spreadsheet consolidation.<\/p>\n<p>Automating landed cost capture eliminates the data entry errors that account for most variance between estimated and actual import costs in businesses managing costs through manual processes.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>Landed cost is the true measure of what imported goods cost an Australian business. Every component, from freight and duties to insurance and ancillary fees, must be captured to price accurately and report reliably.<\/p>\n<p>Businesses that track and reconcile landed cost consistently make better sourcing decisions, maintain accurate margins, and produce financial statements that reflect the true value of imported inventory.<\/p>\n<p>To learn further regarding this topic, <a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/?medium=free-product-tour\">consult our experts<\/a>\u00a0today and gain deep business insights to grow your business.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Procurement.webp\" alt=\"Procurement\"><\/a>\n<h2><strong>Frequently Asked Questions<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Is landed cost deductible for Australian tax purposes?<\/strong><\/summary>\n<p>Landed cost forms part of the cost of goods sold and is deductible as a business expense under Australian tax law. It is also included in the cost base of trading stock for inventory valuation under AASB 102.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the difference between landed cost and total cost of ownership?<\/strong><\/summary>\n<p>Landed cost covers all expenses to bring goods to the receiving dock. Total cost of ownership extends further to include warehousing, handling, warranty, returns, and disposal. Landed cost is one component within a broader total cost of ownership calculation.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What happens if an FTA preferential rate is claimed without valid documentation?<\/strong><\/summary>\n<p>The ABF may issue a post-entry amendment requiring payment of the full general rate duty plus interest from the date of entry. Voluntary disclosure before an audit typically reduces the penalty outcome compared to an ABF-initiated recovery action.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Are brokerage and delivery fees included in the VoTI for GST purposes?<\/strong><\/summary>\n<p>No. The VoTI includes only the customs value, international freight, and insurance. Post-arrival charges such as customs brokerage fees and domestic delivery costs are incurred after goods arrive in Australian waters and are excluded from the VoTI calculation.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Can landed cost figures be adjusted after goods are received into stock?<\/strong><\/summary>\n<p>Yes. When actual invoices differ from estimates used at goods receipt, a landed cost adjustment is posted to the inventory account. This reconciliation should occur once all freight, duty, and brokerage invoices are received, typically four to six weeks after arrival.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n  {\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Is landed cost deductible for Australian tax purposes?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Landed cost forms part of the cost of goods sold and is deductible as a business expense under Australian tax law. It is also included in the cost base of trading stock for inventory valuation under AASB 102.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the difference between landed cost and total cost of ownership?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Landed cost covers all expenses to bring goods to the receiving dock. Total cost of ownership extends further to include warehousing, handling, warranty, returns, and disposal. Landed cost is one component within a broader total cost of ownership calculation.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do rejected or returned shipments affect landed cost in Australia?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"When goods are rejected at the border or returned to a supplier, freight, duty, and brokerage costs already incurred form part of the financial loss. Duty paid on goods subsequently re-exported may be recoverable through an ABF duty drawback claim. Storage and re-export costs must also be captured in any loss assessment.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Are brokerage and delivery fees included in the VoTI for GST purposes?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"No. The VoTI includes only the customs value, international freight, and insurance. Post-arrival charges such as customs brokerage fees and domestic delivery costs are incurred after goods arrive in Australian waters and are excluded from the VoTI calculation.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can landed cost figures be adjusted after goods are received into stock?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. When actual invoices differ from estimates used at goods receipt, a landed cost adjustment is posted to the inventory account. This reconciliation should occur once all freight, duty, and brokerage invoices are received, typically four to six weeks after arrival.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Landed cost is the true cost of importing goods into Australia. It captures every expense from the factory floor to your receiving dock, not just the price on the supplier&#8217;s invoice. Australian importers face a layered cost environment. Freight volatility, GST obligations, customs duties, and free trade agreement rules all shape what a product truly [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":4529,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[65],"tags":[],"class_list":{"0":"post-4190","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>What Is Landed Cost and How Do You Calculate It? - HashMicro Australia<\/title>\n<meta name=\"description\" content=\"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is Landed Cost and How Do You Calculate It?\" \/>\n<meta property=\"og:description\" content=\"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Australia\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-08T01:53:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-09T01:53:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jasper Colefax\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jasper Colefax\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/\"},\"author\":{\"name\":\"Jasper Colefax\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\"},\"headline\":\"What Is Landed Cost and How Do You Calculate It?\",\"datePublished\":\"2026-06-08T01:53:34+00:00\",\"dateModified\":\"2026-06-09T01:53:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/\"},\"wordCount\":3837,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Untitled-design-71.webp\",\"articleSection\":[\"Procurement\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/\",\"name\":\"What Is Landed Cost and How Do You Calculate It? - HashMicro Australia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Untitled-design-71.webp\",\"datePublished\":\"2026-06-08T01:53:34+00:00\",\"dateModified\":\"2026-06-09T01:53:43+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\"},\"description\":\"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Untitled-design-71.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Untitled-design-71.webp\",\"width\":800,\"height\":400,\"caption\":\"landed-cost-hashmicro\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/landed-cost\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Is Landed Cost and How Do You Calculate It?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/\",\"name\":\"HashMicro Australia\",\"description\":\"Business Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\",\"name\":\"Jasper Colefax\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"caption\":\"Jasper Colefax\"},\"description\":\"I\u2019m a full-time business systems analyst and a part-time writer focused on procurement and supply chain management. In my day-to-day work, I help teams map purchasing workflows, clarify approval rules, and connect supplier and inventory data so decisions don\u2019t rely on guesswork.\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/author\\\/jasper-colefax\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What Is Landed Cost and How Do You Calculate It? - HashMicro Australia","description":"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/","og_locale":"en_US","og_type":"article","og_title":"What Is Landed Cost and How Do You Calculate It?","og_description":"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.","og_url":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/","og_site_name":"HashMicro Australia","article_published_time":"2026-06-08T01:53:34+00:00","article_modified_time":"2026-06-09T01:53:43+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp","type":"image\/webp"}],"author":"Jasper Colefax","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jasper Colefax","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/"},"author":{"name":"Jasper Colefax","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49"},"headline":"What Is Landed Cost and How Do You Calculate It?","datePublished":"2026-06-08T01:53:34+00:00","dateModified":"2026-06-09T01:53:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/"},"wordCount":3837,"commentCount":0,"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp","articleSection":["Procurement"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/","name":"What Is Landed Cost and How Do You Calculate It? - HashMicro Australia","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp","datePublished":"2026-06-08T01:53:34+00:00","dateModified":"2026-06-09T01:53:43+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49"},"description":"Learn what landed cost is, how to calculate it, and how Australian FTAs reduce your duty bill. Includes a worked example and best practices.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#primaryimage","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Untitled-design-71.webp","width":800,"height":400,"caption":"landed-cost-hashmicro"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/au\/blog\/landed-cost\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/au\/blog\/"},{"@type":"ListItem","position":2,"name":"What Is Landed Cost and How Do You Calculate It?"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website","url":"https:\/\/www.hashmicro.com\/au\/blog\/","name":"HashMicro Australia","description":"Business Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49","name":"Jasper Colefax","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","caption":"Jasper Colefax"},"description":"I\u2019m a full-time business systems analyst and a part-time writer focused on procurement and supply chain management. In my day-to-day work, I help teams map purchasing workflows, clarify approval rules, and connect supplier and inventory data so decisions don\u2019t rely on guesswork.","url":"https:\/\/www.hashmicro.com\/au\/blog\/author\/jasper-colefax\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/comments?post=4190"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4190\/revisions"}],"predecessor-version":[{"id":4924,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4190\/revisions\/4924"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media\/4529"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media?parent=4190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/categories?post=4190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/tags?post=4190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}