{"id":9856,"date":"2026-07-31T09:53:04","date_gmt":"2026-07-31T09:53:04","guid":{"rendered":"https:\/\/tradegoai.app\/?post_type=tools&#038;p=9856"},"modified":"2026-07-31T09:59:03","modified_gmt":"2026-07-31T09:59:03","slug":"cong-cu-tinh-do-bao-phu-quy-trinh-ban-hang","status":"publish","type":"tools","link":"https:\/\/tradegoai.app\/vi\/tools\/sales-pipeline-coverage-calculator\/","title":{"rendered":"C\u00f4ng c\u1ee5 t\u00ednh \u0111\u1ed9 bao ph\u1ee7 quy tr\u00ecnh b\u00e1n h\u00e0ng"},"content":{"rendered":"    <main id=\"tga-pipeline-1\" class=\"tga-pipeline-tool\" aria-labelledby=\"tga-pipeline-1-title\">\n        <style>\n            #tga-pipeline-1 {\n                --navy:#0f1831;--purple:#6528f7;--purple-dark:#501bd8;--lilac:#f2efff;\n                --muted:#64748b;--line:#e2e8f0;--white:#fff;--success:#047857;--danger:#b91c1c;\n                width:100%;max-width:1180px;margin:44px auto 72px;padding:0 22px;color:var(--navy);\n                font-family:inherit;box-sizing:border-box\n            }\n            #tga-pipeline-1 *,#tga-pipeline-1 *::before,#tga-pipeline-1 *::after{box-sizing:border-box}\n            #tga-pipeline-1 .tga-pipeline-hero{position:relative;overflow:hidden;padding:46px 48px;border-radius:22px;\n                background:radial-gradient(circle at 88% 18%,rgba(101,40,247,.78),transparent 34%),linear-gradient(135deg,#081127,#131d42);color:#fff}\n            #tga-pipeline-1 .tga-pipeline-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-pipeline-1 .tga-pipeline-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-pipeline-1 .tga-pipeline-hero h1{position:relative;z-index:1;max-width:930px;margin:0 0 14px;color:#fff;font-size:clamp(36px,5.5vw,62px);line-height:1.03;letter-spacing:-.04em}\n            #tga-pipeline-1 .tga-pipeline-hero p:last-child{position:relative;z-index:1;max-width:790px;margin:0;color:#dce4ff;font-size:18px;line-height:1.65}\n            #tga-pipeline-1 .tga-pipeline-workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:24px;margin-top:28px;align-items:start}\n            #tga-pipeline-1 .tga-pipeline-workspace>*{min-width:0}\n            #tga-pipeline-1 .tga-pipeline-panel,#tga-pipeline-1 .tga-pipeline-section{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 16px 45px rgba(15,24,49,.06)}\n            #tga-pipeline-1 .tga-pipeline-panel{padding:28px} #tga-pipeline-1 .tga-pipeline-section{margin-top:28px;padding:30px}\n            #tga-pipeline-1 h2{margin:0 0 8px;color:var(--navy);font-size:25px;line-height:1.25;letter-spacing:-.02em}\n            #tga-pipeline-1 .tga-pipeline-intro,#tga-pipeline-1 .tga-pipeline-section>p{margin:0;color:var(--muted);line-height:1.7}\n            #tga-pipeline-1 .tga-pipeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}\n            #tga-pipeline-1 .tga-pipeline-wide{grid-column:1\/-1}\n            #tga-pipeline-1 label{display:block;margin:0 0 7px;color:#334155;font-size:13px;font-weight:700}\n            #tga-pipeline-1 input,#tga-pipeline-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-pipeline-1 input:focus,#tga-pipeline-1 select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(101,40,247,.12)}\n            #tga-pipeline-1 .tga-pipeline-table-wrap{margin-top:22px;overflow-x:auto;border:1px solid var(--line);border-radius:12px}\n            #tga-pipeline-1 table{width:100%;min-width:520px;border-collapse:collapse}\n            #tga-pipeline-1 th,#tga-pipeline-1 td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}\n            #tga-pipeline-1 th{background:#f8fafc;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em}\n            #tga-pipeline-1 tr:last-child td{border-bottom:0}\n            #tga-pipeline-1 td input{min-height:42px;padding:8px 10px;font-size:14px}\n            #tga-pipeline-1 .tga-pipeline-error,#tga-pipeline-1 .tga-pipeline-status{min-height:22px;margin:13px 0 0;font-size:13px;font-weight:700;line-height:1.5}\n            #tga-pipeline-1 .tga-pipeline-error{color:var(--danger)} #tga-pipeline-1 .tga-pipeline-status{color:var(--success)}\n            #tga-pipeline-1 [hidden]{display:none!important}\n            #tga-pipeline-1 .tga-pipeline-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n            #tga-pipeline-1 .tga-pipeline-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}\n            #tga-pipeline-1 .tga-pipeline-button:hover{border-color:var(--purple);transform:translateY(-1px)}\n            #tga-pipeline-1 .tga-pipeline-primary{min-height:50px;padding:11px 19px;border-color:var(--purple);background:var(--purple);color:#fff}\n            #tga-pipeline-1 .tga-pipeline-primary:hover{border-color:var(--purple-dark);background:var(--purple-dark)}\n            #tga-pipeline-1 .tga-pipeline-result{min-height:610px}\n            #tga-pipeline-1 .tga-pipeline-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-pipeline-1 .tga-pipeline-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}\n            #tga-pipeline-1 .tga-pipeline-metric{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}\n            #tga-pipeline-1 .tga-pipeline-metric span{display:block;color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}\n            #tga-pipeline-1 .tga-pipeline-metric strong{display:block;margin-top:5px;color:var(--navy);font-size:21px;line-height:1.25;overflow-wrap:anywhere}\n            #tga-pipeline-1 .tga-pipeline-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-pipeline-1 .tga-pipeline-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}\n            #tga-pipeline-1 .tga-pipeline-guide article{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}\n            #tga-pipeline-1 .tga-pipeline-guide h3{margin:0 0 7px;font-size:16px;line-height:1.35} #tga-pipeline-1 .tga-pipeline-guide p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}\n            #tga-pipeline-1 .tga-pipeline-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}\n            #tga-pipeline-1 .tga-pipeline-cta h2{color:#fff;font-size:28px} #tga-pipeline-1 .tga-pipeline-cta p{max-width:720px;margin:0;color:#dce4ff;line-height:1.7}\n            #tga-pipeline-1 .tga-pipeline-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-pipeline-1 .tga-pipeline-faq{display:grid;gap:10px;margin-top:20px}\n            #tga-pipeline-1 details{border:1px solid var(--line);border-radius:12px;background:#fff} #tga-pipeline-1 summary{padding:16px 18px;cursor:pointer;font-weight:800} #tga-pipeline-1 details p{margin:0;padding:0 18px 17px;color:var(--muted);line-height:1.7}\n            #tga-pipeline-1 .tga-pipeline-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}\n            #tga-pipeline-1 .tga-pipeline-related a{display:block;padding:20px;border:1px solid var(--line);border-radius:13px;color:var(--navy);text-decoration:none}\n            #tga-pipeline-1 .tga-pipeline-related a:hover{border-color:var(--purple)} #tga-pipeline-1 .tga-pipeline-related strong{display:block;margin-bottom:7px;color:var(--purple)} #tga-pipeline-1 .tga-pipeline-related span{display:block;color:var(--muted);font-size:14px;line-height:1.6}\n            @media(max-width:900px){#tga-pipeline-1 .tga-pipeline-workspace{grid-template-columns:1fr}#tga-pipeline-1 .tga-pipeline-result{min-height:0}#tga-pipeline-1 .tga-pipeline-guide,#tga-pipeline-1 .tga-pipeline-related{grid-template-columns:1fr}#tga-pipeline-1 .tga-pipeline-cta{align-items:flex-start;flex-direction:column}}\n            @media(max-width:600px){#tga-pipeline-1{margin-top:28px;padding:0 0px}#tga-pipeline-1 .tga-pipeline-hero{padding:32px 23px}#tga-pipeline-1 .tga-pipeline-hero h1{font-size:36px}#tga-pipeline-1 .tga-pipeline-panel,#tga-pipeline-1 .tga-pipeline-section{padding:23px 19px}#tga-pipeline-1 .tga-pipeline-grid,#tga-pipeline-1 .tga-pipeline-metrics{grid-template-columns:1fr}#tga-pipeline-1 .tga-pipeline-wide{grid-column:auto}#tga-pipeline-1 input,#tga-pipeline-1 select{font-size:16px}#tga-pipeline-1 .tga-pipeline-actions{display:grid;grid-template-columns:1fr}#tga-pipeline-1 .tga-pipeline-button,#tga-pipeline-1 .tga-pipeline-cta a{width:100%}#tga-pipeline-1 .tga-pipeline-cta{padding:28px 22px}}\n        <\/style>\n\n        <section class=\"tga-pipeline-hero\">\n            <p class=\"tga-pipeline-eyebrow\">Know Whether Your Pipeline Can Support the Target<\/p>\n            <h1 id=\"tga-pipeline-1-title\">Sales Pipeline Coverage Calculator<\/h1>\n            <p>Turn stage values and probabilities into weighted coverage, a revenue gap, and the additional opportunity value your team needs to create.<\/p>\n        <\/section>\n\n        <section class=\"tga-pipeline-workspace\" aria-label=\"Sales pipeline coverage workspace\">\n            <form class=\"tga-pipeline-panel tga-pipeline-form\" novalidate>\n                <h2>Enter Target and Pipeline Values<\/h2>\n                <p class=\"tga-pipeline-intro\">Use one currency throughout and enter the open opportunity value currently held in each stage.<\/p>\n                <div class=\"tga-pipeline-grid\">\n                    <div><label for=\"tga-pipeline-1-currency\">Currency<\/label><select id=\"tga-pipeline-1-currency\" 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>\n                    <div><label for=\"tga-pipeline-1-target\">Revenue target<\/label><input id=\"tga-pipeline-1-target\" data-field=\"target\" type=\"number\" value=\"200000\" min=\"0.01\" max=\"1000000000000\" step=\"0.01\" required><\/div>\n                    <div><label for=\"tga-pipeline-1-won\">Closed-won revenue<\/label><input id=\"tga-pipeline-1-won\" data-field=\"won\" type=\"number\" value=\"50000\" min=\"0\" max=\"1000000000000\" step=\"0.01\" required><\/div>\n                    <div><label for=\"tga-pipeline-1-win-rate\">Assumed win rate for new pipeline (%)<\/label><input id=\"tga-pipeline-1-win-rate\" data-field=\"winRate\" type=\"number\" value=\"30\" min=\"0.01\" max=\"100\" step=\"0.01\" required><\/div>\n                    <div><label for=\"tga-pipeline-1-deal\">Average opportunity value<\/label><input id=\"tga-pipeline-1-deal\" data-field=\"dealValue\" type=\"number\" value=\"20000\" min=\"0.01\" max=\"1000000000000\" step=\"0.01\" required><\/div>\n                    <div><label for=\"tga-pipeline-1-days\">Days remaining in target period<\/label><input id=\"tga-pipeline-1-days\" data-field=\"days\" type=\"number\" value=\"60\" min=\"1\" max=\"3650\" step=\"1\" required><\/div>\n                <\/div>\n                <div class=\"tga-pipeline-table-wrap\">\n                    <table>\n                        <thead><tr><th>Pipeline stage<\/th><th>Open value<\/th><th>Probability (%)<\/th><\/tr><\/thead>\n                        <tbody>\n                                                            <tr data-stage-row>\n                                    <td><input aria-label=\"Stage name\" data-stage-name type=\"text\" value=\"Discovery\" maxlength=\"60\"><\/td>\n                                    <td><input aria-label=\"Open opportunity value\" data-stage-value type=\"number\" value=\"100000\" min=\"0\" max=\"1000000000000\" step=\"0.01\"><\/td>\n                                    <td><input aria-label=\"Stage probability\" data-stage-probability type=\"number\" value=\"20\" min=\"0\" max=\"100\" step=\"0.01\"><\/td>\n                                <\/tr>\n                                                            <tr data-stage-row>\n                                    <td><input aria-label=\"Stage name\" data-stage-name type=\"text\" value=\"Qualified\" maxlength=\"60\"><\/td>\n                                    <td><input aria-label=\"Open opportunity value\" data-stage-value type=\"number\" value=\"80000\" min=\"0\" max=\"1000000000000\" step=\"0.01\"><\/td>\n                                    <td><input aria-label=\"Stage probability\" data-stage-probability type=\"number\" value=\"40\" min=\"0\" max=\"100\" step=\"0.01\"><\/td>\n                                <\/tr>\n                                                            <tr data-stage-row>\n                                    <td><input aria-label=\"Stage name\" data-stage-name type=\"text\" value=\"Proposal\" maxlength=\"60\"><\/td>\n                                    <td><input aria-label=\"Open opportunity value\" data-stage-value type=\"number\" value=\"50000\" min=\"0\" max=\"1000000000000\" step=\"0.01\"><\/td>\n                                    <td><input aria-label=\"Stage probability\" data-stage-probability type=\"number\" value=\"60\" min=\"0\" max=\"100\" step=\"0.01\"><\/td>\n                                <\/tr>\n                                                            <tr data-stage-row>\n                                    <td><input aria-label=\"Stage name\" data-stage-name type=\"text\" value=\"Negotiation\" maxlength=\"60\"><\/td>\n                                    <td><input aria-label=\"Open opportunity value\" data-stage-value type=\"number\" value=\"30000\" min=\"0\" max=\"1000000000000\" step=\"0.01\"><\/td>\n                                    <td><input aria-label=\"Stage probability\" data-stage-probability type=\"number\" value=\"80\" min=\"0\" max=\"100\" step=\"0.01\"><\/td>\n                                <\/tr>\n                                                    <\/tbody>\n                    <\/table>\n                <\/div>\n                <p class=\"tga-pipeline-error\" role=\"alert\" aria-live=\"assertive\">\n                    <span data-error=\"invalid\" hidden>Enter valid values within the displayed limits. Target, win rate, average opportunity value, and whole-number days must be greater than zero.<\/span>\n                    <span data-error=\"won\" hidden>Closed-won revenue cannot exceed the revenue target.<\/span>\n                    <span data-error=\"stage\" hidden>Each pipeline stage needs a name, a non-negative value, and a probability from 0% to 100%.<\/span>\n                <\/p>\n                <div class=\"tga-pipeline-actions\">\n                    <button class=\"tga-pipeline-button tga-pipeline-primary\" type=\"submit\">Calculate Pipeline Coverage<\/button>\n                    <button class=\"tga-pipeline-button\" data-action=\"reset\" type=\"button\">Reset<\/button>\n                <\/div>\n            <\/form>\n\n            <section class=\"tga-pipeline-panel tga-pipeline-result\" aria-labelledby=\"tga-pipeline-1-result-title\">\n                <h2 id=\"tga-pipeline-1-result-title\">Pipeline Coverage Plan<\/h2>\n                <p class=\"tga-pipeline-intro\">Compare nominal pipeline coverage with probability-weighted support for the remaining target.<\/p>\n                <div class=\"tga-pipeline-empty\" data-empty>\n                    Enter the target and current stage values, then select Calculate Pipeline Coverage.\n                    <span class=\"tga-pipeline-status\" data-reset-status hidden>The example pipeline has been restored.<\/span>\n                <\/div>\n                <div data-output hidden>\n                    <div class=\"tga-pipeline-metrics\">\n                        <div class=\"tga-pipeline-metric\"><span>Remaining target<\/span><strong data-result=\"remaining\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Open pipeline value<\/span><strong data-result=\"open\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Weighted pipeline value<\/span><strong data-result=\"weighted\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Unweighted coverage<\/span><strong data-result=\"coverage\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Weighted coverage<\/span><strong data-result=\"weightedCoverage\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Weighted revenue gap<\/span><strong data-result=\"gap\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Additional pipeline needed<\/span><strong data-result=\"additional\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Approximate new opportunities<\/span><strong data-result=\"opportunities\">\u2014<\/strong><\/div>\n                        <div class=\"tga-pipeline-metric\"><span>Weekly pipeline creation target<\/span><strong data-result=\"weekly\">\u2014<\/strong><\/div>\n                    <\/div>\n                    <div class=\"tga-pipeline-callout\" data-callout><\/div>\n                    <div class=\"tga-pipeline-actions\">\n                        <button class=\"tga-pipeline-button\" data-action=\"copy\" type=\"button\">Copy Summary<\/button>\n                        <button class=\"tga-pipeline-button\" data-action=\"download\" type=\"button\">Download CSV<\/button>\n                    <\/div>\n                    <p class=\"tga-pipeline-status\" role=\"status\" aria-live=\"polite\">\n                        <span data-status=\"calculated\" hidden>Pipeline coverage calculated.<\/span>\n                        <span data-status=\"copied\" hidden>Summary copied.<\/span>\n                        <span data-status=\"copyFailed\" hidden>Copy failed. Select and copy the result manually.<\/span>\n                        <span data-status=\"downloaded\" hidden>CSV downloaded.<\/span>\n                    <\/p>\n                <\/div>\n            <\/section>\n        <\/section>\n\n        <section class=\"tga-pipeline-section\">\n            <h2>How to Read the Coverage Plan<\/h2>\n            <p>Use the ratios as transparent planning signals and review stage values, probabilities, close dates, and deal quality with your team.<\/p>\n            <div class=\"tga-pipeline-guide\">\n                <article><h3>Nominal Coverage<\/h3><p>Open pipeline divided by the remaining target shows how much opportunity value is available before probabilities are applied.<\/p><\/article>\n                <article><h3>Weighted Support<\/h3><p>Every stage contributes its open value multiplied by its probability. The sum is compared with the remaining target.<\/p><\/article>\n                <article><h3>Creation Requirement<\/h3><p>The weighted gap is converted into new pipeline using your assumed win rate, average opportunity value, and days remaining.<\/p><\/article>\n            <\/div>\n        <\/section>\n\n        <section class=\"tga-pipeline-cta\">\n            <div><h2>Build a More Connected International Sales Workflow<\/h2><p>Explore TradeGo AI services for buyer research, sales preparation, trade documentation, risk review, and market visibility.<\/p><\/div>\n            <a href=\"https:\/\/tradegoai.app\/vi\/services\/\">Explore Services \u2192<\/a>\n        <\/section>\n\n        <section class=\"tga-pipeline-section\">\n            <h2>Frequently Asked Questions<\/h2>\n            <div class=\"tga-pipeline-faq\">\n                                    <details><summary>What is pipeline coverage?<\/summary><p>Pipeline coverage compares open opportunity value with the revenue target that remains after closed-won revenue. A 3\u00d7 unweighted coverage ratio means the open pipeline is three times the remaining target.<\/p><\/details>\n                                    <details><summary>How is weighted pipeline value calculated?<\/summary><p>Each stage value is multiplied by its probability, then the stage contributions are added. The result is a planning estimate, not a promise that the revenue will close.<\/p><\/details>\n                                    <details><summary>What does additional pipeline needed mean?<\/summary><p>The calculator divides the weighted revenue gap by your assumed win rate for newly created opportunities. It estimates the new unweighted opportunity value needed to cover that gap.<\/p><\/details>\n                                    <details><summary>Should stage probability equal my overall win rate?<\/summary><p>Not necessarily. Stage probabilities describe the current open pipeline, while the assumed new-opportunity win rate converts a remaining weighted gap into the new pipeline value to create.<\/p><\/details>\n                                    <details><summary>Can this replace a CRM forecast?<\/summary><p>Use it as a transparent planning worksheet. It does not model opportunity age, close-date slippage, deal dependencies, rep capacity, seasonality, or the forecasting rules in your CRM.<\/p><\/details>\n                                    <details><summary>Are my pipeline values saved?<\/summary><p>No. The calculation runs in your browser and the values are not saved by this tool. Reset restores the example pipeline.<\/p><\/details>\n                            <\/div>\n        <\/section>\n\n        <section class=\"tga-pipeline-section\">\n            <h2>Related Free Tools<\/h2>\n            <p>Continue from pipeline planning into lead cleanup, CRM preparation, and transparent lead prioritization.<\/p>\n            <div class=\"tga-pipeline-related\">\n                <a href=\"https:\/\/tradegoai.app\/vi\/tools\/lead-list-cleaner\/\"><strong>Lead List Cleaner<\/strong><span>Clean, normalize, and deduplicate pasted lead data before outreach or CRM import.<\/span><\/a>\n                <a href=\"https:\/\/tradegoai.app\/vi\/tools\/crm-import-formatter\/\"><strong>CRM Import Formatter<\/strong><span>Map and prepare lead fields for review before importing them into a CRM.<\/span><\/a>\n                <a href=\"https:\/\/tradegoai.app\/vi\/tools\/rule-based-lead-scorecard\/\"><strong>Rule-Based Lead Scorecard<\/strong><span>Apply visible qualification rules to sort leads into practical follow-up priorities.<\/span><\/a>\n            <\/div>\n        <\/section>\n\n        <div data-i18n hidden>\n            <span data-key=\"calloutLead\">Planning signal:<\/span>\n            <span data-key=\"covered\">The weighted pipeline currently supports the remaining target.<\/span>\n            <span data-key=\"shortfall\">The weighted pipeline is below the remaining target. Use the additional-pipeline estimate as a creation goal, then review deal quality and timing.<\/span>\n            <span data-key=\"title\">Sales Pipeline Coverage Plan<\/span>\n            <span data-key=\"currency\">Currency<\/span><span data-key=\"target\">Revenue target<\/span><span data-key=\"won\">Closed-won revenue<\/span>\n            <span data-key=\"remaining\">Remaining target<\/span><span data-key=\"open\">Open pipeline value<\/span><span data-key=\"weighted\">Weighted pipeline value<\/span>\n            <span data-key=\"coverage\">Unweighted coverage<\/span><span data-key=\"weightedCoverage\">Weighted coverage<\/span>\n            <span data-key=\"gap\">Weighted revenue gap<\/span><span data-key=\"additional\">Additional pipeline needed<\/span>\n            <span data-key=\"opportunities\">Approximate new opportunities<\/span><span data-key=\"weekly\">Weekly pipeline creation target<\/span>\n            <span data-key=\"stage\">Pipeline stage<\/span><span data-key=\"stageValue\">Open value<\/span><span data-key=\"probability\">Probability<\/span>\n        <\/div>\n\n        <script>\n        (function(){\n            'use strict';\n            const root=document.getElementById(\"tga-pipeline-1\");if(!root||root.dataset.ready==='1')return;root.dataset.ready='1';\n            const form=root.querySelector('.tga-pipeline-form'),empty=root.querySelector('[data-empty]'),output=root.querySelector('[data-output]'),callout=root.querySelector('[data-callout]');\n            const defaults={currency:'USD',target:'200000',won:'50000',winRate:'30',dealValue:'20000',days:'60'};\n            const defaultStages=[['Discovery','100000','20'],['Qualified','80000','40'],['Proposal','50000','60'],['Negotiation','30000','80']];\n            const fields={},results={},labels={};root.querySelectorAll('[data-field]').forEach(n=>fields[n.dataset.field]=n);root.querySelectorAll('[data-result]').forEach(n=>results[n.dataset.result]=n);\n            function loadLabels(){root.querySelectorAll('[data-i18n] [data-key]').forEach(n=>labels[n.dataset.key]=n.textContent.trim())}loadLabels();\n            let current=null;\n            function clear(){root.querySelectorAll('[data-error],[data-status],[data-reset-status]').forEach(n=>n.hidden=true)}\n            function message(type,key){clear();const n=root.querySelector(`[data-${type}=\"${key}\"]`);if(n)n.hidden=false}\n            function number(node){return Number(node.value)}\n            function read(){\n                const data={currency:fields.currency.value,target:number(fields.target),won:number(fields.won),winRate:number(fields.winRate),dealValue:number(fields.dealValue),days:number(fields.days),stages:[]};\n                if(!Number.isFinite(data.target)||data.target<=0||data.target>1e12||!Number.isFinite(data.won)||data.won<0||data.won>1e12||!Number.isFinite(data.winRate)||data.winRate<=0||data.winRate>100||!Number.isFinite(data.dealValue)||data.dealValue<=0||data.dealValue>1e12||!Number.isInteger(data.days)||data.days<1||data.days>3650)throw new Error('invalid');\n                if(data.won>data.target)throw new Error('won');\n                root.querySelectorAll('[data-stage-row]').forEach(row=>{const stage={name:row.querySelector('[data-stage-name]').value.trim(),value:number(row.querySelector('[data-stage-value]')),probability:number(row.querySelector('[data-stage-probability]'))};if(!stage.name||!Number.isFinite(stage.value)||stage.value<0||stage.value>1e12||!Number.isFinite(stage.probability)||stage.probability<0||stage.probability>100)throw new Error('stage');data.stages.push(stage)});\n                return data;\n            }\n            function calculate(data){\n                const remaining=data.target-data.won,open=data.stages.reduce((s,x)=>s+x.value,0),weighted=data.stages.reduce((s,x)=>s+x.value*x.probability\/100,0);\n                const coverage=remaining===0?null:open\/remaining,weightedCoverage=remaining===0?null:weighted\/remaining,gap=Math.max(0,remaining-weighted);\n                const additional=gap\/(data.winRate\/100),opportunities=additional===0?0:Math.ceil(additional\/data.dealValue),weeks=data.days\/7,weekly=additional\/weeks;\n                return {input:data,remaining,open,weighted,coverage,weightedCoverage,gap,additional,opportunities,weekly};\n            }\n            function money(value,currency){try{return new Intl.NumberFormat(undefined,{style:'currency',currency,currencyDisplay:'code',minimumFractionDigits:2,maximumFractionDigits:2}).format(value)}catch(e){return currency+' '+value.toFixed(2)}}\n            function ratio(value){return value===null?'Target already met':new Intl.NumberFormat(undefined,{minimumFractionDigits:2,maximumFractionDigits:2}).format(value)+'\u00d7'}\n            function render(r){const c=r.input.currency;results.remaining.textContent=money(r.remaining,c);results.open.textContent=money(r.open,c);results.weighted.textContent=money(r.weighted,c);results.coverage.textContent=ratio(r.coverage);results.weightedCoverage.textContent=ratio(r.weightedCoverage);results.gap.textContent=money(r.gap,c);results.additional.textContent=money(r.additional,c);results.opportunities.textContent=String(r.opportunities);results.weekly.textContent=money(r.weekly,c);callout.textContent='';const strong=document.createElement('strong');strong.textContent=labels.calloutLead+' ';callout.appendChild(strong);callout.appendChild(document.createTextNode(r.gap===0?labels.covered:labels.shortfall));empty.hidden=true;output.hidden=false;message('status','calculated')}\n            function lines(r){const c=r.input.currency,rows=[[labels.currency,c],[labels.target,money(r.input.target,c)],[labels.won,money(r.input.won,c)],[labels.remaining,money(r.remaining,c)],[labels.open,money(r.open,c)],[labels.weighted,money(r.weighted,c)],[labels.coverage,ratio(r.coverage)],[labels.weightedCoverage,ratio(r.weightedCoverage)],[labels.gap,money(r.gap,c)],[labels.additional,money(r.additional,c)],[labels.opportunities,r.opportunities],[labels.weekly,money(r.weekly,c)]];r.input.stages.forEach(s=>rows.push([labels.stage+' \u2014 '+s.name,money(s.value,c)+' @ '+s.probability+'%']));return {rows,text:[labels.title].concat(rows.map(x=>x[0]+': '+x[1])).join('\\n')}}\n            function csvCell(v){let s=String(v);if(\/^[=+\\-@]\/.test(s))s=\"'\"+s;return '\"'+s.replace(\/\"\/g,'\"\"')+'\"'}\n            async function copy(){if(!current)return;try{const text=lines(current).text;if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(text);else{const area=document.createElement('textarea');area.value=text;area.style.position='fixed';area.style.opacity='0';document.body.appendChild(area);area.select();if(!document.execCommand('copy'))throw new Error();area.remove()}message('status','copied')}catch(e){message('status','copyFailed')}}\n            function download(){if(!current)return;const rows=[['Metric','Value']].concat(lines(current).rows),csv='\\uFEFF'+rows.map(r=>r.map(csvCell).join(',')).join('\\r\\n'),blob=new Blob([csv],{type:'text\/csv;charset=utf-8'}),url=URL.createObjectURL(blob),a=document.createElement('a');a.href=url;a.download='sales-pipeline-coverage-plan.csv';document.body.appendChild(a);a.click();a.remove();setTimeout(()=>URL.revokeObjectURL(url),1000);message('status','downloaded')}\n            function reset(){Object.keys(defaults).forEach(k=>fields[k].value=defaults[k]);root.querySelectorAll('[data-stage-row]').forEach((row,i)=>{row.querySelector('[data-stage-name]').value=defaultStages[i][0];row.querySelector('[data-stage-value]').value=defaultStages[i][1];row.querySelector('[data-stage-probability]').value=defaultStages[i][2]});current=null;clear();output.hidden=true;empty.hidden=false;root.querySelector('[data-reset-status]').hidden=false;fields.target.focus()}\n            form.addEventListener('submit',e=>{e.preventDefault();loadLabels();clear();try{current=calculate(read());render(current)}catch(err){current=null;output.hidden=true;empty.hidden=false;message('error',err.message||'invalid')}});\n            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        })();\n        <\/script>\n    <\/main>\n    \n","protected":false},"excerpt":{"rendered":"<p>T\u00ednh to\u00e1n gi\u00e1 tr\u1ecb quy tr\u00ecnh b\u00e1n h\u00e0ng c\u00f3 tr\u1ecdng s\u1ed1, m\u1ee9c \u0111\u1ed9 bao ph\u1ee7 m\u1ee5c ti\u00eau, kho\u1ea3ng thi\u1ebfu h\u1ee5t doanh thu v\u00e0 gi\u00e1 tr\u1ecb c\u01a1 h\u1ed9i b\u1ed5 sung c\u1ea7n thi\u1ebft \u0111\u1ec3 h\u1ed7 tr\u1ee3 m\u1ee5c ti\u00eau b\u00e1n h\u00e0ng c\u1ee7a b\u1ea1n.<\/p>","protected":false},"featured_media":9858,"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":[47,32],"class_list":["post-9856","tools","type-tools","status-publish","has-post-thumbnail","hentry","tool_categories-lead-management-tools","tool_categories-sales-tools"],"spectra_custom_meta":{"spectra_gs_classes":["[\"\"]"],"rank_math_internal_links_processed":["1"],"wp_statistics_words_count":["1"],"_thumbnail_id":["9858"],"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\/sales-pipeline-coverage-calculator-social-share.webp"],"rank_math_facebook_image_id":["9858"],"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:34:\"Sales Pipeline Coverage Calculator\";s:11:\"description\";s:139:\"Calculate weighted sales pipeline value, target coverage, revenue gap, and the additional opportunity value needed to support a sales goal.\";s:3:\"url\";s:63:\"https:\/\/tradegoai.app\/tools\/sales-pipeline-coverage-calculator\/\";s:5:\"image\";s:101:\"https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-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":["1790742078"],"_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:\"1791813617\";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-9856.css"]},"uagb_featured_image_src":{"full":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share.webp",1200,630,false],"thumbnail":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share-150x150.webp",150,150,true],"medium":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share-300x158.webp",300,158,true],"medium_large":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share-768x403.webp",768,403,true],"large":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share-1024x538.webp",1024,538,true],"1536x1536":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share.webp",1200,630,false],"2048x2048":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share.webp",1200,630,false],"trp-custom-language-flag":["https:\/\/tradegoai.app\/wp-content\/uploads\/2026\/07\/sales-pipeline-coverage-calculator-social-share-18x9.webp",18,9,true]},"uagb_author_info":{"display_name":"xiaoxi99202@gmail.com","author_link":"https:\/\/tradegoai.app\/vi\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"Calculate weighted pipeline value, target coverage, revenue gap, and the additional opportunity value needed to support your sales goal.","_links":{"self":[{"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/tools\/9856","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/tools"}],"about":[{"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/types\/tools"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/media\/9858"}],"wp:attachment":[{"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/media?parent=9856"}],"wp:term":[{"taxonomy":"tool_categories","embeddable":true,"href":"https:\/\/tradegoai.app\/vi\/wp-json\/wp\/v2\/tool_categories?post=9856"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}