{"id":31839,"date":"2026-07-16T20:57:48","date_gmt":"2026-07-16T17:57:48","guid":{"rendered":"https:\/\/mapsly.com\/?page_id=31839"},"modified":"2026-07-16T20:58:10","modified_gmt":"2026-07-16T17:58:10","slug":"territory-balancer","status":"publish","type":"page","link":"https:\/\/mapsly.com\/tr\/territory-balancer\/","title":{"rendered":"B\u00f6lge Dengeleyici"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31839\" class=\"elementor elementor-31839\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb96d3a e-con-full e-flex e-con e-parent\" data-id=\"fb96d3a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-065dc3d elementor-widget elementor-widget-html\" data-id=\"065dc3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\n<style>\n\/* ============================================================= *\/\n\/*  Mapsly Territory Balancer  \u00b7  scoped under .mce-tb            *\/\n\/* ============================================================= *\/\n.mce-tb{\n  --purple:#6512BE; --purple-h:#5A19B8; --purple-lt:#F0EBFF; --purple-bd:#D4C0FF; --purple-mid:#9B51E0;\n  --ink:#1E2A3A; --head:#222D39; --body:#677294; --soft:#8585A0; --muted:#AEAEC0; --border:#E5E5EE;\n  --hero-bg:#F2F2F2; --sec-bg:#F7F7FB; --green:#16A34A; --green-lt:#F0FDF4; --green-bd:#BBF7D0;\n  --pink:#F472B6; --magenta:#D946EF;\n  --r1:#8B5CF6; --r2:#FB923C; --r3:#F472B6; --r4:#06B6D4;\n  font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;\n  color:var(--body); line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;\n  overflow-x:clip;\n}\n.mce-tb *{box-sizing:border-box}\n.mce-tb h1,.mce-tb h2,.mce-tb h3,.mce-tb h4{font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--head);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0;text-wrap:balance}\n.mce-tb p{margin:0;text-wrap:pretty}\n.mce-tb a{text-decoration:none;color:inherit}\n.mce-tb .tb-ic{width:24px;height:24px;flex:none;display:inline-block;color:inherit}\n\n.mce-tb .w{max-width:1180px;margin:0 auto;padding:0 32px}\n.mce-tb .sec{padding:74px 0}\n.mce-tb .sec-bg{background:var(--sec-bg)}\n.mce-tb .eyebrow{font-size:16px;font-weight:400;text-transform:uppercase;letter-spacing:.14em;color:var(--purple);margin-bottom:13px}\n.mce-tb .sec-title{font-size:45px;line-height:50px;margin-bottom:14px}\n.mce-tb .sec-sub{font-size:18px;font-weight:300;color:var(--body);max-width:600px;line-height:1.72}\n\/* widow prevention \u2014 keep short copy from orphaning one or two words *\/\n.mce-tb .hero-sub,.mce-tb .sec-sub,.mce-tb .cta-card p,.mce-tb .card p,.mce-tb .step p,.mce-tb .callout p,.mce-tb .tbb-cong span{text-wrap:balance}\n.mce-tb .center{text-align:center}\n.mce-tb .center .sec-sub{margin-left:auto;margin-right:auto}\n\n\/* buttons *\/\n.mce-tb .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;font-weight:600;padding:16px 32px;border-radius:4px;border:none;cursor:pointer;text-decoration:none;transition:all .16s ease;white-space:normal;text-align:center;line-height:1.3}\n.mce-tb .btn .tb-ic{width:19px;height:19px}\n.mce-tb .btn-purple{background:var(--purple);color:#fff;box-shadow:0 2px 8px rgba(101,18,190,.3)}\n.mce-tb .btn-purple:hover{background:var(--purple-h);transform:translateY(-1px);box-shadow:0 6px 18px rgba(101,18,190,.35)}\n.mce-tb .btn-outline{background:transparent;color:var(--purple);border:2px solid var(--purple);padding:14px 30px}\n.mce-tb .btn-outline:hover{background:var(--purple-lt)}\n.mce-tb .btn-big{font-size:18px;padding:17px 38px}\n.mce-tb .btn-outline.btn-big{padding:15px 36px}\n.mce-tb .btn:focus-visible{outline:2px solid var(--purple);outline-offset:2px}\n\n\/* ---- hero (native: white bg, centered; subhead on one line, CTAs beneath) ---- *\/\n.mce-tb .hero{background:#fff;padding:48px 0;text-align:center}\n.mce-tb .hero-grid{max-width:960px;margin:0 auto}\n.mce-tb .hero h1{font-size:clamp(37px,4.8vw,60px);line-height:1.08;margin:0 auto 18px;max-width:800px}\n.mce-tb .hero .accent{background:linear-gradient(115deg,var(--purple) 5%,var(--pink) 58%,var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent}\n.mce-tb .hero-sub{font-size:19px;font-weight:400;color:var(--body);margin:0 auto 30px;line-height:1.72}\n.mce-tb .hero-cta{display:flex;gap:24px;align-items:center;flex-wrap:wrap;justify-content:center}\n.mce-tb .hero-link{display:inline-flex;align-items:center;gap:7px;font:600 16px\/1 'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--purple);transition:color .15s}\n.mce-tb .hero-link .tb-ic{width:18px;height:18px}\n.mce-tb .hero-link:hover{color:var(--purple-h)}\n\n\/* ---- feature cards ---- *\/\n.mce-tb .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px}\n.mce-tb .card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:26px 22px;transition:transform .18s,box-shadow .18s}\n.mce-tb .card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(46,10,107,.32)}\n.mce-tb .card .ico{width:52px;height:52px;border-radius:50%;background:var(--purple-lt);display:flex;align-items:center;justify-content:center;margin-bottom:16px}\n.mce-tb .card .ico .tb-ic{width:26px;height:26px;color:var(--purple)}\n.mce-tb .card h3{font-size:18px;margin-bottom:8px}\n.mce-tb .card p{font-size:14.5px;color:var(--body);line-height:1.55}\n\n\/* ============================================================= *\/\n\/*  BALANCER (native, light)                                     *\/\n\/* ============================================================= *\/\n.mce-tb .tbb{max-width:1060px;margin:34px auto 0}\n\n\/* goal bar (holds Optimize) *\/\n.mce-tb .tbb-goal{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:14px;padding:13px 22px;box-shadow:0 10px 30px -24px rgba(46,10,107,.4)}\n.mce-tb .tbb-goal .glbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--soft)}\n.mce-tb .tbb-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 auto}\n.mce-tb .tbb-chip{display:inline-flex;align-items:center;gap:8px;font:600 13.5px\/1 'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--body);background:#fff;border:1.5px solid var(--border);padding:10px 13px;border-radius:9px;cursor:pointer;transition:.15s}\n.mce-tb .tbb-chip .tb-ic{width:17px;height:17px;color:var(--soft)}\n.mce-tb .tbb-chip:hover{border-color:var(--purple-bd);background:var(--purple-lt)}\n.mce-tb .tbb-chip.on{background:var(--purple);border-color:var(--purple);color:#fff}\n.mce-tb .tbb-chip.on .tb-ic{color:#fff}\n.mce-tb .tbb-goalopt{padding:11px 22px;font-size:15px;flex:none}\n.mce-tb .tbb-goalopt.pulse{animation:tbbpulse 2s ease-in-out infinite}\n@keyframes tbbpulse{0%,100%{box-shadow:0 3px 12px -2px rgba(101,18,190,.5)}50%{box-shadow:0 7px 22px 0 rgba(101,18,190,.7)}}\n.mce-tb .tbb-goalopt .spin{animation:tbbspin .9s linear infinite}\n@keyframes tbbspin{to{transform:rotate(360deg)}}\n\n\/* main row *\/\n.mce-tb .tbb-main{display:grid;grid-template-columns:300px 1fr;gap:18px;margin-top:18px}\n.mce-tb .tbb-metrics{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px 18px;display:flex;flex-direction:column}\n.mce-tb .tbb-summary{display:flex;flex-direction:column;padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--border)}\n.mce-tb .tbb-sum{display:flex;align-items:center;gap:10px;padding:8px 2px}\n.mce-tb .tbb-sum .si{width:28px;height:28px;border-radius:7px;background:var(--purple-lt);display:grid;place-items:center;flex:none}\n.mce-tb .tbb-sum .si .tb-ic{width:16px;height:16px;color:var(--purple)}\n.mce-tb .tbb-sum .sl{flex:1;font-size:13px;color:var(--body);font-weight:500}\n.mce-tb .tbb-sum .sv{font-size:13.5px;font-weight:700;color:var(--head);font-variant-numeric:tabular-nums}\n.mce-tb .tbb-mhead{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--soft);margin-bottom:6px}\n.mce-tb .tbb-replist{display:flex;flex-direction:column}\n.mce-tb .tbb-rep{display:flex;align-items:center;gap:10px;padding:13px 2px;border-bottom:1px solid var(--border)}\n.mce-tb .tbb-rep:last-child{border-bottom:none}\n.mce-tb .tbb-rep .sw{width:15px;height:15px;border-radius:5px;flex:none}\n.mce-tb .tbb-rep .nm{flex:1;font-size:14px;font-weight:600;color:var(--ink)}\n.mce-tb .tbb-rep .stat{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:700;color:var(--head);font-variant-numeric:tabular-nums;justify-content:flex-end}\n.mce-tb .tbb-rep .stat.acc{min-width:46px}\n.mce-tb .tbb-rep .stat.rev{min-width:64px}\n.mce-tb .tbb-rep .stat .tb-ic{width:14px;height:14px;color:var(--soft)}\n.mce-tb .tbb-rnote{font-size:12.5px;color:var(--soft);line-height:1.4;margin-top:14px;text-align:center}\n\n\/* map *\/\n.mce-tb .tbb-map{position:relative;border:1px solid rgba(20,28,48,.22);border-radius:14px;overflow:hidden;min-height:452px;background:#171f33 url('https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/territory-balancer-city-map.jpg') center\/cover no-repeat}\n.mce-tb .tbb-map canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}\n.mce-tb .tbb-tip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,-120%);background:#fff;border:1px solid var(--border);border-radius:10px;padding:9px 12px;box-shadow:0 14px 34px -12px rgba(30,20,60,.4);opacity:0;transition:opacity .12s;white-space:nowrap}\n.mce-tb .tbb-tip .t{font-size:13px;font-weight:700;color:var(--head)}\n.mce-tb .tbb-tip .s{font-size:11.5px;color:var(--body);margin-top:3px;display:flex;align-items:center;gap:6px}\n.mce-tb .tbb-tip .s b{font-weight:700;color:var(--head)}\n.mce-tb .tbb-tip .tier{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}\n.mce-tb .tbb-tip .tipic{width:13px;height:13px;color:var(--soft);flex:none}\n\n\/* details \/ benefits *\/\n.mce-tb .tbb-details{margin-top:22px;opacity:0;max-height:0;overflow:hidden;transition:opacity .5s ease,max-height .6s ease}\n.mce-tb .tbb-details.show{opacity:1;max-height:520px}\n.mce-tb .tbb-cong{display:flex;align-items:center;justify-content:center;gap:11px;text-align:center;margin-bottom:20px;font-size:16px;font-weight:500;color:var(--ink)}\n.mce-tb .tbb-cong .ck{width:34px;height:34px;border-radius:50%;background:var(--green-lt);border:1px solid var(--green-bd);display:grid;place-items:center;flex:none}\n.mce-tb .tbb-cong .ck .tb-ic{width:21px;height:21px;color:var(--green)}\n.mce-tb .tbb-bens{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}\n.mce-tb .tbb-ben{background:#fff;border:1px solid var(--border);border-radius:12px;padding:22px 18px;text-align:center}\n.mce-tb .tbb-ben .bic{width:50px;height:50px;border-radius:50%;background:var(--purple-lt);display:grid;place-items:center;margin:0 auto 13px}\n.mce-tb .tbb-ben .bic .tb-ic{width:25px;height:25px;color:var(--purple)}\n.mce-tb .tbb-ben h4{font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.07em;margin:0 0 9px}\n.mce-tb .tbb-ben .big{font-size:27px;font-weight:800;letter-spacing:-.02em;color:var(--head);line-height:1;font-variant-numeric:tabular-nums}\n.mce-tb .tbb-ben .bsub{font-size:12.5px;color:var(--body);margin-top:9px}\n.mce-tb .tbb-ben .was{display:inline-block;margin-top:10px;font-size:11.5px;font-weight:600;color:var(--green);background:var(--green-lt);border-radius:999px;padding:3px 11px}\n.mce-tb .tbb-dcta{display:flex;justify-content:center;margin-top:22px}\n\n\/* ---- how it works ---- *\/\n.mce-tb .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px}\n.mce-tb .step{position:relative;background:#fff;border:1px solid var(--border);border-radius:12px;padding:28px 24px}\n.mce-tb .step .n{position:absolute;top:22px;right:24px;font-size:32px;font-weight:800;color:var(--purple-lt);line-height:1}\n.mce-tb .step .ico{width:52px;height:52px;border-radius:50%;background:var(--purple-lt);display:flex;align-items:center;justify-content:center;margin-bottom:16px}\n.mce-tb .step .ico .tb-ic{width:26px;height:26px;color:var(--purple)}\n.mce-tb .step h3{font-size:18px;margin-bottom:9px}\n.mce-tb .step p{font-size:14.5px;color:var(--body);line-height:1.58}\n.mce-tb .callout{display:flex;align-items:center;gap:15px;margin-top:22px;background:var(--purple-lt);border:1px solid var(--purple-bd);border-radius:12px;padding:18px 24px}\n.mce-tb .callout .tb-ic{width:25px;height:25px;color:var(--purple);flex:none}\n.mce-tb .callout p{font-size:15px;color:var(--ink);line-height:1.5}\n.mce-tb .callout b{font-weight:700;color:var(--purple-h)}\n\n\/* ---- next step (visit planner: same 3-card pattern as How It Works) ---- *\/\n.mce-tb #tb-next .step{box-shadow:0 14px 34px -24px rgba(46,10,107,.30)}\n.mce-tb .np-cta{display:flex;justify-content:center;margin-top:36px}\n\n\/* ---- closing cta ---- *\/\n.mce-tb .cta-card{position:relative;overflow:hidden;text-align:center;border-radius:22px;padding:58px 48px;color:#fff;background:radial-gradient(ellipse 90% 80% at 50% -20%,rgba(244,114,182,.34) 0%,rgba(244,114,182,0) 60%),linear-gradient(135deg,#6512BE 0%,#4D13A0 56%,#2E0A6B 100%)}\n.mce-tb .cta-card h2{color:#fff;font-size:clamp(30px,4vw,40px);margin-bottom:13px}\n.mce-tb .cta-card p{color:rgba(255,255,255,.86);font-size:18px;max-width:680px;margin:0 auto 28px;line-height:1.5}\n.mce-tb .cta-card .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}\n.mce-tb .cta-card .btn-special{background:#fff;color:var(--purple);font-size:18px;font-weight:600;padding:17px 38px;box-shadow:0 8px 28px -4px rgba(255,255,255,.45)}\n.mce-tb .cta-card .btn-special .tb-ic{width:21px;height:21px;color:var(--purple)}\n.mce-tb .cta-card .btn-special:hover{background:#F3ECFF;transform:translateY(-2px) scale(1.02);animation:none}\n}\n\n\/* ---- scroll reveal ---- *\/\n.mce-tb .rv{transition:opacity .55s ease,transform .55s ease}\n.mce-tb .rv.anim{opacity:0;transform:translateY(16px)}\n.mce-tb .rv.on{opacity:1;transform:translateY(0)}\n\n\/* ---- responsive ---- *\/\n@media(max-width:980px){.mce-tb .grid4{grid-template-columns:1fr 1fr}}\n@media(max-width:820px){\n  .mce-tb .tbb-main{grid-template-columns:1fr}\n  .mce-tb .tbb-map{order:-1;min-height:360px}\n  .mce-tb .tbb-bens{grid-template-columns:1fr}\n  .mce-tb .tbb-details.show{max-height:1400px}  \/* stacked benefit cards exceed the 520px desktop cap \u2014 don't clip the 3rd card *\/\n}\n@media (prefers-reduced-motion: reduce){\n  .mce-tb .rv{transition:none !important}\n  .mce-tb .rv.anim{opacity:1 !important;transform:none !important}\n  .mce-tb .tbb-goalopt.pulse{animation:none}\n    .mce-tb .card:hover{transform:none}\n}\n@media(max-width:600px){\n  .mce-tb .w{padding:0 20px}\n  .mce-tb .sec{padding:52px 0}\n  .mce-tb .sec-title{font-size:32px;line-height:38px}\n  .mce-tb .hero{padding:46px 0 42px}\n  .mce-tb .hero h1{font-size:32px;line-height:1.12}\n  .mce-tb .hero-sub{font-size:17px}\n  .mce-tb .grid4,.mce-tb .steps{grid-template-columns:1fr}\n  .mce-tb .cta-card{padding:42px 22px}\n    .mce-tb .tbb-goalopt{flex:1 1 100%}\n}\n\n\n\/* ---- Elementor hardening: <button> controls -------------------------------\n   The theme resets <button> globally, which zeroes these pills' padding and\n   collapses their flex rows (goal chips + Optimize sat flush on their labels).\n   Every property below is load-bearing; restated at (2,2,1) so no ancestor-ID\n   theme rule can win on specificity or source order.\n   -------------------------------------------------------------------------- *\/\n.mce-tb#mce-tb#mce-tb .btn{display:inline-flex !important;align-items:center !important;justify-content:center !important;\n  gap:7px !important;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif !important;\n  font-size:17px !important;font-weight:600 !important;padding:16px 32px !important;border-radius:4px !important;\n  border:none !important;line-height:1.3 !important;text-align:center !important;white-space:normal !important;\n  box-sizing:border-box !important;width:auto !important;height:auto !important;}\n.mce-tb#mce-tb#mce-tb .btn-big{font-size:18px !important;padding:17px 38px !important;}\n.mce-tb#mce-tb#mce-tb .tbb-goalopt{padding:11px 22px !important;font-size:15px !important;flex:none !important;\n  width:auto !important;height:auto !important;}\n.mce-tb#mce-tb#mce-tb .tbb-chip{display:inline-flex !important;align-items:center !important;gap:8px !important;\n  font:600 13.5px\/1 'Poppins',-apple-system,BlinkMacSystemFont,sans-serif !important;\n  padding:10px 13px !important;border-radius:9px !important;border-width:1.5px !important;\n  border-style:solid !important;box-sizing:border-box !important;width:auto !important;height:auto !important;\n  text-align:left !important;}\n.mce-tb#mce-tb#mce-tb .btn .tb-ic{width:19px !important;height:19px !important;flex:0 0 19px !important;}\n.mce-tb#mce-tb#mce-tb .tbb-chip .tb-ic{width:17px !important;height:17px !important;flex:0 0 17px !important;}\n<\/style>\n<div id=\"mce-tb\" class=\"mce-tb\">\n\n<!-- icon sprite -->\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\"><defs>\n<symbol id=\"tb-i-users\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 13a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1M15 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m2 5h2a2 2 0 0 1 2 2v1M5 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h2\"\/><\/symbol>\n<symbol id=\"tb-i-coins\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M9 14c0 1.657 2.686 3 6 3s6-1.343 6-3s-2.686-3-6-3s-6 1.343-6 3\"\/><path d=\"M9 14v4c0 1.656 2.686 3 6 3s6-1.344 6-3v-4M3 6c0 1.072 1.144 2.062 3 2.598s4.144.536 6 0S15 7.072 15 6s-1.144-2.062-3-2.598s-4.144-.536-6 0S3 4.928 3 6\"\/><path d=\"M3 6v10c0 .888.772 1.45 2 2\"\/><path d=\"M3 11c0 .888.772 1.45 2 2\"\/><\/g><\/symbol>\n<symbol id=\"tb-i-car\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M5 17a2 2 0 1 0 4 0a2 2 0 1 0-4 0m10 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0\"\/><path d=\"M5 17H3v-6l2-5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0H9m-6-6h15m-6 0V6\"\/><\/g><\/symbol>\n<symbol id=\"tb-i-community\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m8 9l5 5v7H8v-4m0 4H3v-7l5-5m1 1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17h-8m0-14v.01M17 7v.01M17 11v.01M17 15v.01\"\/><\/symbol>\n<symbol id=\"tb-i-scale\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 20h10M6 6l6-1l6 1m-6-3v17m-3-8L6 6l-3 6a3 3 0 0 0 6 0m12 0l-3-6l-3 6a3 3 0 0 0 6 0\"\/><\/symbol>\n<symbol id=\"tb-i-plug\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1-5-5zm10 0l-5-5l1.5-1.5a3.536 3.536 0 1 1 5 5zM3 21l2.5-2.5m13-13L21 3m-11 8l-2 2m5 1l-2 2\"\/><\/symbol>\n<symbol id=\"tb-i-adjust\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 6h8m4 0h4M6 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0m-2 0h2m4 0h10m-5 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 18h11m4 0h1\"\/><\/symbol>\n<symbol id=\"tb-i-route\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 19a2 2 0 1 0 4 0a2 2 0 0 0-4 0M19 7a2 2 0 1 0 0-4a2 2 0 0 0 0 4m-8 12h5.5a3.5 3.5 0 0 0 0-7h-8a3.5 3.5 0 0 1 0-7H13\"\/><\/symbol>\n<symbol id=\"tb-i-check\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 12l5 5L20 7\"\/><\/symbol>\n<symbol id=\"tb-i-sparkles\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2m0-12a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2M9 18a6 6 0 0 1 6-6a6 6 0 0 1-6-6a6 6 0 0 1-6 6a6 6 0 0 1 6 6\"\/><\/symbol>\n<symbol id=\"tb-i-building\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 21h18M3 7v1a3 3 0 0 0 6 0V7m0 1a3 3 0 0 0 6 0V7m0 1a3 3 0 0 0 6 0V7H3l2-4h14l2 4M5 21V10.85M19 21V10.85M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"\/><\/symbol>\n<symbol id=\"tb-i-arrow-down\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v14m6-6l-6 6m-6-6l6 6\"\/><\/symbol>\n<symbol id=\"tb-i-engineer\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h2.5m4.501 4a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V17m0 4v1.5m3.031-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75\"\/><\/symbol>\n<symbol id=\"tb-i-star\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 17.75l-6.172 3.245l1.179-6.873l-5-4.867l6.9-1l3.086-6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"\/><\/symbol>\n<symbol id=\"tb-i-cadence\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12.5 21H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v3m-4-7v4M8 3v4m-4 4h12m4 3l2 2h-3m1 2l2-2m-3 0a3 3 0 1 0 2 5.236\"\/><\/symbol>\n<symbol id=\"tb-i-gauge\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0\"\/><path d=\"M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m2.41-1.41L16 8m-9 4a5 5 0 0 1 5-5\"\/><\/g><\/symbol>\n<\/defs><\/svg>\n\n<!-- ================= HERO ================= -->\n<header class=\"hero\" id=\"tb-top\">\n  <div class=\"w\">\n    <div class=\"hero-grid\">\n      <h1>Balance Territories by <span class=\"accent\">What Actually Matters<\/span><\/h1>\n      <div class=\"hero-copy\">\n        <p class=\"hero-sub\">Split accounts, revenue, and drive-time across your field team&mdash;evenly, in one click.<\/p>\n        <div class=\"hero-cta\">\n          <a class=\"btn btn-purple btn-big\" href=\"https:\/\/calendly.com\/mapsly-meeting\/quick-demo\" target=\"_blank\" rel=\"noopener\">Get a Demo<\/a>\n          <a class=\"hero-link\" href=\"#tb-try\">See it in action <svg class=\"tb-ic\"><use href=\"#tb-i-arrow-down\"\/><\/svg><\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<!-- ================= FEATURES ================= -->\n<section class=\"sec sec-bg\">\n  <div class=\"w\">\n    <div class=\"center rv\">\n      <div class=\"eyebrow\">What You Can Balance<\/div>\n      <h2 class=\"sec-title\">Balance on Any Metric That Matters<\/h2>\n      <p class=\"sec-sub\">Mapsly does not stop at account counts. Weight several dimensions at once and let it draw fair territories.<\/p>\n    <\/div>\n    <div class=\"grid4\">\n      <div class=\"card rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-users\"\/><\/svg><\/div>\n        <h3>Accounts and Workload<\/h3>\n        <p>Even out account counts so every rep carries a comparable share of the book.<\/p>\n      <\/div>\n      <div class=\"card rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-coins\"\/><\/svg><\/div>\n        <h3>Revenue and Pipeline<\/h3>\n        <p>Spread revenue potential evenly, so no single territory holds all the upside.<\/p>\n      <\/div>\n      <div class=\"card rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-car\"\/><\/svg><\/div>\n        <h3>Drive-Time and Compactness<\/h3>\n        <p>Use real road drive-time to keep territories tight and cut the hours between stops.<\/p>\n      <\/div>\n      <div class=\"card rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-community\"\/><\/svg><\/div>\n        <h3>Priority and Demographics<\/h3>\n        <p>Weight top-tier accounts fairly and balance on real United States Census demographics.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ================= THE BALANCER ================= -->\n<section class=\"sec\" id=\"tb-try\">\n  <div class=\"w\">\n    <div class=\"center rv\">\n      <h2 class=\"sec-title\">Complex Task, Simple Process<\/h2>\n      <p class=\"sec-sub\">Pick a goal, press Optimize.<\/p>\n    <\/div>\n\n    <div class=\"tbb\" id=\"tbb\">\n      <!-- GOAL + OPTIMIZE -->\n      <div class=\"tbb-goal\">\n        <span class=\"glbl\">Goal<\/span>\n        <div class=\"tbb-chips\" id=\"tbb-chips\">\n          <button class=\"tbb-chip\" data-goal=\"accounts\"><svg class=\"tb-ic\"><use href=\"#tb-i-users\"\/><\/svg>Even Accounts<\/button>\n          <button class=\"tbb-chip\" data-goal=\"revenue\"><svg class=\"tb-ic\"><use href=\"#tb-i-coins\"\/><\/svg>Even Revenue<\/button>\n          <button class=\"tbb-chip\" data-goal=\"drive\"><svg class=\"tb-ic\"><use href=\"#tb-i-car\"\/><\/svg>Drive Time<\/button>\n        <\/div>\n        <button class=\"btn btn-purple tbb-goalopt pulse\" id=\"tbb-opt\"><svg class=\"tb-ic\" id=\"tbb-opt-ic\"><use href=\"#tb-i-sparkles\"\/><\/svg><span id=\"tbb-opt-lbl\">Optimize<\/span><\/button>\n      <\/div>\n\n      <!-- BREAKDOWN | MAP -->\n      <div class=\"tbb-main\">\n        <div class=\"tbb-metrics\">\n          <div class=\"tbb-summary\">\n            <div class=\"tbb-sum\"><span class=\"si\"><svg class=\"tb-ic\"><use href=\"#tb-i-users\"\/><\/svg><\/span><span class=\"sl\">Sales team<\/span><span class=\"sv\">4 people<\/span><\/div>\n            <div class=\"tbb-sum\"><span class=\"si\"><svg class=\"tb-ic\"><use href=\"#tb-i-building\"\/><\/svg><\/span><span class=\"sl\">Accounts<\/span><span class=\"sv\" id=\"sum-acc\">&mdash;<\/span><\/div>\n            <div class=\"tbb-sum\"><span class=\"si\"><svg class=\"tb-ic\"><use href=\"#tb-i-coins\"\/><\/svg><\/span><span class=\"sl\">Territory revenue<\/span><span class=\"sv\" id=\"sum-rev\">&mdash;<\/span><\/div>\n          <\/div>\n          <div class=\"tbb-mhead\">Territory Breakdown<\/div>\n          <div class=\"tbb-replist\" id=\"tbb-replist\"><\/div>\n          <div class=\"tbb-rnote\" id=\"tbb-rnote\">Pick a goal and press Optimize to balance the team.<\/div>\n        <\/div>\n        <div class=\"tbb-map\" id=\"tbb-map\">\n          <canvas id=\"tbb-canvas\"><\/canvas>\n          <div class=\"tbb-tip\" id=\"tbb-tip\"><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- DETAILS \/ BENEFITS -->\n      <div class=\"tbb-details\" id=\"tbb-details\">\n        <div class=\"tbb-cong\">\n          <span class=\"ck\"><svg class=\"tb-ic\"><use href=\"#tb-i-check\"\/><\/svg><\/span>\n          <span id=\"tbb-csub\">You evened out the workload, spread the opportunities, and kept territories tight.<\/span>\n        <\/div>\n        <div class=\"tbb-bens\">\n          <div class=\"tbb-ben\">\n            <div class=\"bic\"><svg class=\"tb-ic\"><use href=\"#tb-i-users\"\/><\/svg><\/div>\n            <h4>Accounts per Rep<\/h4>\n            <div class=\"big\" id=\"ben-acc\">&mdash;<\/div>\n            <p class=\"bsub\">fewest to busiest rep<\/p>\n          <\/div>\n          <div class=\"tbb-ben\">\n            <div class=\"bic\"><svg class=\"tb-ic\"><use href=\"#tb-i-coins\"\/><\/svg><\/div>\n            <h4>Revenue per Rep<\/h4>\n            <div class=\"big\" id=\"ben-rev\">&mdash;<\/div>\n            <p class=\"bsub\">smallest to largest book<\/p>\n          <\/div>\n          <div class=\"tbb-ben\">\n            <div class=\"bic\"><svg class=\"tb-ic\"><use href=\"#tb-i-car\"\/><\/svg><\/div>\n            <h4>Windshield Time<\/h4>\n            <div class=\"big\">Kept Optimal<\/div>\n            <p class=\"bsub\">tight, compact routes<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ================= HOW IT WORKS ================= -->\n<section class=\"sec sec-bg\" id=\"tb-how\">\n  <div class=\"w\">\n    <div class=\"center rv\">\n      <div class=\"eyebrow\">How It Works<\/div>\n      <h2 class=\"sec-title\">From Messy Map to Balanced Team in Three Steps<\/h2>\n      <p class=\"sec-sub\">From your CRM data to balanced territories and daily routes, Mapsly runs your whole field operation.<\/p>\n    <\/div>\n    <div class=\"steps\">\n      <div class=\"step rv\">\n        <span class=\"n\">1<\/span>\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-plug\"\/><\/svg><\/div>\n        <h3>Connect Your Data<\/h3>\n        <p>Sync accounts from 15+ CRMs, spreadsheets, or any source with location data&mdash;no single-CRM lock-in.<\/p>\n      <\/div>\n      <div class=\"step rv\">\n        <span class=\"n\">2<\/span>\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-engineer\"\/><\/svg><\/div>\n        <h3>Bring Your Goals to Mapsly<\/h3>\n        <p>A Mapsly solution engineer works with you to bring your team&rsquo;s goals and business rules into Mapsly, so territories balance on what matters to your operation.<\/p>\n      <\/div>\n      <div class=\"step rv\">\n        <span class=\"n\">3<\/span>\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-route\"\/><\/svg><\/div>\n        <h3>Assign and Route<\/h3>\n        <p>Push owners back to your CRM, then route the whole team across multiple days in a single planning run.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"callout rv\">\n      <svg class=\"tb-ic\"><use href=\"#tb-i-community\"\/><\/svg>\n      <p>Territory Balancing is one of many <b>Custom Apps<\/b> your Mapsly solution engineer sets up for your operation&mdash;at no extra cost.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== NEXT STEP: VISIT PLANNER ============== -->\n<section class=\"sec\" id=\"tb-next\">\n  <div class=\"w\">\n    <div class=\"center rv\">\n      <div class=\"eyebrow\">From Territories to Routes<\/div>\n      <h2 class=\"sec-title\">Take Your Field Operations to the Next Level<\/h2>\n      <p class=\"sec-sub\">Balanced territories are just the start. Mapsly&rsquo;s Visit&nbsp;Planner turns them into efficient routes for the whole team.<\/p>\n    <\/div>\n    <div class=\"steps\">\n      <div class=\"step rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-star\"\/><\/svg><\/div>\n        <h3>Visit by Priority<\/h3>\n        <p>Put the accounts that matter most at the front of the line, so high-value and at-risk customers are always seen on time.<\/p>\n      <\/div>\n      <div class=\"step rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-cadence\"\/><\/svg><\/div>\n        <h3>Keep Every Cadence<\/h3>\n        <p>Set how often each account should be visited, and Mapsly schedules the recurring visits to match&mdash;days and weeks ahead.<\/p>\n      <\/div>\n      <div class=\"step rv\">\n        <div class=\"ico\"><svg class=\"tb-ic\"><use href=\"#tb-i-gauge\"\/><\/svg><\/div>\n        <h3>More Visits, Less Driving<\/h3>\n        <p>Every route is optimized to fit in the most stops with the least drive time, around your team&rsquo;s open hours and live road traffic.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"np-cta rv\">\n      <a class=\"btn btn-purple btn-big\" href=\"https:\/\/mapsly.com\/optimized-routing-location-tracking-field-efficiency-features\/\" target=\"_blank\" rel=\"noopener\">Learn more about Visit Planner<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ================= CTA ================= -->\n<section class=\"sec\">\n  <div class=\"w\">\n    <div class=\"cta-card rv\">\n      <h2>Try Free With No Commitment<\/h2>\n      <p>Start free with the full platform. A Mapsly solution engineer helps you set it up and run a proof of concept on your own data.<\/p>\n      <div class=\"row\">\n        <a class=\"btn btn-special\" href=\"https:\/\/calendly.com\/mapsly-meeting\/quick-demo\" target=\"_blank\" rel=\"noopener\"><svg class=\"tb-ic\"><use href=\"#tb-i-sparkles\"\/><\/svg> Optimize My Territories<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function(){\n  var root=document.querySelector('.mce-tb'); if(!root) return;\n\n  root.querySelectorAll('a[href^=\"#tb-\"]').forEach(function(a){\n    a.addEventListener('click',function(e){var id=a.getAttribute('href').slice(1),t=document.getElementById(id);if(t){e.preventDefault();t.scrollIntoView({behavior:'smooth',block:'start'});}});\n  });\n  (function(){\n    if(!('IntersectionObserver' in window))return;\n    var els=root.querySelectorAll('.rv');els.forEach(function(el){el.classList.add('anim');});\n    var obs=new IntersectionObserver(function(en){en.forEach(function(e){if(e.isIntersecting){e.target.classList.add('on');obs.unobserve(e.target);}});},{threshold:0.14});\n    els.forEach(function(el){obs.observe(el);});\n  })();\n\n  \/* ===================== BALANCER ===================== *\/\n  var cv=document.getElementById('tbb-canvas'); if(!cv) return;\n  var ctx=cv.getContext('2d'), mapEl=document.getElementById('tbb-map'), tip=document.getElementById('tbb-tip');\n  var MAPW=1000, MAPH=640, DGAIN=2.4, GREY=[206,214,231];\n\n  \/* organic rep homes (not a square): left, centre, right, lower-south *\/\n  var REPS=[\n    {name:'Rep 1', color:'#8B5CF6', rgb:[139,92,246], home:[225,320]},  \/\/ left\n    {name:'Rep 2', color:'#FB923C', rgb:[251,146,60], home:[500,285]},  \/\/ centre\n    {name:'Rep 3', color:'#F472B6', rgb:[244,114,182],home:[800,340]},  \/\/ right\n    {name:'Rep 4', color:'#06B6D4', rgb:[6,182,212],  home:[470,510]}   \/\/ lower \/ south\n  ];\n  var NR=REPS.length;\n  var TIERS=[{n:'Bronze',rev:[40,240],col:'#B45309'},{n:'Silver',rev:[230,820],col:'#64748B'},{n:'Gold',rev:[950,2400],col:'#CA8A04'},{n:'Platinum',rev:[2800,6000],col:'#7C3AED'}];\n  var NAMES_A=['North','Vertex','Summit','Atlas','Cedar','Iron','Blue','Pioneer','Granite','Harbor','Maple','Delta','Crown','Vanguard','Orchard','Beacon','Pacific','Sterling','Onyx','Copper','Ridge','Union','Apex','Birch'];\n  var NAMES_B=['Supply Co.','Logistics','Industrial','Works','Partners','Trading','Manufacturing','Group','Distributors','Systems','Materials','Mechanical','Wholesale','Fabrication','Services','Tooling'];\n\n  function mulberry32(a){return function(){a|=0;a=a+0x6D2B79F5|0;var t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)\/4294967296;};}\n  function gauss(r){var u=0,v=0;while(u===0)u=r();while(v===0)v=r();return Math.sqrt(-2*Math.log(u))*Math.cos(2*Math.PI*v);}\n  \/\/ tier mix per cluster \u2014 makes the data uneven so each goal needs a different split\n  function pickTier(u,b){var w=b==='low'?[.78,.21,.01,0]:b==='high'?[.03,.10,.40,.47]:b==='mid'?[.48,.34,.16,.02]:[.5,.3,.15,.05];var c=0;for(var i=0;i<4;i++){c+=w[i];if(u<c)return i;}return 3;}\n\n  var accounts=[], N=0, cost=[], costN=[], maxCost=1, meanRev=1;\n  var goal='accounts', optimized=false, animating=false, showHull=false, assign=null, hullCache=[], baseStats=null, curStats=null, seed=73;\n  var CLUSTERS=[\n    {x:480,y:300,n:.25,s:115,b:'mixed'},  \/\/ downtown core \u2014 densest cluster; overloads the centre rep at nearest\n    {x:265,y:355,n:.16,s:95, b:'low'},    \/\/ west residential \u2014 fewer, small low-value accounts\n    {x:600,y:175,n:.12,s:92, b:'high'},   \/\/ north business district \u2014 high revenue\n    {x:825,y:365,n:.13,s:80, b:'high'},   \/\/ east \u2014 high revenue\n    {x:455,y:505,n:.19,s:96, b:'mid'},    \/\/ south\n    {x:710,y:265,n:.15,s:96, b:'mid'}     \/\/ north-east scatter\n  ];\n\n  function genScenario(s){\n    var r=mulberry32(s); accounts=[]; var TOTAL=224;\n    for(var ci=0;ci<CLUSTERS.length;ci++){\n      var cl=CLUSTERS[ci], cnt=Math.round(TOTAL*cl.n);\n      for(var k=0;k<cnt;k++){\n        var x=Math.max(30,Math.min(MAPW-30, cl.x+gauss(r)*cl.s));\n        var y=Math.max(30,Math.min(MAPH-30, cl.y+gauss(r)*cl.s*0.82));\n        var ti=pickTier(r(), cl.b), T=TIERS[ti];\n        var rev=Math.round(T.rev[0]+r()*(T.rev[1]-T.rev[0]));\n        var nm=NAMES_A[(r()*NAMES_A.length)|0]+' '+NAMES_B[(r()*NAMES_B.length)|0];\n        accounts.push({x:x,y:y,tier:ti,rev:rev,name:nm,cur:GREY.slice(),from:GREY.slice(),tgt:GREY.slice(),delay:0});\n      }\n    }\n    N=accounts.length; var sr=0; for(var i=0;i<N;i++) sr+=accounts[i].rev; meanRev=sr\/N;\n    computeCost(); baseStats=statsOf(nearestAssign());\n    var sa=document.getElementById('sum-acc'); if(sa) sa.textContent=N;\n    var sv=document.getElementById('sum-rev'); if(sv) sv.textContent=fmtMoney(sr);\n  }\n  function dist(ax,ay,bx,by){var dx=ax-bx,dy=ay-by;return Math.sqrt(dx*dx+dy*dy);}\n  function computeCost(){\n    cost=[]; maxCost=1;\n    for(var i=0;i<N;i++){var row=[];for(var r=0;r<NR;r++){var d=dist(accounts[i].x,accounts[i].y,REPS[r].home[0],REPS[r].home[1]);row.push(d);if(d>maxCost)maxCost=d;}cost.push(row);}\n    costN=[]; for(i=0;i<N;i++){var rn=[];for(var rr=0;rr<NR;rr++)rn.push(cost[i][rr]\/maxCost);costN.push(rn);}\n  }\n  function nearestAssign(){var a=new Int8Array(N);for(var i=0;i<N;i++){var bi=0,bv=cost[i][0];for(var r=1;r<NR;r++)if(cost[i][r]<bv){bv=cost[i][r];bi=r;}a[i]=bi;}return a;}\n  function solveBalanced(wa,wr){\n    var L=new Float64Array(N),tot=0;\n    for(var i=0;i<N;i++){var l=wa+wr*(accounts[i].rev\/meanRev);L[i]=l;tot+=l;}\n    var target=tot\/NR, ddw=0.18*DGAIN, lam=[0,0,0,0], best=null, bestImb=Infinity, a=new Int8Array(N), step=0.6;\n    for(var it=0;it<300;it++){\n      var load=[0,0,0,0];\n      for(i=0;i<N;i++){var bi=0,bv=ddw*costN[i][0]+lam[0];for(var r=1;r<NR;r++){var v=ddw*costN[i][r]+lam[r];if(v<bv){bv=v;bi=r;}}a[i]=bi;load[bi]+=L[i];}\n      var imb=0;for(r=0;r<NR;r++){var e=Math.abs(load[r]-target);if(e>imb)imb=e;}\n      if(imb<bestImb){bestImb=imb;best=a.slice();}\n      if(imb<=target*0.01)break;\n      for(r=0;r<NR;r++)lam[r]+=step*(load[r]-target)\/target;\n      var mn=Math.min(lam[0],lam[1],lam[2],lam[3]);for(r=0;r<NR;r++)lam[r]-=mn;step*=0.985;\n    }\n    return best||a.slice();\n  }\n  function solveGoal(g){if(g==='drive')return nearestAssign();if(g==='revenue')return solveBalanced(0,1);return solveBalanced(1,0);}\n  function statsOf(a){var c=[0,0,0,0],rv=[0,0,0,0];for(var i=0;i<N;i++){var r=a[i];c[r]++;rv[r]+=accounts[i].rev;}return{c:c,rv:rv};}\n  function ev(arr){var mn=Math.min.apply(null,arr),mx=Math.max.apply(null,arr);return mx?Math.round(100*mn\/mx):0;}\n\n  function hull(pts){\n    if(pts.length<3)return pts.slice();\n    var p=pts.slice().sort(function(a,b){return a[0]-b[0]||a[1]-b[1];});\n    function cr(o,a,b){return(a[0]-o[0])*(b[1]-o[1])-(a[1]-o[1])*(b[0]-o[0]);}\n    var lo=[],up=[],i;\n    for(i=0;i<p.length;i++){while(lo.length>=2&&cr(lo[lo.length-2],lo[lo.length-1],p[i])<=0)lo.pop();lo.push(p[i]);}\n    for(i=p.length-1;i>=0;i--){while(up.length>=2&&cr(up[up.length-2],up[up.length-1],p[i])<=0)up.pop();up.push(p[i]);}\n    lo.pop();up.pop();return lo.concat(up);\n  }\n  function rebuildHulls(){\n    hullCache=[];\n    for(var r=0;r<NR;r++){var pts=[];for(var i=0;i<N;i++)if(assign[i]===r)pts.push([accounts[i].x,accounts[i].y]);\n      var h=hull(pts),cx=0,cy=0;for(i=0;i<h.length;i++){cx+=h[i][0];cy+=h[i][1];}if(h.length){cx\/=h.length;cy\/=h.length;}\n      hullCache.push({pts:h,cx:cx,cy:cy});}\n  }\n\n  var T={s:1,ox:0,oy:0}, cssW=0, cssH=0, dpr=1;\n  function resize(){\n    cssW=mapEl.clientWidth; cssH=mapEl.clientHeight; dpr=Math.min(window.devicePixelRatio||1,2);\n    cv.width=Math.round(cssW*dpr); cv.height=Math.round(cssH*dpr); ctx.setTransform(dpr,0,0,dpr,0,0);\n    var s=Math.max(cssW\/MAPW,cssH\/MAPH); T={s:s,ox:(cssW-MAPW*s)\/2,oy:(cssH-MAPH*s)\/2}; draw();\n  }\n  function PX(x,y){return [T.ox+x*T.s, T.oy+y*T.s];}\n  function rr(x,y,w,h,rad){ctx.beginPath();ctx.moveTo(x+rad,y);ctx.arcTo(x+w,y,x+w,y+h,rad);ctx.arcTo(x+w,y+h,x,y+h,rad);ctx.arcTo(x,y+h,x,y,rad);ctx.arcTo(x,y,x+w,y,rad);ctx.closePath();}\n\n  var hoverRep=-1, polyProg=0;\n  function mid(a,b){return [(a[0]+b[0])\/2,(a[1]+b[1])\/2];}\n  function draw(){\n    if(!cssW)return;\n    ctx.clearRect(0,0,cssW,cssH);\n    \/\/ subtle dark wash over the map image so the data reads cleanly\n    ctx.fillStyle='rgba(15,22,41,0.34)'; ctx.fillRect(0,0,cssW,cssH);\n    if((optimized||animating)&&showHull&&polyProg>0.01){ for(var r=0;r<NR;r++) drawTerritory(r); }\n    for(var i=0;i<N;i++){\n      var ap=PX(accounts[i].x,accounts[i].y),col=accounts[i].cur,rad=(accounts[i].tier>=2?4.6:3.6);\n      ctx.beginPath();ctx.arc(ap[0],ap[1],rad,0,6.283);\n      ctx.fillStyle='rgb('+(col[0]|0)+','+(col[1]|0)+','+(col[2]|0)+')';ctx.fill();\n      ctx.lineWidth=1.1;ctx.strokeStyle='rgba(255,255,255,.55)';ctx.stroke();\n    }\n    for(r=0;r<NR;r++) drawRepMarker(r);\n  }\n  \/\/ smooth, rounded \"blob\" territory (prettier than a raw convex hull)\n  function drawTerritory(r){\n    var hc=hullCache[r]; if(!hc||hc.pts.length<3) return;\n    var grow=(0.90+0.10*polyProg)*1.07, n=hc.pts.length, pts=[];\n    for(var i=0;i<n;i++) pts.push(PX(hc.cx+(hc.pts[i][0]-hc.cx)*grow, hc.cy+(hc.pts[i][1]-hc.cy)*grow));\n    ctx.beginPath();\n    var m0=mid(pts[n-1],pts[0]); ctx.moveTo(m0[0],m0[1]);\n    for(i=0;i<n;i++){ var c=pts[i], nx=pts[(i+1)%n], m=mid(c,nx); ctx.quadraticCurveTo(c[0],c[1],m[0],m[1]); }\n    ctx.closePath();\n    var g=REPS[r].rgb, base='rgba('+g[0]+','+g[1]+','+g[2]+',', hi=(r===hoverRep);\n    ctx.save();\n    ctx.shadowColor=base+((hi?0.8:0.55)*polyProg)+')'; ctx.shadowBlur=hi?32:24;\n    ctx.fillStyle=base+((hi?0.34:0.22)*polyProg)+')'; ctx.fill();\n    ctx.restore();\n    ctx.lineWidth=hi?3.6:2; ctx.strokeStyle=base+((hi?1:0.9)*polyProg)+')'; ctx.lineJoin='round'; ctx.stroke();\n  }\n  \/\/ rep marker = the same coloured square used in the breakdown, numbered\n  function drawRepMarker(r){\n    var pp=PX(REPS[r].home[0],REPS[r].home[1]),x=pp[0],y=pp[1],col=REPS[r].color,sz=22;\n    ctx.save();\n    ctx.shadowColor='rgba(6,10,26,.55)'; ctx.shadowBlur=10; ctx.shadowOffsetY=2;\n    rr(x-sz\/2,y-sz\/2,sz,sz,6); ctx.fillStyle=col; ctx.fill();\n    ctx.restore();\n    rr(x-sz\/2,y-sz\/2,sz,sz,6); ctx.lineWidth=2.5; ctx.strokeStyle='#fff'; ctx.stroke();\n    ctx.fillStyle='#fff'; ctx.font='800 12px Poppins, sans-serif'; ctx.textAlign='center'; ctx.textBaseline='middle';\n    ctx.fillText(String(r+1), x, y+0.5);\n  }\n\n  \/* ---- rep list ---- *\/\n  function buildRepList(){\n    var el=document.getElementById('tbb-replist'); el.innerHTML='';\n    for(var r=0;r<NR;r++){\n      var d=document.createElement('div'); d.className='tbb-rep';\n      d.innerHTML='<span class=\"sw\" style=\"background:'+REPS[r].color+'\"><\/span>'\n        +'<span class=\"nm\">'+REPS[r].name+'<\/span>'\n        +'<span class=\"stat acc\"><svg class=\"tb-ic\"><use href=\"#tb-i-building\"\/><\/svg><b id=\"ra'+r+'\">&mdash;<\/b><\/span>'\n        +'<span class=\"stat rev\"><svg class=\"tb-ic\"><use href=\"#tb-i-coins\"\/><\/svg><b id=\"rr'+r+'\">&mdash;<\/b><\/span>';\n      el.appendChild(d);\n    }\n  }\n  function setRepList(st){for(var r=0;r<NR;r++){countVal(document.getElementById('ra'+r),st.c[r],'');document.getElementById('rr'+r).textContent=fmtMoney(st.rv[r]);}}\n  function clearRepList(){for(var r=0;r<NR;r++){var a=document.getElementById('ra'+r),b=document.getElementById('rr'+r);if(a)a.innerHTML='&mdash;';if(b)b.innerHTML='&mdash;';}}\n  function countVal(el,to,suf){\n    var from=parseInt((el.textContent||'0').replace(\/[^0-9]\/g,''),10)||0,t0=null,dur=850;\n    if(el._raf)cancelAnimationFrame(el._raf);\n    function fr(ts){if(!t0)t0=ts;var k=Math.min(1,(ts-t0)\/dur),e=1-Math.pow(1-k,3),val=Math.round(from+(to-from)*e);el.textContent=val+suf;if(k<1)el._raf=requestAnimationFrame(fr);}\n    el._raf=requestAnimationFrame(fr);\n  }\n  function fmtMoney(k){return k>=1000?'$'+(k\/1000>=10?Math.round(k\/1000):(k\/1000).toFixed(1))+'M':'$'+Math.round(k)+'k';}\n  function fmtRange(a,b){return b>=1000?'$'+Math.round(a\/1000)+'\u2013'+Math.round(b\/1000)+'M':'$'+Math.round(a)+'\u2013'+Math.round(b)+'k';}\n\n  \/* ---- optimize ---- *\/\n  var animRAF=null;\n  function optimize(){\n    if(animating||!N)return;\n    assign=solveGoal(goal); rebuildHulls(); showHull=true;\n    var st=statsOf(assign); curStats=st;\n    for(var i=0;i<N;i++){accounts[i].from=accounts[i].cur.slice();accounts[i].tgt=REPS[assign[i]].rgb;accounts[i].delay=((i*2654435761>>>0)%1000)\/1000*0.7;}\n    setRepList(st);\n    document.getElementById('tbb-rnote').style.display='none';\n    var lbl=document.getElementById('tbb-opt-lbl'),ic=document.getElementById('tbb-opt-ic'),btn=document.getElementById('tbb-opt');\n    lbl.textContent='Optimizing\u2026'; ic.classList.add('spin'); btn.classList.remove('pulse');\n    document.getElementById('tbb-details').classList.remove('show');\n    setChipsEnabled(false);\n    animating=true; polyProg=0;\n    var t0=performance.now(), DUR=2000;\n    function frame(now){\n      var t=(now-t0)\/1000;\n      for(var j=0;j<N;j++){\n        var p=Math.max(0,Math.min(1,(t-accounts[j].delay)\/0.6)),e=p<.5?2*p*p:1-Math.pow(-2*p+2,2)\/2;\n        var f=accounts[j].from,g2=accounts[j].tgt;\n        accounts[j].cur=[f[0]+(g2[0]-f[0])*e,f[1]+(g2[1]-f[1])*e,f[2]+(g2[2]-f[2])*e];\n      }\n      polyProg=Math.max(0,Math.min(1,(t-0.85)\/0.7));\n      draw();\n      if(t<DUR\/1000) animRAF=requestAnimationFrame(frame); else finishOptimize(st);\n    }\n    animRAF=requestAnimationFrame(frame);\n  }\n  function finishOptimize(st){\n    animating=false; optimized=true; polyProg=1;\n    for(var i=0;i<N;i++)accounts[i].cur=accounts[i].tgt.slice();\n    draw();\n    document.getElementById('tbb-opt-lbl').textContent='Re-optimize';\n    document.getElementById('tbb-opt-ic').classList.remove('spin');\n    setChipsEnabled(true);\n    document.getElementById('ben-acc').textContent = Math.min.apply(null,st.c)+'\u2013'+Math.max.apply(null,st.c);\n    document.getElementById('ben-rev').textContent = fmtRange(Math.min.apply(null,st.rv), Math.max.apply(null,st.rv));\n    var CONGRATS={\n      accounts:'Every rep now carries a comparable share of the accounts.',\n      revenue:'Revenue is shared fairly across the team\u2014no lopsided books.',\n      drive:'Territories are as compact as they get\u2014the least driving possible.'\n    };\n    var cs=document.getElementById('tbb-csub'); if(cs) cs.textContent=CONGRATS[goal]||CONGRATS.accounts;\n    document.getElementById('tbb-details').classList.add('show');\n  }\n  function setChipsEnabled(on){document.querySelectorAll('#tbb-chips .tbb-chip').forEach(function(b){b.style.pointerEvents=on?'':'none';b.style.opacity=on?'':'.6';});}\n\n  function selectGoal(g){\n    goal=g;\n    document.querySelectorAll('#tbb-chips .tbb-chip').forEach(function(b){b.classList.toggle('on',b.getAttribute('data-goal')===g);});\n    var btn=document.getElementById('tbb-opt');\n    if(optimized){document.getElementById('tbb-opt-lbl').textContent='Optimize';btn.classList.add('pulse');}\n  }\n  document.querySelectorAll('#tbb-chips .tbb-chip').forEach(function(b){b.addEventListener('click',function(){selectGoal(b.getAttribute('data-goal'));});});\n  document.getElementById('tbb-opt').addEventListener('click',optimize);\n\n  \/* ---- hover ---- *\/\n  function evtPos(e){var rc=cv.getBoundingClientRect();return [e.clientX-rc.left,e.clientY-rc.top];}\n  function pointInPoly(p,poly){var x=p[0],y=p[1],inside=false;for(var i=0,j=poly.length-1;i<poly.length;j=i++){var xi=poly[i][0],yi=poly[i][1],xj=poly[j][0],yj=poly[j][1];if(((yi>y)!=(yj>y))&&(x<(xj-xi)*(y-yi)\/(yj-yi)+xi))inside=!inside;}return inside;}\n  function repAt(px,py){\n    for(var r=0;r<NR;r++){var pp=PX(REPS[r].home[0],REPS[r].home[1]);if(dist(px,py,pp[0],pp[1])<=16)return r;}\n    var lp=[(px-T.ox)\/T.s,(py-T.oy)\/T.s];\n    for(r=0;r<NR;r++){var hc=hullCache[r];if(hc&&hc.pts.length>=3&&pointInPoly(lp,hc.pts))return r;}\n    return -1;\n  }\n  cv.addEventListener('pointermove',function(e){\n    if(animating||!optimized){ if(hoverRep!==-1){hoverRep=-1;tip.style.opacity='0';draw();} return; }\n    var p=evtPos(e), r=repAt(p[0],p[1]);\n    cv.style.cursor=r>=0?'pointer':'default';\n    if(r!==hoverRep){hoverRep=r;draw();}\n    if(r>=0 && curStats){\n      var pp=PX(REPS[r].home[0],REPS[r].home[1]);\n      tip.innerHTML='<div class=\"t\" style=\"color:'+REPS[r].color+'\">'+REPS[r].name+'&rsquo;s territory<\/div>'\n        +'<div class=\"s\"><svg class=\"tb-ic tipic\"><use href=\"#tb-i-building\"\/><\/svg><b>'+curStats.c[r]+'<\/b>&nbsp;accounts<\/div>'\n        +'<div class=\"s\"><svg class=\"tb-ic tipic\"><use href=\"#tb-i-coins\"\/><\/svg><b>'+fmtMoney(curStats.rv[r])+'<\/b>&nbsp;revenue<\/div>';\n      tip.style.left=pp[0]+'px';tip.style.top=pp[1]+'px';\n      tip.style.transform = (pp[1] < cssH*0.45) ? 'translate(-50%,30px)' : 'translate(-50%,-118%)';\n      tip.style.opacity='1';\n    } else tip.style.opacity='0';\n  });\n  cv.addEventListener('pointerleave',function(){hoverRep=-1;tip.style.opacity='0';draw();});\n\n  \/* ---- boot ---- *\/\n  buildRepList(); genScenario(seed); clearRepList(); selectGoal('accounts');\n  if('ResizeObserver' in window) new ResizeObserver(resize).observe(mapEl);\n  window.addEventListener('resize', resize);\n  requestAnimationFrame(resize); setTimeout(resize,60);\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Balance Territories by What Actually Matters Split accounts, revenue, and drive-time across your field team&mdash;evenly, in one click. Get a Demo See it in action What You Can Balance Balance on Any Metric That Matters Mapsly does not stop at account counts. Weight several dimensions at once and let it draw fair territories. Accounts and [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-31839","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Territory Balancer - Mapsly<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mapsly.com\/tr\/territory-balancer\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Territory Balancer - Mapsly\" \/>\n<meta property=\"og:description\" content=\"Balance Territories by What Actually Matters Split accounts, revenue, and drive-time across your field team&mdash;evenly, in one click. Get a Demo See it in action What You Can Balance Balance on Any Metric That Matters Mapsly does not stop at account counts. Weight several dimensions at once and let it draw fair territories. Accounts and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mapsly.com\/tr\/territory-balancer\/\" \/>\n<meta property=\"og:site_name\" content=\"Mapsly\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-16T17:58:10+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/territory-balancer\\\/\",\"url\":\"https:\\\/\\\/mapsly.com\\\/territory-balancer\\\/\",\"name\":\"Territory Balancer - Mapsly\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#website\"},\"datePublished\":\"2026-07-16T17:57:48+00:00\",\"dateModified\":\"2026-07-16T17:58:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/territory-balancer\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mapsly.com\\\/territory-balancer\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/territory-balancer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mapsly.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Territory Balancer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#website\",\"url\":\"https:\\\/\\\/mapsly.com\\\/\",\"name\":\"Mapsly\",\"description\":\"The Ultimate CRM Map\",\"publisher\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mapsly.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#organization\",\"name\":\"Mapsly\",\"url\":\"https:\\\/\\\/mapsly.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Mapsly-Logo-2x-BIG.png\",\"contentUrl\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Mapsly-Logo-2x-BIG.png\",\"width\":280,\"height\":85,\"caption\":\"Mapsly\"},\"image\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"B\u00f6lge Dengeleyici - Mapsly","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mapsly.com\/tr\/territory-balancer\/","og_locale":"tr_TR","og_type":"article","og_title":"Territory Balancer - Mapsly","og_description":"Balance Territories by What Actually Matters Split accounts, revenue, and drive-time across your field team&mdash;evenly, in one click. Get a Demo See it in action What You Can Balance Balance on Any Metric That Matters Mapsly does not stop at account counts. Weight several dimensions at once and let it draw fair territories. Accounts and [&hellip;]","og_url":"https:\/\/mapsly.com\/tr\/territory-balancer\/","og_site_name":"Mapsly","article_modified_time":"2026-07-16T17:58:10+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mapsly.com\/territory-balancer\/","url":"https:\/\/mapsly.com\/territory-balancer\/","name":"B\u00f6lge Dengeleyici - Mapsly","isPartOf":{"@id":"https:\/\/mapsly.com\/#website"},"datePublished":"2026-07-16T17:57:48+00:00","dateModified":"2026-07-16T17:58:10+00:00","breadcrumb":{"@id":"https:\/\/mapsly.com\/territory-balancer\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mapsly.com\/territory-balancer\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mapsly.com\/territory-balancer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mapsly.com\/"},{"@type":"ListItem","position":2,"name":"Territory Balancer"}]},{"@type":"WebSite","@id":"https:\/\/mapsly.com\/#website","url":"https:\/\/mapsly.com\/","name":"Mapsly","description":"Nihai CRM Haritas\u0131","publisher":{"@id":"https:\/\/mapsly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mapsly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/mapsly.com\/#organization","name":"Mapsly","url":"https:\/\/mapsly.com\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/","url":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","contentUrl":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","width":280,"height":85,"caption":"Mapsly"},"image":{"@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/pages\/31839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/comments?post=31839"}],"version-history":[{"count":11,"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/pages\/31839\/revisions"}],"predecessor-version":[{"id":31851,"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/pages\/31839\/revisions\/31851"}],"wp:attachment":[{"href":"https:\/\/mapsly.com\/tr\/wp-json\/wp\/v2\/media?parent=31839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}