{"id":9880,"date":"2026-07-31T11:16:20","date_gmt":"2026-07-31T11:16:20","guid":{"rendered":"https:\/\/tradegoai.app\/?post_type=tools&#038;p=9880"},"modified":"2026-07-31T11:16:20","modified_gmt":"2026-07-31T11:16:20","slug":"comparateur-devis-fret","status":"publish","type":"tools","link":"https:\/\/tradegoai.app\/fr\/tools\/freight-quote-comparison-calculator\/","title":{"rendered":"Comparateur de devis de fret"},"content":{"rendered":"    <main id=\"tga-fqc-1\" class=\"tga-fqc-tool\" aria-labelledby=\"tga-fqc-1-title\">\n        <style>\n            #tga-fqc-1{--navy:#0f1831;--purple:#6528f7;--purple-dark:#501bd8;--lilac:#f2efff;--muted:#64748b;--line:#e2e8f0;--success:#047857;--danger:#b91c1c;width:100%;max-width:1180px;margin:44px auto 72px;padding:0 22px;color:var(--navy);font-family:inherit;box-sizing:border-box}\n            #tga-fqc-1 *,#tga-fqc-1 *::before,#tga-fqc-1 *::after{box-sizing:border-box}\n            #tga-fqc-1 .tga-fqc-hero{position:relative;overflow:hidden;padding:46px 48px;border-radius:22px;background:radial-gradient(circle at 88% 18%,rgba(101,40,247,.78),transparent 34%),linear-gradient(135deg,#081127,#131d42);color:#fff}\n            #tga-fqc-1 .tga-fqc-hero::after{position:absolute;right:-78px;bottom:-118px;width:320px;height:320px;border:1px solid rgba(255,255,255,.16);border-radius:50%;content:\"\"}\n            #tga-fqc-1 .tga-fqc-eyebrow{position:relative;z-index:1;margin:0 0 12px;color:#cbbcff;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}\n            #tga-fqc-1 .tga-fqc-hero h1{position:relative;z-index:1;max-width:980px;margin:0 0 14px;color:#fff;font-size:clamp(36px,5.2vw,60px);line-height:1.03;letter-spacing:-.04em}\n            #tga-fqc-1 .tga-fqc-hero p:last-child{position:relative;z-index:1;max-width:830px;margin:0;color:#dce4ff;font-size:18px;line-height:1.65}\n            #tga-fqc-1 .tga-fqc-panel,#tga-fqc-1 .tga-fqc-section{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 16px 45px rgba(15,24,49,.06)}\n            #tga-fqc-1 .tga-fqc-panel{margin-top:28px;padding:28px}#tga-fqc-1 .tga-fqc-section{margin-top:28px;padding:30px}\n            #tga-fqc-1 h2{margin:0 0 8px;color:var(--navy);font-size:25px;line-height:1.25;letter-spacing:-.02em}\n            #tga-fqc-1 .tga-fqc-intro,#tga-fqc-1 .tga-fqc-section>p{margin:0;color:var(--muted);line-height:1.7}\n            #tga-fqc-1 .tga-fqc-common{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}\n            #tga-fqc-1 label{display:block;margin:0 0 7px;color:#334155;font-size:13px;font-weight:700}\n            #tga-fqc-1 input,#tga-fqc-1 select{width:100%;min-height:48px;margin:0;padding:10px 13px;border:1px solid #cbd5e1;border-radius:10px;outline:0;background:#fff;color:var(--navy);font:inherit;font-size:15px}\n            #tga-fqc-1 input:focus,#tga-fqc-1 select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(101,40,247,.12)}\n            #tga-fqc-1 .tga-fqc-quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}\n            #tga-fqc-1 .tga-fqc-quote{min-width:0;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}\n            #tga-fqc-1 .tga-fqc-quote-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}#tga-fqc-1 .tga-fqc-quote-head strong{font-size:17px}#tga-fqc-1 .tga-fqc-remove{padding:4px 9px;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#b91c1c;cursor:pointer;font-weight:800}\n            #tga-fqc-1 .tga-fqc-quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}#tga-fqc-1 .tga-fqc-wide{grid-column:1\/-1}\n            #tga-fqc-1 .tga-fqc-help{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.45}\n            #tga-fqc-1 .tga-fqc-error,#tga-fqc-1 .tga-fqc-status{min-height:22px;margin:13px 0 0;font-size:13px;font-weight:700;line-height:1.5}#tga-fqc-1 .tga-fqc-error{color:var(--danger)}#tga-fqc-1 .tga-fqc-status{color:var(--success)}#tga-fqc-1 [hidden]{display:none!important}\n            #tga-fqc-1 .tga-fqc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n            #tga-fqc-1 .tga-fqc-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:var(--navy);cursor:pointer;font:inherit;font-size:14px;font-weight:800;line-height:1.2;text-decoration:none}#tga-fqc-1 .tga-fqc-button:hover{border-color:var(--purple);transform:translateY(-1px)}\n            #tga-fqc-1 .tga-fqc-primary{min-height:50px;padding:11px 19px;border-color:var(--purple);background:var(--purple);color:#fff}#tga-fqc-1 .tga-fqc-primary:hover{border-color:var(--purple-dark);background:var(--purple-dark)}\n            #tga-fqc-1 .tga-fqc-empty{margin-top:22px;padding:28px 22px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;color:var(--muted);line-height:1.7;text-align:center}\n            #tga-fqc-1 .tga-fqc-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}#tga-fqc-1 .tga-fqc-metric{min-width:0;padding:17px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}#tga-fqc-1 .tga-fqc-metric span{display:block;color:var(--muted);font-size:12px;font-weight:700}#tga-fqc-1 .tga-fqc-metric strong{display:block;margin-top:6px;font-size:20px;line-height:1.3;overflow-wrap:anywhere}\n            #tga-fqc-1 .tga-fqc-table-wrap{margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:12px}#tga-fqc-1 table{width:100%;min-width:860px;border-collapse:collapse;font-size:13px}#tga-fqc-1 th,#tga-fqc-1 td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}#tga-fqc-1 th{background:#f8fafc;font-size:12px}#tga-fqc-1 td:nth-child(n+3),#tga-fqc-1 th:nth-child(n+3){text-align:right}#tga-fqc-1 tbody tr:last-child td{border-bottom:0}\n            #tga-fqc-1 .tga-fqc-tag{display:inline-block;margin-top:5px;margin-right:4px;padding:3px 7px;border-radius:999px;background:#ede9fe;color:#5b21b6;font-size:10px;font-weight:800}\n            #tga-fqc-1 .tga-fqc-callout{margin-top:15px;padding:16px;border-left:4px solid var(--purple);border-radius:10px;background:var(--lilac);color:#334155;line-height:1.65}\n            #tga-fqc-1 .tga-fqc-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}#tga-fqc-1 .tga-fqc-guide article{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}#tga-fqc-1 .tga-fqc-guide h3{margin:0 0 7px;font-size:16px}#tga-fqc-1 .tga-fqc-guide p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}\n            #tga-fqc-1 .tga-fqc-cta{display:flex;gap:28px;align-items:center;justify-content:space-between;margin-top:28px;padding:34px 38px;border-radius:18px;background:radial-gradient(circle at 88% 18%,rgba(101,40,247,.65),transparent 38%),linear-gradient(135deg,#081127,#131d42);color:#fff}#tga-fqc-1 .tga-fqc-cta h2{color:#fff;font-size:28px}#tga-fqc-1 .tga-fqc-cta p{max-width:720px;margin:0;color:#dce4ff;line-height:1.7}#tga-fqc-1 .tga-fqc-cta a{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:11px 19px;border-radius:10px;background:#fff;color:var(--navy);font-weight:800;text-decoration:none}\n            #tga-fqc-1 .tga-fqc-faq{display:grid;gap:10px;margin-top:20px}#tga-fqc-1 details{border:1px solid var(--line);border-radius:12px;background:#fff}#tga-fqc-1 summary{padding:16px 18px;cursor:pointer;font-weight:800}#tga-fqc-1 details p{margin:0;padding:0 18px 17px;color:var(--muted);line-height:1.7}\n            #tga-fqc-1 .tga-fqc-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}#tga-fqc-1 .tga-fqc-related a{display:block;padding:20px;border:1px solid var(--line);border-radius:13px;color:var(--navy);text-decoration:none}#tga-fqc-1 .tga-fqc-related a:hover{border-color:var(--purple)}#tga-fqc-1 .tga-fqc-related strong{display:block;margin-bottom:7px;color:var(--purple)}#tga-fqc-1 .tga-fqc-related span{display:block;color:var(--muted);font-size:14px;line-height:1.6}\n            @media(max-width:900px){#tga-fqc-1 .tga-fqc-common,#tga-fqc-1 .tga-fqc-summary{grid-template-columns:1fr}#tga-fqc-1 .tga-fqc-quotes,#tga-fqc-1 .tga-fqc-guide,#tga-fqc-1 .tga-fqc-related{grid-template-columns:1fr}#tga-fqc-1 .tga-fqc-cta{align-items:flex-start;flex-direction:column}}\n            @media(max-width:600px){#tga-fqc-1{margin-top:28px;padding:0 20px}#tga-fqc-1 .tga-fqc-hero{padding:32px 23px}#tga-fqc-1 .tga-fqc-hero h1{font-size:34px}#tga-fqc-1 .tga-fqc-panel,#tga-fqc-1 .tga-fqc-section{padding:23px 19px}#tga-fqc-1 .tga-fqc-quote-grid{grid-template-columns:1fr}#tga-fqc-1 .tga-fqc-wide{grid-column:auto}#tga-fqc-1 input,#tga-fqc-1 select{font-size:16px}#tga-fqc-1 .tga-fqc-actions{display:grid;grid-template-columns:1fr}#tga-fqc-1 .tga-fqc-button,#tga-fqc-1 .tga-fqc-cta a{width:100%}#tga-fqc-1 .tga-fqc-cta{padding:28px 22px}}\n        <\/style>\n        <section class=\"tga-fqc-hero\"><p class=\"tga-fqc-eyebrow\">Compare the Same Shipment on the Same Basis<\/p><h1 id=\"tga-fqc-1-title\">Freight Quote Comparison Calculator<\/h1><p>Combine each provider\u2019s entered charges, compare unit costs and transit time, and expose the cost spread before you review the full quotation terms.<\/p><\/section>\n        <form class=\"tga-fqc-panel tga-fqc-form\" novalidate>\n            <h2>Enter Shipment and Quote Details<\/h2><p class=\"tga-fqc-intro\">Use one currency and comparable charge categories for every quote. Add only amounts supplied or confirmed by the provider.<\/p>\n            <div class=\"tga-fqc-common\"><div><label>Currency<\/label><select data-field=\"currency\"><option>USD<\/option><option>EUR<\/option><option>GBP<\/option><option>CNY<\/option><option>JPY<\/option><option>KRW<\/option><option>AUD<\/option><option>CAD<\/option><\/select><\/div><div><label>Shipment gross weight (kg)<\/label><input data-field=\"weight\" type=\"number\" value=\"3200\" min=\"0.001\" max=\"1000000000000\" step=\"0.001\" required><\/div><div><label>Shipment volume (CBM)<\/label><input data-field=\"volume\" type=\"number\" value=\"5.4\" min=\"0.001\" max=\"1000000000\" step=\"0.001\" required><\/div><\/div>\n            <div class=\"tga-fqc-quotes\" data-quotes><\/div>\n            <div class=\"tga-fqc-actions\"><button class=\"tga-fqc-button\" data-action=\"add\" type=\"button\">+ Add Freight Quote<\/button><\/div>\n            <p class=\"tga-fqc-error\" role=\"alert\" aria-live=\"assertive\"><span data-error=\"shipment\" hidden>Enter shipment weight and volume greater than zero.<\/span><span data-error=\"quotes\" hidden>Keep at least two and no more than six freight quotes.<\/span><span data-error=\"quote\" hidden>Each quote needs a provider name, service label, non-negative charges, and transit days greater than zero.<\/span><\/p>\n            <div class=\"tga-fqc-actions\"><button class=\"tga-fqc-button tga-fqc-primary\" type=\"submit\">Compare Freight Quotes<\/button><button class=\"tga-fqc-button\" data-action=\"reset\" type=\"button\">Reset<\/button><\/div>\n        <\/form>\n        <section class=\"tga-fqc-panel\" aria-labelledby=\"tga-fqc-1-result-title\"><h2 id=\"tga-fqc-1-result-title\">Freight Quote Comparison<\/h2><p class=\"tga-fqc-intro\">The labels show mathematical differences only; review service scope and exclusions separately.<\/p>\n            <div class=\"tga-fqc-empty\" data-empty>Enter at least two quotes, then select Compare Freight Quotes.<span class=\"tga-fqc-status\" data-reset-status hidden>The example quotes have been restored.<\/span><\/div>\n            <div data-output hidden><div class=\"tga-fqc-summary\"><div class=\"tga-fqc-metric\"><span>Lowest entered total<\/span><strong data-result=\"lowest\"><\/strong><\/div><div class=\"tga-fqc-metric\"><span>Shortest entered transit<\/span><strong data-result=\"fastest\"><\/strong><\/div><div class=\"tga-fqc-metric\"><span>Highest-to-lowest cost spread<\/span><strong data-result=\"spread\"><\/strong><\/div><\/div><div class=\"tga-fqc-table-wrap\"><table><thead><tr><th>Provider \/ service<\/th><th>Charge breakdown<\/th><th>Total<\/th><th>Cost \/ kg<\/th><th>Cost \/ CBM<\/th><th>Transit<\/th><\/tr><\/thead><tbody data-result=\"rows\"><\/tbody><\/table><\/div><div class=\"tga-fqc-callout\">Lowest cost and shortest transit can belong to the same or different quotes. Confirm validity, route, inclusions, exclusions, free time, insurance, capacity, schedule, and destination delivery before booking.<\/div><div class=\"tga-fqc-actions\"><button class=\"tga-fqc-button\" data-action=\"copy\" type=\"button\">Copy Comparison<\/button><button class=\"tga-fqc-button\" data-action=\"download\" type=\"button\">Download CSV<\/button><\/div><p class=\"tga-fqc-status\" role=\"status\" aria-live=\"polite\"><span data-status=\"compared\" hidden>Freight quotes compared.<\/span><span data-status=\"copied\" hidden>Comparison copied.<\/span><span data-status=\"copyFailed\" hidden>Copy failed. Select and copy the result manually.<\/span><span data-status=\"downloaded\" hidden>CSV downloaded.<\/span><\/p><\/div>\n        <\/section>\n        <section class=\"tga-fqc-section\"><h2>How to Compare Quotes More Reliably<\/h2><p>Normalize the commercial inputs first, then use the calculated differences as a starting point for a full service review.<\/p><div class=\"tga-fqc-guide\"><article><h3>Use One Scope<\/h3><p>Confirm whether every quote covers the same origin, destination, route, cargo details, pickup, delivery, and charge categories.<\/p><\/article><article><h3>Separate Cost and Time<\/h3><p>The lowest entered total and shortest entered transit are reported separately. Neither represents overall service quality.<\/p><\/article><article><h3>Check What Is Missing<\/h3><p>Review exclusions, validity, free time, storage, inspection, duties, taxes, insurance, customs activity, and possible destination charges.<\/p><\/article><\/div><\/section>\n        <section class=\"tga-fqc-cta\"><div><h2>Turn Quote Comparisons Into Better Trade Decisions<\/h2><p>Explore TradeGoAI services for buyer research, sales preparation, trade documentation, risk review, and market visibility.<\/p><\/div><a href=\"https:\/\/tradegoai.app\/fr\/services\/\">Explore Services \u2192<\/a><\/section>\n        <section class=\"tga-fqc-section\"><h2>Frequently Asked Questions<\/h2><div class=\"tga-fqc-faq\"><details><summary>What costs should I enter for each freight quote?<\/summary><p>Enter the comparable amounts supplied by each provider: base freight, origin charges, destination charges, and known surcharges. Put taxes, customs charges, inspection, storage, delivery, or other items in the surcharge field only when they are actually included in the quote being compared.<\/p><\/details><details><summary>Does the lowest total mean it is the best freight quote?<\/summary><p>No. The calculator identifies the lowest entered total, not the best provider or service. Compare scope, route, transit reliability, free time, exclusions, validity, payment terms, insurance, handling, and service quality before booking.<\/p><\/details><details><summary>How is cost per kilogram calculated?<\/summary><p>Each quote total is divided by the shipment gross weight entered above the quote cards. It is a comparison metric and does not replace the provider\u2019s chargeable-weight or revenue-ton method.<\/p><\/details><details><summary>How is cost per CBM calculated?<\/summary><p>Each quote total is divided by the shipment volume entered above the quote cards. Confirm measured volume and any minimum, rounding, density, or W\/M rules separately.<\/p><\/details><details><summary>Can I compare different currencies?<\/summary><p>The current worksheet uses one currency for all quotes. Convert every quotation to the same currency using a rate and date you have confirmed before comparing them.<\/p><\/details><details><summary>Does this tool retrieve current freight rates?<\/summary><p>No. It calculates only from the figures you enter and keeps them in the browser. Rates, surcharges, capacity, schedules, and validity must be confirmed directly with each provider.<\/p><\/details><\/div><\/section>\n        <section class=\"tga-fqc-section\"><h2>Related Free Tools<\/h2><p>Continue from quote comparison into shipment volume, chargeable weight, and LCL charge planning.<\/p><div class=\"tga-fqc-related\"><a href=\"https:\/\/tradegoai.app\/fr\/tools\/cbm-carton-calculator\/\"><strong>CBM &amp; Carton Calculator<\/strong><span>Calculate shipment volume, carton totals, and gross weight.<\/span><\/a><a href=\"https:\/\/tradegoai.app\/fr\/tools\/volumetric-weight-calculator\/\"><strong>Volumetric Weight Calculator<\/strong><span>Compare actual, dimensional, and chargeable weight.<\/span><\/a><a href=\"https:\/\/tradegoai.app\/fr\/tools\/lcl-freight-charge-calculator\/\"><strong>LCL Freight Charge Calculator<\/strong><span>Estimate W\/M freight, minimum charges, local fees, and unit cost.<\/span><\/a><\/div><\/section>\n        <template data-quote-template><article class=\"tga-fqc-quote\"><div class=\"tga-fqc-quote-head\"><strong data-quote-title>Freight Quote<\/strong><button class=\"tga-fqc-remove\" data-remove type=\"button\">Remove<\/button><\/div><div class=\"tga-fqc-quote-grid\"><div><label>Provider name *<\/label><input data-quote=\"provider\" maxlength=\"100\" required><\/div><div><label>Service \/ route *<\/label><input data-quote=\"service\" maxlength=\"120\" required><\/div><div><label>Base freight<\/label><input data-quote=\"base\" type=\"number\" min=\"0\" max=\"1000000000000\" step=\"0.01\" required><\/div><div><label>Origin charges<\/label><input data-quote=\"origin\" type=\"number\" min=\"0\" max=\"1000000000000\" step=\"0.01\" required><\/div><div><label>Destination charges<\/label><input data-quote=\"destination\" type=\"number\" min=\"0\" max=\"1000000000000\" step=\"0.01\" required><\/div><div><label>Known surcharges<\/label><input data-quote=\"surcharges\" type=\"number\" min=\"0\" max=\"1000000000000\" step=\"0.01\" required><\/div><div class=\"tga-fqc-wide\"><label>Estimated transit days *<\/label><input data-quote=\"days\" type=\"number\" min=\"1\" max=\"365\" step=\"1\" required><\/div><\/div><\/article><\/template>\n        <div data-i18n hidden><span data-key=\"quote\">Freight Quote<\/span><span data-key=\"lowestTag\">Lowest total<\/span><span data-key=\"fastestTag\">Shortest transit<\/span><span data-key=\"days\">days<\/span><span data-key=\"base\">Base<\/span><span data-key=\"origin\">Origin<\/span><span data-key=\"destination\">Destination<\/span><span data-key=\"surcharges\">Surcharges<\/span><span data-key=\"title\">Freight Quote Comparison<\/span><span data-key=\"provider\">Provider<\/span><span data-key=\"service\">Service \/ route<\/span><span data-key=\"total\">Total<\/span><span data-key=\"perKg\">Cost per kg<\/span><span data-key=\"perCbm\">Cost per CBM<\/span><span data-key=\"transit\">Transit days<\/span><\/div>\n        <script>\n        (function(){'use strict';const root=document.getElementById(\"tga-fqc-1\");if(!root||root.dataset.ready==='1')return;root.dataset.ready='1';const form=root.querySelector('.tga-fqc-form'),box=root.querySelector('[data-quotes]'),tpl=root.querySelector('[data-quote-template]'),empty=root.querySelector('[data-empty]'),output=root.querySelector('[data-output]'),rows=root.querySelector('[data-result=rows]'),fields={},labels={};root.querySelectorAll('[data-field]').forEach(n=>fields[n.dataset.field]=n);const defaults=[{provider:'Harbor Forwarding',service:'Ocean LCL',base:'900',origin:'180',destination:'260',surcharges:'110',days:'24'},{provider:'Global Cargo',service:'Ocean LCL Express',base:'980',origin:'150',destination:'210',surcharges:'80',days:'19'}];let current=null;\n        function loadLabels(){root.querySelectorAll('[data-i18n] [data-key]').forEach(n=>labels[n.dataset.key]=n.textContent.trim())}loadLabels();function clear(){root.querySelectorAll('[data-error],[data-status],[data-reset-status]').forEach(n=>n.hidden=true)}function msg(t,k){clear();const n=root.querySelector(`[data-${t}=\"${k}\"]`);if(n)n.hidden=false}function titles(){[...box.children].forEach((n,i)=>n.querySelector('[data-quote-title]').textContent=labels.quote+' '+(i+1))}\n        function add(data){if(box.children.length>=6)return;const n=tpl.content.firstElementChild.cloneNode(true);Object.entries(data||{}).forEach(([k,v])=>n.querySelector(`[data-quote=\"${k}\"]`).value=v);n.querySelector('[data-remove]').addEventListener('click',()=>{if(box.children.length>2){n.remove();titles()}});box.appendChild(n);titles()}\n        function read(){const weight=Number(fields.weight.value),volume=Number(fields.volume.value),currency=fields.currency.value;if(!Number.isFinite(weight)||weight<=0||weight>1e12||!Number.isFinite(volume)||volume<=0||volume>1e9)throw Error('shipment');const nodes=[...box.children];if(nodes.length<2||nodes.length>6)throw Error('quotes');const quotes=nodes.map(n=>{const q={};n.querySelectorAll('[data-quote]').forEach(f=>q[f.dataset.quote]=['provider','service'].includes(f.dataset.quote)?f.value.trim():Number(f.value));return q});if(quotes.some(q=>!q.provider||!q.service||!Number.isInteger(q.days)||q.days<1||q.days>365||['base','origin','destination','surcharges'].some(k=>!Number.isFinite(q[k])||q[k]<0||q[k]>1e12)))throw Error('quote');return{weight,volume,currency,quotes}}\n        function calc(d){const quotes=d.quotes.map((q,i)=>({...q,index:i,total:q.base+q.origin+q.destination+q.surcharges}));quotes.forEach(q=>{q.perKg=q.total\/d.weight;q.perCbm=q.total\/d.volume});const min=Math.min(...quotes.map(q=>q.total)),fast=Math.min(...quotes.map(q=>q.days)),max=Math.max(...quotes.map(q=>q.total));quotes.forEach(q=>{q.lowest=q.total===min;q.fastest=q.days===fast});return{input:d,quotes,min,fast,spread:max-min}}\n        function money(v,c){try{return new Intl.NumberFormat(undefined,{style:'currency',currency:c,currencyDisplay:'code',minimumFractionDigits:2,maximumFractionDigits:2}).format(v)}catch(e){return c+' '+v.toFixed(2)}}function render(r){const c=r.input.currency,lowest=r.quotes.filter(q=>q.lowest).map(q=>q.provider).join(', '),fastest=r.quotes.filter(q=>q.fastest).map(q=>q.provider).join(', ');root.querySelector('[data-result=lowest]').textContent=lowest+' \u00b7 '+money(r.min,c);root.querySelector('[data-result=fastest]').textContent=fastest+' \u00b7 '+r.fast+' '+labels.days;root.querySelector('[data-result=spread]').textContent=money(r.spread,c);rows.textContent='';r.quotes.forEach(q=>{const tr=document.createElement('tr'),first=document.createElement('td');const b=document.createElement('strong');b.textContent=q.provider;first.appendChild(b);first.appendChild(document.createTextNode(' \u00b7 '+q.service));if(q.lowest){const s=document.createElement('span');s.className='tga-fqc-tag';s.textContent=labels.lowestTag;first.appendChild(document.createElement('br'));first.appendChild(s)}if(q.fastest){const s=document.createElement('span');s.className='tga-fqc-tag';s.textContent=labels.fastestTag;first.appendChild(s)}tr.appendChild(first);const breakdown=document.createElement('td');breakdown.textContent=labels.base+' '+money(q.base,c)+' \u00b7 '+labels.origin+' '+money(q.origin,c)+' \u00b7 '+labels.destination+' '+money(q.destination,c)+' \u00b7 '+labels.surcharges+' '+money(q.surcharges,c);tr.appendChild(breakdown);[money(q.total,c),money(q.perKg,c),money(q.perCbm,c),q.days+' '+labels.days].forEach(v=>{const td=document.createElement('td');td.textContent=v;tr.appendChild(td)});rows.appendChild(tr)});empty.hidden=true;output.hidden=false;msg('status','compared')}\n        function dataRows(r){const c=r.input.currency;return r.quotes.map(q=>[q.provider,q.service,money(q.base,c),money(q.origin,c),money(q.destination,c),money(q.surcharges,c),money(q.total,c),money(q.perKg,c),money(q.perCbm,c),q.days,q.lowest?labels.lowestTag:'',q.fastest?labels.fastestTag:''])}function text(r){return[labels.title].concat(dataRows(r).map(x=>x.join(' | '))).join('\\n')}function csv(v){let s=String(v);if(\/^[=+\\-@]\/.test(s))s=\"'\"+s;return '\"'+s.replace(\/\"\/g,'\"\"')+'\"'}\n        async function copy(){if(!current)return;try{const t=text(current);if(navigator.clipboard&&isSecureContext)await navigator.clipboard.writeText(t);else{const a=document.createElement('textarea');a.value=t;document.body.appendChild(a);a.select();if(!document.execCommand('copy'))throw Error();a.remove()}msg('status','copied')}catch(e){msg('status','copyFailed')}}function download(){if(!current)return;const head=[labels.provider,labels.service,labels.base,labels.origin,labels.destination,labels.surcharges,labels.total,labels.perKg,labels.perCbm,labels.transit,labels.lowestTag,labels.fastestTag],body=[head].concat(dataRows(current)),blob=new Blob(['\\uFEFF'+body.map(r=>r.map(csv).join(',')).join('\\r\\n')],{type:'text\/csv;charset=utf-8'}),url=URL.createObjectURL(blob),a=document.createElement('a');a.href=url;a.download='freight-quote-comparison.csv';document.body.appendChild(a);a.click();a.remove();setTimeout(()=>URL.revokeObjectURL(url),1000);msg('status','downloaded')}function reset(){fields.currency.value='USD';fields.weight.value='3200';fields.volume.value='5.4';box.textContent='';defaults.forEach(add);current=null;clear();output.hidden=true;empty.hidden=false;root.querySelector('[data-reset-status]').hidden=false;fields.weight.focus()}\n        defaults.forEach(add);root.querySelector('[data-action=add]').addEventListener('click',()=>add({provider:'',service:'',base:'0',origin:'0',destination:'0',surcharges:'0',days:'1'}));form.addEventListener('submit',e=>{e.preventDefault();loadLabels();clear();try{current=calc(read());render(current)}catch(x){current=null;output.hidden=true;empty.hidden=false;msg('error',x.message||'quote')}});root.querySelector('[data-action=reset]').addEventListener('click',reset);root.querySelector('[data-action=copy]').addEventListener('click',copy);root.querySelector('[data-action=download]').addEventListener('click',download);\n        })();<\/script>\n    <\/main>\n    \n","protected":false},"excerpt":{"rendered":"<p>Comparez 2 \u00e0 6 devis de fret selon le total, le co\u00fbt par kilogramme, le co\u00fbt par m\u00b3 et le transit \u00e0 partir des chiffres de chaque prestataire.<\/p>","protected":false},"featured_media":9882,"template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"spectra_gs_classes":"[\"\"]"},"tool_categories":[51,46],"class_list":["post-9880","tools","type-tools","status-publish","has-post-thumbnail","hentry","tool_categories-shipping-calculators","tool_categories-trade-operations"],"spectra_custom_meta":{"spectra_gs_classes":["[\"\"]"],"rank_math_internal_links_processed":["1"],"wp_statistics_words_count":["1"],"_thumbnail_id":["9882"],"rank_math_title":["%title% %sep% %sitename%"],"rank_math_description":["%excerpt%"],"rank_math_robots":["a:2:{i:0;s:5:\"index\";i:1;s:6:\"follow\";}"],"rank_math_facebook_image":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share.webp"],"rank_math_facebook_image_id":["9882"],"rank_math_twitter_use_facebook":["on"],"rank_math_twitter_card_type":["summary_large_image"],"rank_math_schema_SoftwareApplication":["a:8:{s:5:\"@type\";s:19:\"SoftwareApplication\";s:4:\"name\";s:35:\"Freight Quote Comparison Calculator\";s:11:\"description\";s:141:\"Compare 2\u20136 freight quotes by total charges, cost per kilogram, cost per CBM, and transit time using the figures supplied by each provider.\";s:3:\"url\";s:64:\"https:\/\/tradegoai.app\/tools\/freight-quote-comparison-calculator\/\";s:5:\"image\";s:102:\"https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share.webp\";s:19:\"applicationCategory\";s:19:\"BusinessApplication\";s:15:\"operatingSystem\";s:11:\"Web Browser\";s:6:\"offers\";a:3:{s:5:\"@type\";s:5:\"Offer\";s:5:\"price\";s:1:\"0\";s:13:\"priceCurrency\";s:3:\"USD\";}}"],"astra_style_timestamp_css":["1787216035"],"_uag_page_assets":["a:9:{s:3:\"css\";s:4963:\".uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}\n.uagb-icon-list__wrap{display:flex;align-items:flex-start;justify-content:flex-start}.wp-block-uagb-icon-list-child{padding:0;transition:all 0.2s;display:inline-flex;color:#3a3a3a;align-items:center;text-decoration:none;box-shadow:none}.wp-block-uagb-icon-list-child span.uagb-icon-list__source-wrap{display:block;align-items:center}.uagb-icon-list__source-wrap svg{display:block}.uagb-icon-list__source-image{width:40px}.uagb-icon-list__outer-wrap .uagb-icon-list__content-wrap{color:#3a3a3a;display:flex;align-items:center}\n.wp-block-uagb-icon-list-child{position:relative}.wp-block-uagb-icon-list-child>a{position:absolute;top:0;left:0;width:100%;height:100%}img.uagb-icon-list__source-image{max-width:unset}.wp-block-uagb-icon-list-child .uagb-icon-list__label{word-break:break-word}\n.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__source-image{width: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap svg{width: 16px;height: 16px;font-size: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap{padding: 0px;border-radius: 0px;border-width: 0px;align-self: center;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__label{text-decoration: !important;font-weight: 600;line-height: em;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__wrap{display: flex;flex-direction: column;justify-content: center;-webkit-box-pack: center;-ms-flex-pack: center;-webkit-box-align: flex-start;-ms-flex-align: flex-start;align-items: flex-start;margin-top: 30px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__label{text-align: left;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child{text-decoration: !important;font-weight: 600;line-height: em;}.wp-block-uagb-icon-list.uagb-block-b5768981.wp-block-uagb-icon-list .wp-block-uagb-icon-list-child{margin-left: 0;margin-right: 0;margin-bottom: 10px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__source-wrap{margin-right: 15px;}.uagb-block-75fa870d.wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap{background:  !important;border-color:  !important;}.uagb-block-75fa870d.wp-block-uagb-icon-list-child:hover .uagb-icon-list__source-wrap{background:  !important;border-color:  !important;}.uagb-block-5bf81fd2.wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap{background:  !important;border-color:  !important;}.uagb-block-5bf81fd2.wp-block-uagb-icon-list-child:hover .uagb-icon-list__source-wrap{background:  !important;border-color:  !important;}@media only screen and (max-width: 976px) {.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__source-image{width: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap svg{width: 16px;height: 16px;font-size: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap {padding: 0px;border-width: 0px;align-self: center;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__wrap{display: flex;flex-direction: column;justify-content: center;-webkit-box-pack: center;-ms-flex-pack: center;-webkit-box-align: flex-start;-ms-flex-align: flex-start;align-items: flex-start;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__label{text-align: left;}.wp-block-uagb-icon-list.uagb-block-b5768981.wp-block-uagb-icon-list .wp-block-uagb-icon-list-child{margin-left: 0;margin-right: 0;margin-bottom: 10px;}}@media only screen and (max-width: 767px) {.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__source-image{width: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__label{text-align: center;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap svg{width: 16px;height: 16px;font-size: 16px;}.wp-block-uagb-icon-list.uagb-block-b5768981 .wp-block-uagb-icon-list-child .uagb-icon-list__source-wrap{padding: 0px;border-width: 0px;align-self: center;}.wp-block-uagb-icon-list.uagb-block-b5768981 .uagb-icon-list__wrap{display: flex;flex-direction: column;justify-content: center;-webkit-box-pack: center;-ms-flex-pack: center;-webkit-box-align: center;-ms-flex-align: center;align-items: center;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-icon-list.uagb-block-b5768981.wp-block-uagb-icon-list .wp-block-uagb-icon-list-child{margin-left: 0;margin-right: 0;margin-bottom: 10px;}}\";s:2:\"js\";s:0:\"\";s:18:\"current_block_list\";a:10:{i:0;s:11:\"core\/search\";i:1;s:10:\"core\/group\";i:2;s:12:\"core\/heading\";i:3;s:17:\"core\/latest-posts\";i:4;s:20:\"core\/latest-comments\";i:5;s:13:\"core\/archives\";i:6;s:15:\"core\/categories\";i:7;s:14:\"uagb\/icon-list\";i:8;s:20:\"uagb\/icon-list-child\";i:9;s:14:\"core\/shortcode\";}s:8:\"uag_flag\";b:1;s:11:\"uag_version\";s:10:\"1787709447\";s:6:\"gfonts\";a:0:{}s:10:\"gfonts_url\";s:0:\"\";s:12:\"gfonts_files\";a:0:{}s:14:\"uag_faq_layout\";b:0;}"],"_uag_css_file_name":["uag-css-9880.css"]},"uagb_featured_image_src":{"full":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share.webp",1200,630,false],"thumbnail":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share-150x150.webp",150,150,true],"medium":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share-300x158.webp",300,158,true],"medium_large":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share-768x403.webp",768,403,true],"large":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share-1024x538.webp",1024,538,true],"1536x1536":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share.webp",1200,630,false],"2048x2048":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share.webp",1200,630,false],"trp-custom-language-flag":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/freight-quote-comparison-calculator-social-share-18x9.webp",18,9,true]},"uagb_author_info":{"display_name":"xiaoxi99202@gmail.com","author_link":"https:\/\/tradegoai.app\/fr\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"Compare 2\u20136 freight quotes by total charges, cost per kilogram, cost per CBM, and transit time using the figures supplied by each provider.","_links":{"self":[{"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/tools\/9880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/tools"}],"about":[{"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/types\/tools"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/media\/9882"}],"wp:attachment":[{"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/media?parent=9880"}],"wp:term":[{"taxonomy":"tool_categories","embeddable":true,"href":"https:\/\/tradegoai.app\/fr\/wp-json\/wp\/v2\/tool_categories?post=9880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}