{"id":100311,"date":"2026-02-15T20:20:00","date_gmt":"2026-02-15T20:20:00","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100311"},"modified":"2026-02-15T20:20:00","modified_gmt":"2026-02-15T20:20:00","slug":"wheel-balancing-weights","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/wheel-balancing-weights\/","title":{"rendered":"Wheel Balancing Weights Calculator | Clip-On &#038; Adhesive"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Wheel Balancing Weights Calculator\",\"alternateName\":[\"Tire Balancing Calculator\",\"Wheel Weight Calculator\",\"Rim Balance Calculator\"],\"description\":\"Free online calculator for wheel balancing weights. Enter measured unbalance and rim diameter to find the correct clip-on or adhesive balancing weight in standard 5 g increments.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/wheel-balancing-weights\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2026-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Clip-on and adhesive weight types\",\"Standard 5 g increment rounding\",\"Inner and outer plane support\",\"Common rim diameters 14\u201320 inch\",\"URL parameter sharing\",\"Calculation history\"],\"keywords\":\"wheel balancing, balancing weights, clip-on, adhesive, tire balance, rim diameter\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"How does wheel balancing work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Wheel balancing compensates for uneven mass distribution in a tire-wheel assembly. A balancing machine spins the wheel and measures the unbalance in g\u00b7mm at each correction plane. Weights are then placed at specific locations on the rim to counteract the heavy spot, reducing vibration at speed.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between clip-on and adhesive weights?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Clip-on weights attach to the rim flange with a metal clip and are used on steel wheels and some alloy wheels. Adhesive (stick-on) weights use a peel-and-stick backing and are placed inside the rim barrel, preferred for alloy wheels to avoid visible weights and cosmetic damage.\"}},\n{\"@type\":\"Question\",\"name\":\"How much wheel unbalance is acceptable?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For passenger cars, residual unbalance below 5 g per plane is generally acceptable. Most wheel balancing machines resolve to 1\u20135 g. Unbalance above 10\u201315 g per plane usually causes noticeable steering vibration at highway speeds (80\u2013120 km\/h).\"}},\n{\"@type\":\"Question\",\"name\":\"Why are two planes used for wheel balancing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dynamic balancing requires two correction planes (inner and outer) because unbalance can create both a static force and a couple (moment). A single plane correction only addresses static unbalance. Two-plane correction eliminates both static and dynamic unbalance for smooth operation.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between static and dynamic balancing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Static balancing corrects unbalance in one plane \u2014 the wheel's center of gravity is shifted back to the rotation axis. Dynamic balancing corrects in two planes (inner and outer) to eliminate both force and couple unbalance. Dynamic balancing is standard for modern vehicles as it provides complete correction.\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wheel Balancing Weights Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/wheel-balancing-weights\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\n\n\/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n.vc-unit-bar { display:flex; border-bottom:1px solid var(--vc-border-light); background:var(--vc-surface-alt); }\n.vc-unit-btn { flex:1; padding:12px; border:none; background:transparent; font-family:var(--vc-font); font-size:13px; font-weight:600; color:var(--vc-ink-muted); cursor:pointer; transition:all 0.2s; position:relative; }\n.vc-unit-btn:hover { color:var(--vc-ink-secondary); background:rgba(200,90,42,0.04); }\n.vc-unit-btn.vc-active { color:var(--vc-accent); background:var(--vc-surface); }\n.vc-unit-btn.vc-active::after { content:''; position:absolute; bottom:-1px; left:16px; right:16px; height:2px; background:var(--vc-accent); border-radius:1px 1px 0 0; }\n\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.vc-results.vc-visible { max-height:2000px; padding:24px; }\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-promo-text strong { color:var(--vc-ink); }\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-wheel-balancing\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Wheel Balancing Weights Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate the required balancing weight for vehicle wheels. Enter measured unbalance and rim diameter to find the correct clip-on or adhesive weight.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Clip-On &amp; Adhesive<\/span>\n        <span class=\"vc-badge\">5 g Increments<\/span>\n        <span class=\"vc-badge\">Inner \/ Outer Plane<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\n<div class=\"vc-card\">\n    <div class=\"vc-unit-bar\">\n        <button type=\"button\" class=\"vc-unit-btn vc-active\" data-plane=\"single\">Single Plane<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-plane=\"dual\">Dual Plane (Inner + Outer)<\/button>\n    <\/div>\n\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <!-- Single-plane fields (always visible) -->\n            <div class=\"vc-field\" id=\"vc-field-unbalance\">\n                <label class=\"vc-label\" for=\"vc-unbalance\">Measured Unbalance <span class=\"vc-label-hint\">(g\u00b7mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-unbalance\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 1500\" value=\"1500\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-rim\">Rim Diameter <span class=\"vc-label-hint\">(inch)<\/span><\/label>\n                <select class=\"vc-select\" id=\"vc-rim\">\n                    <option value=\"14\">14\u2033<\/option>\n                    <option value=\"15\">15\u2033<\/option>\n                    <option value=\"16\">16\u2033<\/option>\n                    <option value=\"17\" selected>17\u2033<\/option>\n                    <option value=\"18\">18\u2033<\/option>\n                    <option value=\"19\">19\u2033<\/option>\n                    <option value=\"20\">20\u2033<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-wtype\">Weight Type<\/label>\n                <select class=\"vc-select\" id=\"vc-wtype\">\n                    <option value=\"clip-steel\">Clip-on steel<\/option>\n                    <option value=\"clip-zinc\">Clip-on zinc<\/option>\n                    <option value=\"adhesive-steel\">Adhesive steel<\/option>\n                    <option value=\"adhesive-zinc\" selected>Adhesive zinc<\/option>\n                    <option value=\"lead-clip\">Lead clip-on<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-location\">\n                <label class=\"vc-label\" for=\"vc-location\">Correction Location<\/label>\n                <select class=\"vc-select\" id=\"vc-location\">\n                    <option value=\"outer\" selected>Outer plane<\/option>\n                    <option value=\"inner\">Inner plane<\/option>\n                <\/select>\n            <\/div>\n\n            <!-- Dual-plane fields (hidden by default) -->\n            <div class=\"vc-field\" id=\"vc-field-unbal-inner\" style=\"display:none;\">\n                <label class=\"vc-label\" for=\"vc-unbal-inner\">Inner Plane Unbalance <span class=\"vc-label-hint\">(g\u00b7mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-unbal-inner\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 800\" value=\"\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-unbal-outer\" style=\"display:none;\">\n                <label class=\"vc-label\" for=\"vc-unbal-outer\">Outer Plane Unbalance <span class=\"vc-label-hint\">(g\u00b7mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-unbal-outer\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 700\" value=\"\">\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-u=\"1500\" data-r=\"17\">1500 g\u00b7mm on 17\u2033 rim<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-u=\"800\" data-r=\"15\">800 g\u00b7mm on 15\u2033 rim<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-u=\"2500\" data-r=\"19\">2500 g\u00b7mm on 19\u2033 rim<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\" id=\"vc-result-grid\">\n            <!-- Populated by JS -->\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Reference -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Correction Weight Formula<\/h3>\n            <p>The correction mass is determined from the measured unbalance and the correction radius (distance from the wheel center to the weight placement):<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>m<sub>correction<\/sub><\/strong> \u2014 required weight (grams)<\/li>\n                <li><strong>U<\/strong> \u2014 measured unbalance (g\u00b7mm)<\/li>\n                <li><strong>R<\/strong> \u2014 correction radius (mm)<\/li>\n            <\/ul>\n\n            <h3>Correction Radius from Rim Diameter<\/h3>\n            <p>The correction radius is approximated as half the rim diameter converted to millimeters:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <p>This assumes the weight is placed at the rim edge (flange). For adhesive weights placed further inboard, the effective radius may be smaller.<\/p>\n\n            <h3>Standard Weight Increments<\/h3>\n            <p>Wheel balancing weights come in standard 5 g increments. The calculated weight is rounded to the nearest available size:<\/p>\n            <table class=\"vc-table\">\n                <thead><tr><th>Standard Weights (grams)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Weight Types<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Type<\/th><th>Material<\/th><th>Typical Use<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Clip-on steel<\/td><td>Steel<\/td><td>Steel wheels, some alloy rims with flanges<\/td><\/tr>\n                    <tr><td>Clip-on zinc<\/td><td>Zinc alloy<\/td><td>Steel\/alloy wheels, lead-free alternative<\/td><\/tr>\n                    <tr><td>Adhesive steel<\/td><td>Steel<\/td><td>Alloy wheels, hidden placement inside barrel<\/td><\/tr>\n                    <tr><td>Adhesive zinc<\/td><td>Zinc alloy<\/td><td>Alloy wheels, lead-free, hidden placement<\/td><\/tr>\n                    <tr><td>Lead clip-on<\/td><td>Lead<\/td><td>Legacy \/ classic vehicles (being phased out)<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 17\u2033 alloy wheel<\/div>\n                <p><strong>Given:<\/strong> Measured unbalance = 1500 g\u00b7mm, Rim diameter = 17\u2033<\/p>\n                <p>R = 17 \u00d7 25.4 \/ 2 = <strong>215.9 mm<\/strong><\/p>\n                <p>m = 1500 \/ 215.9 = <strong>6.95 g<\/strong><\/p>\n                <p>Nearest standard weight: <strong>5 g<\/strong> (round down) or <strong>10 g<\/strong> (round up)<\/p>\n                <p>Best match (nearest): <strong>5 g<\/strong><\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> Adhesive weights placed inside the rim barrel have a slightly smaller correction radius than clip-on weights at the flange. For precision, measure the actual placement radius. This calculator uses the rim edge as an approximation.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 1940)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/trial-weight-calculator\/\">Trial Weight Calculator<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/pressure-unit-converter\/\">Pressure Unit Converter<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-displacement\/\">Vibration Displacement<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments and software. Achieve precise wheel and rotor balancing on-site. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<!-- Footer -->\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132026 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Wheel balancing weight calculator. Last updated: February 2026<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function() {\n    'use strict';\n\n    var SLUG = 'wheel-balancing-weights';\n    var planeMode = 'single'; \/\/ 'single' or 'dual'\n\n    var STANDARD_WEIGHTS = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60];\n\n    function $(id) { return document.getElementById(id); }\n    function fmt(n, d) { if(isNaN(n)) return '\u2014'; var f=n.toFixed(d===undefined?2:d); return f.replace(\/(\\.\\d*?)0+$\/,'$1').replace(\/\\.$\/,''); }\n\n    function nearestStandard(g) {\n        if (g <= 0) return 0;\n        var best = STANDARD_WEIGHTS[0];\n        var bestDiff = Math.abs(g - best);\n        for (var i = 1; i < STANDARD_WEIGHTS.length; i++) {\n            var diff = Math.abs(g - STANDARD_WEIGHTS[i]);\n            if (diff < bestDiff) { best = STANDARD_WEIGHTS[i]; bestDiff = diff; }\n        }\n        \/\/ If weight exceeds 60 g, round to nearest 5\n        if (g > 60) {\n            best = Math.round(g \/ 5) * 5;\n            if (best < 5) best = 5;\n        }\n        return best;\n    }\n\n    function correctionRadius(rimInch) {\n        return rimInch * 25.4 \/ 2;\n    }\n\n    function buildResultCard(label, valueHtml, isPrimary) {\n        return '<div class=\"vc-rcard' + (isPrimary ? ' vc-rcard-primary' : '') + '\">' +\n            '<div class=\"vc-rcard-label\">' + label + '<\/div>' +\n            '<div class=\"vc-rcard-value\">' + valueHtml + '<\/div><\/div>';\n    }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var rim = parseFloat($('vc-rim').value);\n        var R = correctionRadius(rim);\n        var wtype = $('vc-wtype').value;\n        var wtypeLabel = $('vc-wtype').options[$('vc-wtype').selectedIndex].text;\n        var grid = $('vc-result-grid');\n\n        if (planeMode === 'single') {\n            var U = parseFloat($('vc-unbalance').value);\n            if (!U || U <= 0 || !rim) {\n                $('vc-results').classList.remove('vc-visible');\n                return;\n            }\n            var mCorr = U \/ R;\n            var mStd = nearestStandard(mCorr);\n            var loc = $('vc-location').options[$('vc-location').selectedIndex].text;\n\n            grid.innerHTML =\n                buildResultCard('Required Correction Weight', fmt(mCorr, 2) + ' <span class=\"vc-rcard-unit\">g<\/span>', true) +\n                buildResultCard('Nearest Standard Weight', mStd + ' <span class=\"vc-rcard-unit\">g<\/span>', false) +\n                buildResultCard('Correction Radius', fmt(R, 1) + ' <span class=\"vc-rcard-unit\">mm<\/span>', false) +\n                buildResultCard('Location', loc, false) +\n                buildResultCard('Weight Type', wtypeLabel, false) +\n                buildResultCard('Rim Diameter', rim + '\u2033 <span class=\"vc-rcard-unit\">(' + fmt(rim * 25.4, 0) + ' mm)<\/span>', false);\n\n            $('vc-results').classList.add('vc-visible');\n\n            \/\/ URL params\n            var u = new URL(window.location);\n            u.searchParams.set('unbalance', U);\n            u.searchParams.set('rim', rim);\n            u.searchParams.set('wtype', wtype);\n            u.searchParams.set('location', $('vc-location').value);\n            u.searchParams.set('mode', 'single');\n            history.replaceState(null, '', u.toString());\n\n            saveHistory({\n                unbalance: U, rim: rim, wtype: wtype, location: $('vc-location').value, mode: 'single',\n                _summary: U + ' g\u00b7mm on ' + rim + '\u2033 \u2192 ' + mStd + ' g ' + wtypeLabel\n            });\n\n        } else {\n            \/\/ Dual plane\n            var Ui = parseFloat($('vc-unbal-inner').value);\n            var Uo = parseFloat($('vc-unbal-outer').value);\n            if ((!Ui && Ui !== 0) && (!Uo && Uo !== 0)) { $('vc-results').classList.remove('vc-visible'); return; }\n            if (!Ui && Ui !== 0) Ui = 0;\n            if (!Uo && Uo !== 0) Uo = 0;\n            if (Ui <= 0 && Uo <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n\n            var mInner = Ui \/ R;\n            var mOuter = Uo \/ R;\n            var mStdInner = nearestStandard(mInner);\n            var mStdOuter = nearestStandard(mOuter);\n\n            var html = '';\n            if (Ui > 0) {\n                html += buildResultCard('Inner Plane \u2014 Correction Weight', fmt(mInner, 2) + ' <span class=\"vc-rcard-unit\">g<\/span>', true);\n                html += buildResultCard('Inner \u2014 Nearest Standard', mStdInner + ' <span class=\"vc-rcard-unit\">g<\/span>', false);\n            }\n            if (Uo > 0) {\n                html += buildResultCard('Outer Plane \u2014 Correction Weight', fmt(mOuter, 2) + ' <span class=\"vc-rcard-unit\">g<\/span>', Ui <= 0);\n                html += buildResultCard('Outer \u2014 Nearest Standard', mStdOuter + ' <span class=\"vc-rcard-unit\">g<\/span>', false);\n            }\n            html += buildResultCard('Correction Radius', fmt(R, 1) + ' <span class=\"vc-rcard-unit\">mm<\/span>', false);\n            html += buildResultCard('Weight Type', wtypeLabel, false);\n\n            grid.innerHTML = html;\n            $('vc-results').classList.add('vc-visible');\n\n            var u = new URL(window.location);\n            u.searchParams.set('inner', Ui);\n            u.searchParams.set('outer', Uo);\n            u.searchParams.set('rim', rim);\n            u.searchParams.set('wtype', wtype);\n            u.searchParams.set('mode', 'dual');\n            history.replaceState(null, '', u.toString());\n\n            saveHistory({\n                inner: Ui, outer: Uo, rim: rim, wtype: wtype, mode: 'dual',\n                _summary: 'Inner ' + mStdInner + ' g + Outer ' + mStdOuter + ' g on ' + rim + '\u2033'\n            });\n        }\n    }\n\n    \/* \u2500\u2500 PLANE MODE TOGGLE \u2500\u2500 *\/\n    var planeBtns = document.querySelectorAll('.vc-unit-btn');\n    planeBtns.forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            planeBtns.forEach(function(b) { b.classList.remove('vc-active'); });\n            this.classList.add('vc-active');\n            planeMode = this.getAttribute('data-plane');\n\n            var isSingle = planeMode === 'single';\n            $('vc-field-unbalance').style.display = isSingle ? '' : 'none';\n            $('vc-field-location').style.display = isSingle ? '' : 'none';\n            $('vc-field-unbal-inner').style.display = isSingle ? 'none' : '';\n            $('vc-field-unbal-outer').style.display = isSingle ? 'none' : '';\n\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            \/\/ Switch to single plane for presets\n            planeMode = 'single';\n            planeBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-plane') === 'single'); });\n            $('vc-field-unbalance').style.display = '';\n            $('vc-field-location').style.display = '';\n            $('vc-field-unbal-inner').style.display = 'none';\n            $('vc-field-unbal-outer').style.display = 'none';\n\n            $('vc-unbalance').value = this.getAttribute('data-u');\n            $('vc-rim').value = this.getAttribute('data-r');\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var cards = document.querySelectorAll('#vc-result-grid .vc-rcard');\n        var lines = ['Wheel Balancing Weight Calculation', '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501'];\n        cards.forEach(function(card) {\n            var label = card.querySelector('.vc-rcard-label').textContent;\n            var value = card.querySelector('.vc-rcard-value').textContent;\n            lines.push(label + ': ' + value);\n        });\n        lines.push('\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501');\n        lines.push('vibromera.eu\/calculators\/wheel-balancing-weights\/');\n        var text = lines.join('\\n');\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'How does wheel balancing work?', a: '<p>Wheel balancing compensates for uneven mass distribution in a tire-wheel assembly. A balancing machine spins the wheel at high speed and uses sensors to measure the unbalance magnitude and angle at each correction plane.<\/p><p>Weights are then placed at specific locations on the rim to counteract the heavy spot. This reduces vibration transmitted to the steering wheel and vehicle body at highway speeds.<\/p>' },\n        { q: 'What is the difference between clip-on and adhesive weights?', a: '<p><strong>Clip-on weights<\/strong> attach to the outer rim flange using a spring-steel clip. They are mainly used on steel wheels and some OEM alloy wheels with suitable flanges.<\/p><p><strong>Adhesive (stick-on) weights<\/strong> use a peel-and-stick tape backing and are placed on the inside of the rim barrel. They are preferred for alloy wheels because:<\/p><ul><li>No visible weights on the outside<\/li><li>No risk of scratching or damaging the rim finish<\/li><li>Better aesthetic appearance<\/li><\/ul>' },\n        { q: 'How much wheel unbalance is acceptable?', a: '<p>For passenger cars, residual unbalance below <strong>5 g per plane<\/strong> is generally acceptable. Most modern wheel balancing machines resolve to 1\u20135 g.<\/p><p>Unbalance above 10\u201315 g per plane usually causes noticeable steering vibration at highway speeds (80\u2013120 km\/h \/ 50\u201375 mph). Heavy trucks and commercial vehicles have higher tolerances due to larger tire mass.<\/p>' },\n        { q: 'Why are two correction planes needed?', a: '<p>A wheel can have two types of unbalance:<\/p><ul><li><strong>Static unbalance<\/strong> \u2014 heavy spot in one plane, causes up-and-down vibration<\/li><li><strong>Dynamic (couple) unbalance<\/strong> \u2014 offset heavy spots in different planes, causes side-to-side wobble<\/li><\/ul><p>Two-plane (dynamic) balancing corrects both components simultaneously. Single-plane correction only handles static unbalance and may leave a residual couple.<\/p>' },\n        { q: 'What is the difference between static and dynamic balancing?', a: '<p><strong>Static balancing<\/strong> corrects unbalance in one plane only. The wheel\\'s center of gravity is moved back to the rotation axis. This is simpler but incomplete for wide wheels.<\/p><p><strong>Dynamic balancing<\/strong> uses two correction planes (inner and outer) to eliminate both the force unbalance and the couple unbalance. This is the standard method for all modern passenger vehicles and provides the smoothest ride.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        if (p.get('mode') === 'dual') {\n            planeMode = 'dual';\n            planeBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-plane') === 'dual'); });\n            $('vc-field-unbalance').style.display = 'none';\n            $('vc-field-location').style.display = 'none';\n            $('vc-field-unbal-inner').style.display = '';\n            $('vc-field-unbal-outer').style.display = '';\n            if (p.get('inner')) $('vc-unbal-inner').value = p.get('inner');\n            if (p.get('outer')) $('vc-unbal-outer').value = p.get('outer');\n        } else {\n            if (p.get('unbalance')) $('vc-unbalance').value = p.get('unbalance');\n            if (p.get('location')) $('vc-location').value = p.get('location');\n        }\n        if (p.get('rim')) $('vc-rim').value = p.get('rim');\n        if (p.get('wtype')) $('vc-wtype').value = p.get('wtype');\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('m_{\\\\text{correction}} = \\\\frac{U}{R} \\\\quad [\\\\text{g}]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('R = \\\\frac{D_{\\\\text{rim}} \\\\times 25.4}{2} \\\\quad [\\\\text{mm}]', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Free online calculator for wheel balancing weights. Enter measured unbalance and rim diameter to find the correct clip-on or adhesive balancing weight in standard 5 g increments. Inner and outer plane support.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100311","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100311\/revisions"}],"predecessor-version":[{"id":100457,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100311\/revisions\/100457"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}