{"id":2453,"date":"2026-05-12T03:05:55","date_gmt":"2026-05-12T03:05:55","guid":{"rendered":"https:\/\/masstechx.com\/?page_id=2453"},"modified":"2026-05-12T03:39:38","modified_gmt":"2026-05-12T03:39:38","slug":"landed-cost-estimator","status":"publish","type":"page","link":"https:\/\/masstechx.com\/fr\/beer-filling-machine\/landed-cost-estimator\/","title":{"rendered":"Estimateur de co\u00fbts r\u00e9els d\u00e9barqu\u00e9s"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-3e352f3\" data-block-id=\"3e352f3\"><style>.stk-3e352f3 {margin-bottom:35px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-3e352f3-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-4741301\" data-v=\"4\" data-block-id=\"4741301\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-4741301-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-4741301-inner-blocks\"><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-8bf1a30\" data-block-id=\"8bf1a30\"><style>.stk-8bf1a30-column{--stk-columns-spacing:var(--stk--preset--spacing--40, 1rem) !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-8bf1a30-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-4a527cf\" data-v=\"4\" data-block-id=\"4a527cf\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-4a527cf-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-4a527cf-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-fed364b\" data-block-id=\"fed364b\"><style>.stk-fed364b {margin-bottom:0px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-fed364b-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-ac82ed8\" data-v=\"4\" data-block-id=\"ac82ed8\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-ac82ed8-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-ac82ed8-inner-blocks\">\n<!-- Mass Beer Filling \u2014 True Landed Cost Estimator (Enterprise B2B Module) -->\n<style>\n\/* ==========================================================================\n   #mass-tlc-module - SCOPED STYLES\n   Main Color: #0078C0 | Secondary: #7860A8 | Alert: #D4A012\n   ========================================================================== *\/\n#mass-tlc-module {\n    --tlc-main: #0078C0;\n    --tlc-main-dark: #005A91;\n    --tlc-sec: #7860A8;\n    --tlc-sec-dark: #5D4886;\n    --tlc-alert: #D4A012;\n    --tlc-bg: #F8FAFC;\n    --tlc-card-bg: #FFFFFF;\n    --tlc-border: #E2E8F0;\n    --tlc-text-dark: #1E293B;\n    --tlc-text-muted: #64748B;\n    \n    width: 100%;\n    background: linear-gradient(to bottom, var(--tlc-bg), #EDF1F5);\n    padding: 60px 30px;\n    box-sizing: border-box;\n    \/* \u5f3a\u5236\u7ee7\u627f\u5168\u5c40\u5b57\u4f53\u8bbe\u5b9a *\/\n    font-family: inherit !important;\n}\n\n#mass-tlc-module *,\n#mass-tlc-module *::before,\n#mass-tlc-module *::after {\n    box-sizing: border-box;\n}\n\n\/* Container: \u5168\u5c4f\u8d2f\u7a7f\uff0c\u5f39\u6027\u951a\u5b9a *\/\n#mass-tlc-module .mtlc-container {\n    max-width: 1600px !important;\n    margin: 0 auto;\n    display: flex;\n    flex-direction: column;\n    gap: 40px;\n}\n\n\/* ================== Header & Title ================== *\/\n#mass-tlc-module .mtlc-header {\n    max-width: 1000px;\n}\n\n#mass-tlc-module h1.mtlc-main-title {\n    font-size: 32px !important;\n    color: var(--tlc-main);\n    line-height: 1.25;\n    margin: 0 0 16px 0;\n    font-weight: 700;\n    letter-spacing: -0.5px;\n    position: relative;\n    padding-bottom: 16px;\n}\n\n#mass-tlc-module h2.mtlc-main-title::after {\n    content: \"\";\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 80px;\n    height: 4px;\n    background: var(--tlc-sec);\n    border-radius: 2px;\n}\n\n#mass-tlc-module p.mtlc-subtitle {\n    font-size: 16px;\n    color: var(--tlc-text-muted);\n    line-height: 1.6;\n    margin: 0;\n}\n\n\/* ================== Main Layout Grid ================== *\/\n#mass-tlc-module .mtlc-layout {\n    display: grid;\n    grid-template-columns: 1.3fr 1fr;\n    gap: 50px;\n    align-items: start;\n}\n\n\/* ================== Left Column: Form ================== *\/\n#mass-tlc-module .mtlc-form-col {\n    display: flex;\n    flex-direction: column;\n    gap: 30px;\n}\n\n\/* Alert Banner *\/\n#mass-tlc-module .mtlc-alert-banner {\n    background: rgba(212, 160, 18, 0.06);\n    border-left: 4px solid var(--tlc-alert);\n    padding: 20px 24px;\n    border-radius: 0 8px 8px 0;\n}\n\n#mass-tlc-module .mtlc-alert-label {\n    font-size: 13px;\n    color: var(--tlc-alert);\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    font-weight: 700;\n    margin-bottom: 8px;\n    display: block;\n}\n\n#mass-tlc-module .mtlc-alert-banner p {\n    font-size: 14px;\n    color: var(--tlc-text-dark);\n    margin: 0;\n    line-height: 1.6;\n}\n\n\/* Input Grid *\/\n#mass-tlc-module .mtlc-inputs-grid {\n    display: grid;\n    grid-template-columns: repeat(1, 1fr);\n    gap: 24px;\n    background: var(--tlc-card-bg);\n    padding: 30px;\n    border-radius: 12px;\n    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);\n    border: 1px solid var(--tlc-border);\n}\n\n#mass-tlc-module .mtlc-input-group {\n    display: flex;\n    flex-direction: column;\n}\n\n#mass-tlc-module .mtlc-label {\n    font-size: 12px;\n    font-weight: 600;\n    color: var(--tlc-main);\n    margin-bottom: 8px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n#mass-tlc-module .mtlc-unit {\n    color: var(--tlc-text-muted);\n    font-weight: 400;\n    text-transform: none;\n    letter-spacing: 0;\n}\n\n#mass-tlc-module .mtlc-control {\n    width: 100%;\n    height: 48px;\n    font-size: 15px;\n    color: var(--tlc-text-dark);\n    background: #F8FAFC;\n    border: 1px solid var(--tlc-border);\n    padding: 0 16px;\n    border-radius: 6px;\n    transition: all 0.25s ease;\n    font-weight: 500;\n}\n\n#mass-tlc-module .mtlc-control:focus {\n    border-color: var(--tlc-main);\n    background: #FFFFFF;\n    box-shadow: 0 0 0 3px rgba(0, 120, 192, 0.1);\n    outline: none;\n}\n\n#mass-tlc-module select.mtlc-control {\n    appearance: none;\n    background-image: url(\"data:image\/svg+xml,%3Csvg width='12' height='8' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");\n    background-repeat: no-repeat;\n    background-position: right 16px center;\n    padding-right: 40px;\n}\n\n\/* ================== Right Column: Results & Summary ================== *\/\n#mass-tlc-module .mtlc-result-col {\n    position: sticky;\n    top: 100px;\n    background: var(--tlc-card-bg);\n    border-radius: 16px;\n    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);\n    overflow: hidden;\n    border: 1px solid var(--tlc-border);\n}\n\n#mass-tlc-module .mtlc-breakdown-area {\n    padding: 30px 40px;\n}\n\n#mass-tlc-module h3.mtlc-breakdown-title {\n    font-size: 14px !important;\n    color: var(--tlc-sec);\n    margin: 0 0 20px 0;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    font-weight: 700;\n}\n\n#mass-tlc-module .mtlc-row {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 14px 0;\n    border-bottom: 1px solid #EDF1F5;\n    font-size: 14px;\n}\n\n#mass-tlc-module .mtlc-row-name {\n    color: var(--tlc-text-dark);\n    font-weight: 500;\n}\n\n#mass-tlc-module .mtlc-row-pct {\n    color: var(--tlc-text-muted);\n    font-size: 12px;\n    margin-left: 6px;\n    background: #F1F5F9;\n    padding: 2px 6px;\n    border-radius: 4px;\n}\n\n#mass-tlc-module .mtlc-row-val {\n    color: var(--tlc-main);\n    font-weight: 600;\n    font-size: 16px;\n}\n\n#mass-tlc-module .mtlc-row-total {\n    border-bottom: none;\n    padding-top: 20px;\n    margin-top: 10px;\n    border-top: 2px solid var(--tlc-border);\n}\n\n#mass-tlc-module .mtlc-row-total .mtlc-row-name {\n    font-weight: 700;\n    font-size: 16px;\n}\n\n#mass-tlc-module .mtlc-row-total .mtlc-row-val {\n    font-size: 20px;\n    color: var(--tlc-text-dark);\n}\n\n\/* Gradient Summary Box *\/\n#mass-tlc-module .mtlc-summary-box {\n    background: linear-gradient(135deg, var(--tlc-main) 0%, var(--tlc-sec) 100%);\n    padding: 40px;\n    color: #FFFFFF;\n    position: relative;\n    z-index: 1;\n}\n\n\/* \u589e\u52a0\u9ad8\u7ea7\u56fe\u5c42\u8d28\u611f *\/\n#mass-tlc-module .mtlc-summary-box::before {\n    content: \"\";\n    position: absolute;\n    top: 0; left: 0; right: 0; bottom: 0;\n    background: url('data:image\/svg+xml;utf8,<svg width=\"40\" height=\"40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"2\" cy=\"2\" r=\"1.5\" fill=\"rgba(255,255,255,0.1)\"\/><\/svg>');\n    z-index: -1;\n}\n\n#mass-tlc-module .mtlc-sum-label {\n    font-size: 13px;\n    opacity: 0.9;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    font-weight: 600;\n}\n\n#mass-tlc-module .mtlc-sum-value {\n    font-size: 42px;\n    font-weight: 700;\n    margin: 8px 0;\n    line-height: 1.1;\n    letter-spacing: -1px;\n}\n\n#mass-tlc-module .mtlc-sum-ctx {\n    font-size: 14px;\n    opacity: 0.95;\n    line-height: 1.6;\n    background: rgba(255,255,255,0.1);\n    padding: 12px 16px;\n    border-radius: 6px;\n    border-left: 3px solid #FFFFFF;\n    margin-top: 16px;\n}\n\n#mass-tlc-module .mtlc-note {\n    font-size: 12px;\n    opacity: 0.8;\n    margin-top: 20px;\n    padding-top: 16px;\n    border-top: 1px solid rgba(255,255,255,0.2);\n    line-height: 1.5;\n}\n\n\/* Buttons *\/\n#mass-tlc-module .mtlc-cta-row {\n    margin-top: 24px;\n    display: flex;\n    gap: 12px;\n    flex-wrap: wrap;\n}\n\n#mass-tlc-module a.mtlc-btn {\n    flex: 1;\n    text-align: center;\n    padding: 14px 20px;\n    font-weight: 600;\n    text-decoration: none;\n    border-radius: 6px;\n    font-size: 14px;\n    transition: all 0.3s ease;\n}\n\n#mass-tlc-module a.mtlc-btn-solid {\n    background: #FFFFFF;\n    color: var(--tlc-main);\n    box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n}\n\n#mass-tlc-module a.mtlc-btn-solid:hover {\n    background: #F1F5F9;\n    transform: translateY(-2px);\n    box-shadow: 0 8px 20px rgba(0,0,0,0.15);\n}\n\n#mass-tlc-module a.mtlc-btn-ghost {\n    background: transparent;\n    color: #FFFFFF;\n    border: 2px solid rgba(255,255,255,0.4);\n}\n\n#mass-tlc-module a.mtlc-btn-ghost:hover {\n    background: rgba(255,255,255,0.1);\n    border-color: #FFFFFF;\n}\n\n\/* ================== Footer Disclaimer ================== *\/\n#mass-tlc-module p.mtlc-disclaimer {\n    font-size: 12px;\n    color: var(--tlc-text-muted);\n    line-height: 1.6;\n    margin: 0;\n    padding-top: 24px;\n    border-top: 1px dashed var(--tlc-border);\n}\n\n\/* ================== Responsive ================== *\/\n@media (max-width:1000px) {\n    #mass-tlc-module .mtlc-layout { grid-template-columns: 1fr; gap: 30px; }\n    #mass-tlc-module .mtlc-result-col { position: static; }\n}\n\n@media (max-width:690px) {\n    #mass-tlc-module { padding: 40px 20px; }\n    #mass-tlc-module .mtlc-inputs-grid { grid-template-columns: 1fr; padding: 20px; }\n    #mass-tlc-module .mtlc-breakdown-area { padding: 24px 20px; }\n    #mass-tlc-module .mtlc-summary-box { padding: 30px 20px; }\n    #mass-tlc-module h2.mtlc-main-title { font-size: 26px !important; }\n    #mass-tlc-module .mtlc-cta-row { flex-direction: column; }\n}\n<\/style>\n\n<section id=\"mass-tlc-module\">\n    <div class=\"mtlc-container\">\n        \n        <!-- Header -->\n        <div class=\"mtlc-header\">\n            <h1 class=\"mtlc-main-title\">True Landed Cost Estimator \u2014 Beyond the FOB Quote<\/h1>\n            <p class=\"mtlc-subtitle\">Industry data shows real installs run 40\u201380% above the bare equipment quote. This calculator estimates the six hidden cost dimensions Mass quotes against, based on Solon Consulting&#8217;s 2025 brewery automation analysis (consultsolon.com).<\/p>\n        <\/div>\n\n        <div class=\"mtlc-layout\">\n            \n            <!-- Left Column: Inputs -->\n            <div class=\"mtlc-form-col\">\n                <div class=\"mtlc-alert-banner\">\n                    <span class=\"mtlc-alert-label\">\u26a0 Why This Estimator Exists<\/span>\n                    <p>Solon Consulting tracked a $1.2M canning line quote that became a $2.1M total project once electrical, integration, training, and validation were included. The Craft Beer Institute hosts a recurring webinar on hidden canning equipment costs. Estimate before you sign.<\/p>\n                <\/div>\n\n                <div class=\"mtlc-inputs-grid\">\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_fob_quote\">Mass FOB China quote <span class=\"mtlc-unit\">(USD)<\/span><\/label>\n                        <input class=\"mtlc-control\" type=\"number\" id=\"mtlc_fob_quote\" min=\"20000\" max=\"3000000\" value=\"250000\" step=\"10000\">\n                    <\/div>\n\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_port_distance\">Destination region<\/label>\n                        <select class=\"mtlc-control\" id=\"mtlc_port_distance\">\n                            <option value=\"asia\">East\/Southeast Asia (low freight)<\/option>\n                            <option value=\"europe\" selected>Europe \/ Mediterranean<\/option>\n                            <option value=\"americas\">Americas (East\/West Coast)<\/option>\n                            <option value=\"africa\">Africa \/ Middle East<\/option>\n                            <option value=\"oceania\">Oceania \/ remote ports<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_electrical\">Facility electrical readiness<\/label>\n                        <select class=\"mtlc-control\" id=\"mtlc_electrical\">\n                            <option value=\"ready\">Ready \u2014 three-phase + utilities prepared<\/option>\n                            <option value=\"partial\" selected>Partial \u2014 some upgrades needed<\/option>\n                            <option value=\"bare\">Bare site \u2014 full electrical\/utilities install<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_integration\">Upstream\/downstream scope<\/label>\n                        <select class=\"mtlc-control\" id=\"mtlc_integration\">\n                            <option value=\"standalone\">Standalone \u2014 no integration needed<\/option>\n                            <option value=\"basic\" selected>Basic \u2014 tank to filler tie-in only<\/option>\n                            <option value=\"full\">Full \u2014 depalletizer + packer + label data<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_custom\">Custom configuration level<\/label>\n                        <select class=\"mtlc-control\" id=\"mtlc_custom\">\n                            <option value=\"standard\" selected>Standard \u2014 Mass spec sheet match<\/option>\n                            <option value=\"moderate\">Moderate \u2014 minor format \/ closure tooling<\/option>\n                            <option value=\"heavy\">Heavy \u2014 non-standard container \/ multi-product line<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"mtlc-input-group\">\n                        <label class=\"mtlc-label\" for=\"mtlc_customs_pct\">Customs &amp; duties <span class=\"mtlc-unit\">(% of FOB)<\/span><\/label>\n                        <input class=\"mtlc-control\" type=\"number\" id=\"mtlc_customs_pct\" min=\"0\" max=\"40\" value=\"6\" step=\"0.5\">\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Right Column: Results -->\n            <div class=\"mtlc-result-col\">\n                <div class=\"mtlc-breakdown-area\">\n                    <h3 class=\"mtlc-breakdown-title\">Cost Breakdown \u2014 7 Components<\/h3>\n                    \n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">FOB Equipment Quote<\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_fob\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Sea Freight + Insurance <span class=\"mtlc-row-pct\" id=\"mtlc_b_freight_pct\">\u2014<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_freight\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Customs &amp; Import Duties <span class=\"mtlc-row-pct\" id=\"mtlc_b_customs_pct_disp\">\u2014<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_customs\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Electrical &amp; Utilities Upgrade <span class=\"mtlc-row-pct\" id=\"mtlc_b_elec_pct\">\u2014<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_elec\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Integration &amp; Civil Work <span class=\"mtlc-row-pct\" id=\"mtlc_b_int_pct\">\u2014<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_int\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Validation, FAT\/SAT, Commissioning <span class=\"mtlc-row-pct\">~5%<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_val\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row\">\n                        <span class=\"mtlc-row-name\">Operator Training + 1st-Year Spare Kit <span class=\"mtlc-row-pct\">~3%<\/span><\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_tr\">\u2014<\/span>\n                    <\/div>\n                    <div class=\"mtlc-row mtlc-row-total\">\n                        <span class=\"mtlc-row-name\">Estimated Total Landed Cost<\/span>\n                        <span class=\"mtlc-row-val\" id=\"mtlc_b_total\">\u2014<\/span>\n                    <\/div>\n                <\/div>\n\n                <div class=\"mtlc-summary-box\">\n                    <div class=\"mtlc-sum-label\">Surcharge over FOB<\/div>\n                    <div class=\"mtlc-sum-value\" id=\"mtlc_surcharge_pct\">\u2014<\/div>\n                    <div class=\"mtlc-sum-ctx\" id=\"mtlc_surcharge_ctx\">\u2014<\/div>\n                    \n                    <div class=\"mtlc-note\">Mass publishes this estimator because the gap between quote and reality is the #1 brewery procurement complaint. Our written quote breaks out the same dimensions for full transparency.<\/div>\n                    \n                    <div class=\"mtlc-cta-row\">\n                        <a href=\"#ct-popup-813\" class=\"mtlc-btn mtlc-btn-solid\">Get Itemized Quote \u2192<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n        <\/div>\n\n        <p class=\"mtlc-disclaimer\">Estimate model \u2014 Mass uses industry-typical multipliers calibrated against the Solon Consulting 2025 dataset, Craft Beer Institute hidden-cost webinars, and Mass field deployments. Real numbers depend on your specific port, local labor rates, regulatory regime, and the scope of your existing utilities. Final landed-cost figures require an engineer-reviewed site survey. This calculator is for budget orientation only.<\/p>\n    <\/div>\n<\/section>\n\n<script>\n(function(){\n    \/\/ \u4e25\u683c\u9650\u5b9a\u4f5c\u7528\u57df\uff0c\u9632\u6b62\u4e0e\u9875\u9762\u5176\u4ed6\u5143\u7d20\u51b2\u7a81\n    const scope = document.getElementById('mass-tlc-module');\n    if (!scope) return;\n\n    const $ = id => scope.querySelector('#' + id);\n    const fmt = n => '$' + Math.round(n).toLocaleString('en-US');\n    const fmtPct = n => n.toFixed(0) + '%';\n\n    function recalc() {\n        const fob = parseFloat($('mtlc_fob_quote').value) || 0;\n        const region = $('mtlc_port_distance').value;\n        const elec = $('mtlc_electrical').value;\n        const integ = $('mtlc_integration').value;\n        const cust = $('mtlc_custom').value;\n        const customsPct = parseFloat($('mtlc_customs_pct').value) || 0;\n\n        \/\/ Freight rates by region (% of FOB)\n        const freightMap = { asia: 0.04, europe: 0.07, americas: 0.08, africa: 0.10, oceania: 0.12 };\n        const freightPct = freightMap[region];\n        const freight = fob * freightPct;\n\n        \/\/ Customs\n        const customs = fob * (customsPct \/ 100);\n\n        \/\/ Electrical\n        const elecMap = { ready: 0.03, partial: 0.10, bare: 0.20 };\n        const elecPct = elecMap[elec];\n        const electrical = fob * elecPct;\n\n        \/\/ Integration + civil\n        const integMap = { standalone: 0.04, basic: 0.10, full: 0.18 };\n        const integPct = integMap[integ];\n        const integration = fob * integPct;\n\n        \/\/ Validation\/FAT\n        const validation = fob * 0.05;\n\n        \/\/ Training + spares\n        const training = fob * 0.03;\n\n        \/\/ Custom multiplier on validation\n        const customMult = cust === 'heavy' ? 1.5 : (cust === 'moderate' ? 1.2 : 1.0);\n        const validationAdj = validation * customMult;\n        const trainingAdj = training * customMult;\n\n        const total = fob + freight + customs + electrical + integration + validationAdj + trainingAdj;\n        const surcharge = total - fob;\n        const surchargePct = (surcharge \/ fob) * 100;\n\n        \/\/ Update DOM\n        $('mtlc_b_fob').textContent = fmt(fob);\n        $('mtlc_b_freight').textContent = fmt(freight);\n        $('mtlc_b_freight_pct').textContent = '~' + (freightPct * 100).toFixed(0) + '%';\n        $('mtlc_b_customs').textContent = fmt(customs);\n        $('mtlc_b_customs_pct_disp').textContent = '~' + customsPct.toFixed(1) + '%';\n        $('mtlc_b_elec').textContent = fmt(electrical);\n        $('mtlc_b_elec_pct').textContent = '~' + (elecPct * 100).toFixed(0) + '%';\n        $('mtlc_b_int').textContent = fmt(integration);\n        $('mtlc_b_int_pct').textContent = '~' + (integPct * 100).toFixed(0) + '%';\n        $('mtlc_b_val').textContent = fmt(validationAdj);\n        $('mtlc_b_tr').textContent = fmt(trainingAdj);\n        $('mtlc_b_total').textContent = fmt(total);\n\n        $('mtlc_surcharge_pct').textContent = '+' + fmtPct(surchargePct);\n        \n        let ctx;\n        if (surchargePct < 30) ctx = 'Within typical range \u2014 Mass quote already covered most landed-cost line items.';\n        else if (surchargePct < 60) ctx = 'In the industry-average band of 40\u201380% surcharge over FOB. Your quote should itemize each line.';\n        else if (surchargePct < 80) ctx = 'High end of typical range \u2014 bare site, heavy custom, or remote port driving the surcharge.';\n        else ctx = 'Above industry typical \u2014 verify that all line items truly apply or split scope across phases.';\n        \n        $('mtlc_surcharge_ctx').textContent = ctx;\n    }\n\n    \/\/ Attach listeners\n    ['mtlc_fob_quote', 'mtlc_port_distance', 'mtlc_electrical', 'mtlc_integration', 'mtlc_custom', 'mtlc_customs_pct'].forEach(id => {\n        const el = $(id);\n        if(el) {\n            el.addEventListener('input', recalc);\n            el.addEventListener('change', recalc);\n        }\n    });\n    \n    \/\/ Initial calculation\n    recalc();\n})();\n<\/script>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>True Landed Cost Estimator \u2014 Beyond the FOB Quote Industry data shows real installs run 40\u201380% above the bare equipment quote. This calculator estimates the six hidden cost dimensions Mass quotes against, based on Solon Consulting&#8217;s 2025 brewery automation analysis (consultsolon.com). \u26a0 Why This Estimator Exists Solon Consulting tracked a $1.2M canning line quote that [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":1013,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2453","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/pages\/2453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/comments?post=2453"}],"version-history":[{"count":0,"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/pages\/2453\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/pages\/1013"}],"wp:attachment":[{"href":"https:\/\/masstechx.com\/fr\/wp-json\/wp\/v2\/media?parent=2453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}