Warning: chmod(): Operation not permitted in /data/html/improve/wp-content/plugins/wordfence/wordfence.php on line 8
403WebShell
403Webshell
Server IP : 52.9.100.119  /  Your IP : 216.73.216.193
Web Server : Apache/2.4.61 (Amazon) OpenSSL/1.0.2k-fips PHP/7.3.30 Phusion_Passenger/5.1.5
System : Linux ip-172-31-9-35 4.14.355-196.618.amzn1.x86_64 #1 SMP Mon Apr 7 17:09:50 UTC 2025 x86_64
User : root ( 0)
PHP Version : 7.3.30
Disable Function : exec,passthru,shell_exec,system,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /data/html/cayo.mx/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /data/html/cayo.mx/heatmapgarlans.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Garlans & Cayo — Heatmap de Colonias</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Outfit:wght@400;600;700;800&display=swap" rel="stylesheet">
<style>
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Outfit',sans-serif;background:#08090d;color:#dde2f0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
header{background:#0f1118;border-bottom:1px solid #252c3e;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;z-index:200}
.brand{font-size:16px;font-weight:700;color:#e8b84b;letter-spacing:-.3px}
.hsub{font-family:'DM Mono',monospace;font-size:10px;color:#40485e;margin-left:10px;letter-spacing:.8px}
.hright{display:flex;align-items:center;gap:10px}
.ctlbar{background:#0f1118;border-bottom:1px solid #252c3e;padding:0 20px;display:flex;align-items:center;gap:12px;height:46px;flex-shrink:0;overflow-x:auto}
.ctlbar::-webkit-scrollbar{display:none}
label{font-family:'DM Mono',monospace;font-size:10px;color:#7880a0;letter-spacing:.5px;white-space:nowrap}
select{background:#161921;border:1px solid #252c3e;color:#dde2f0;font-family:'DM Mono',monospace;font-size:11px;padding:5px 10px;border-radius:6px;cursor:pointer;outline:none}
select:hover{border-color:#e8b84b}
.sep{width:1px;height:24px;background:#252c3e;flex-shrink:0}
.layout{display:flex;flex:1;overflow:hidden}
#map{flex:1}
.sidebar{width:280px;background:#0f1118;border-left:1px solid #252c3e;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}
.sb-hdr{padding:14px 16px;border-bottom:1px solid #252c3e;flex-shrink:0}
.sb-title{font-size:11px;font-weight:700;color:#7880a0;text-transform:uppercase;letter-spacing:1px}
.sb-sub{font-family:'DM Mono',monospace;font-size:9px;color:#40485e;margin-top:2px}
.sb-list{flex:1;overflow-y:auto;padding:8px 0}
.sb-list::-webkit-scrollbar{width:4px}
.sb-list::-webkit-scrollbar-track{background:#0a0b10}
.sb-list::-webkit-scrollbar-thumb{background:#252c3e;border-radius:2px}
.sb-item{padding:10px 16px;border-bottom:1px solid #0d1018;cursor:pointer;transition:.15s;display:flex;align-items:flex-start;gap:10px}
.sb-item:hover{background:#161921}
.sb-item.active{background:#1a2030;border-left:3px solid #e8b84b}
.sb-rank{font-family:'DM Mono',monospace;font-size:10px;color:#40485e;width:18px;flex-shrink:0;padding-top:1px}
.sb-info{flex:1;min-width:0}
.sb-name{font-size:11px;font-weight:600;color:#dde2f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.sb-val{font-family:'DM Mono',monospace;font-size:12px;color:#e8b84b;font-weight:500}
.sb-meta{font-family:'DM Mono',monospace;font-size:9px;color:#7880a0;margin-top:2px}
.bar-wrap{display:flex;align-items:center;gap:6px;margin-top:4px}
.bar-bg{flex:1;height:3px;background:#1e2230;border-radius:2px;overflow:hidden}
.bar-fill{height:100%;border-radius:2px;transition:.3s}
.badge{font-family:'DM Mono',monospace;font-size:9px;padding:1px 6px;border-radius:4px;font-weight:500}
.badge.hi{background:rgba(62,201,160,.15);color:#3ec9a0}
.badge.md{background:rgba(232,184,75,.15);color:#e8b84b}
.badge.lo{background:rgba(224,80,96,.15);color:#e05060}
.minfilter{display:flex;gap:4px;align-items:center}
.mfbtn{background:#161921;border:1px solid #252c3e;color:#7880a0;font-family:'DM Mono',monospace;font-size:10px;padding:4px 10px;border-radius:5px;cursor:pointer;transition:.15s}
.mfbtn:hover,.mfbtn.on{background:#e8b84b20;border-color:#e8b84b;color:#e8b84b}
.info-box{background:#1a2030;border:1px solid #252c3e;border-radius:8px;padding:14px 16px;margin:8px;flex-shrink:0}
.ib-name{font-size:12px;font-weight:700;color:#dde2f0;margin-bottom:10px}
.ib-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ib-cell{background:#0f1118;border-radius:5px;padding:8px}
.ib-lbl{font-family:'DM Mono',monospace;font-size:8px;color:#40485e;text-transform:uppercase;letter-spacing:.8px;margin-bottom:3px}
.ib-val{font-family:'DM Mono',monospace;font-size:13px;color:#e8b84b;font-weight:500}
</style>
</head>
<body>
<header>
  <div style="display:flex;align-items:baseline">
    <div class="brand">Garlans &amp; Cayo</div>
    <div class="hsub">MAPA DE COLONIAS · MEXICALI</div>
  </div>
  <div class="hright">
    <div style="font-family:'DM Mono',monospace;font-size:10px;color:#40485e">350 colonias · Base Maestra Oficial</div>
  </div>
</header>

<div class="ctlbar">
  <label>VARIABLE</label>
  <select id="sel-var" onchange="updateMap()">
    <option value="clientes">Clientes</option>
    <option value="gasto_prom">Gasto Promedio ($)</option>
    <option value="saldo_prom">Saldo Promedio ($)</option>
    <option value="util_prom">Utilización (%)</option>
    <option value="visitas_prom">Visitas Promedio</option>
    <option value="dias_ult_prom">Días Última Compra</option>
  </select>
  <div class="sep"></div>
  <label>MODO</label>
  <select id="sel-modo" onchange="updateMap()">
    <option value="heat">Calor</option>
    <option value="bubble">Burbujas</option>
    <option value="both">Ambos</option>
  </select>
  <div class="sep"></div>
  <label>MÍN. CLIENTES</label>
  <div class="minfilter">
    <button class="mfbtn on" onclick="setMin(2,this)">2+</button>
    <button class="mfbtn" onclick="setMin(5,this)">5+</button>
    <button class="mfbtn" onclick="setMin(10,this)">10+</button>
    <button class="mfbtn" onclick="setMin(20,this)">20+</button>
  </div>
</div>

<div class="layout">
  <div id="map"></div>
  <div class="sidebar">
    <div class="sb-hdr">
      <div class="sb-title" id="sb-title">Por Clientes</div>
      <div class="sb-sub" id="sb-sub">Ordenado de mayor a menor</div>
    </div>
    <div class="info-box" id="info-box" style="display:none">
      <div class="ib-name" id="ib-name">—</div>
      <div class="ib-grid" id="ib-grid"></div>
    </div>
    <div class="sb-list" id="sb-list"></div>
  </div>
</div>

<script>
const COL_DATA = [{"nombre": "Fracc. Villas del Rey", "clientes": 118, "gasto_prom": 487.32, "saldo_prom": 229.6, "limite_prom": 1049.36, "util_prom": 0.29, "visitas_prom": 7.5, "dias_ult_prom": 99.59}, {"nombre": "Col. Independencia", "clientes": 63, "gasto_prom": 576.64, "saldo_prom": 291.67, "limite_prom": 1123.1, "util_prom": 0.29, "visitas_prom": 8.0, "dias_ult_prom": 95.81}, {"nombre": "Col. Pro-Hogar", "clientes": 50, "gasto_prom": 470.11, "saldo_prom": 182.73, "limite_prom": 1108.5, "util_prom": 0.21, "visitas_prom": 8.1, "dias_ult_prom": 111.08}, {"nombre": "Col. Esperanza", "clientes": 46, "gasto_prom": 464.82, "saldo_prom": 244.2, "limite_prom": 1139.67, "util_prom": 0.25, "visitas_prom": 8.35, "dias_ult_prom": 86.5}, {"nombre": "Jardines del Lago", "clientes": 42, "gasto_prom": 680.52, "saldo_prom": 379.15, "limite_prom": 1744.4, "util_prom": 0.26, "visitas_prom": 9.81, "dias_ult_prom": 75.52}, {"nombre": "Col. Baja California", "clientes": 40, "gasto_prom": 476.0, "saldo_prom": 230.86, "limite_prom": 1194.38, "util_prom": 0.21, "visitas_prom": 8.9, "dias_ult_prom": 91.92}, {"nombre": "Fracc. Villa Colonial", "clientes": 38, "gasto_prom": 577.34, "saldo_prom": 301.58, "limite_prom": 1182.37, "util_prom": 0.29, "visitas_prom": 9.08, "dias_ult_prom": 83.42}, {"nombre": "Col. Gonzalez Ortega", "clientes": 38, "gasto_prom": 419.73, "saldo_prom": 161.01, "limite_prom": 781.58, "util_prom": 0.3, "visitas_prom": 7.08, "dias_ult_prom": 105.21}, {"nombre": "Fracc. Paseos del Sol", "clientes": 36, "gasto_prom": 704.84, "saldo_prom": 345.89, "limite_prom": 1032.64, "util_prom": 0.38, "visitas_prom": 8.42, "dias_ult_prom": 101.31}, {"nombre": "Fracc. Hacienda del Rio", "clientes": 28, "gasto_prom": 640.47, "saldo_prom": 318.36, "limite_prom": 1175.0, "util_prom": 0.31, "visitas_prom": 8.14, "dias_ult_prom": 104.57}, {"nombre": "Fracc. Santa Monica", "clientes": 26, "gasto_prom": 623.43, "saldo_prom": 331.58, "limite_prom": 1424.04, "util_prom": 0.22, "visitas_prom": 8.81, "dias_ult_prom": 102.54}, {"nombre": "Fracc. Villa Verde", "clientes": 24, "gasto_prom": 720.15, "saldo_prom": 392.55, "limite_prom": 1334.38, "util_prom": 0.31, "visitas_prom": 8.67, "dias_ult_prom": 96.04}, {"nombre": "Fracc. Villas del Colorado", "clientes": 23, "gasto_prom": 464.27, "saldo_prom": 224.09, "limite_prom": 1156.52, "util_prom": 0.19, "visitas_prom": 8.22, "dias_ult_prom": 105.3}, {"nombre": "Fracc. Venezia", "clientes": 22, "gasto_prom": 639.4, "saldo_prom": 327.65, "limite_prom": 1522.95, "util_prom": 0.26, "visitas_prom": 10.36, "dias_ult_prom": 87.23}, {"nombre": "Infonavit Cucapah", "clientes": 20, "gasto_prom": 293.78, "saldo_prom": 147.33, "limite_prom": 1028.75, "util_prom": 0.18, "visitas_prom": 5.35, "dias_ult_prom": 77.2}, {"nombre": "Fracc. Sonora", "clientes": 20, "gasto_prom": 530.66, "saldo_prom": 287.19, "limite_prom": 1207.25, "util_prom": 0.29, "visitas_prom": 8.2, "dias_ult_prom": 91.0}, {"nombre": "Conj Urb Universitario", "clientes": 20, "gasto_prom": 411.56, "saldo_prom": 182.27, "limite_prom": 1296.25, "util_prom": 0.09, "visitas_prom": 8.3, "dias_ult_prom": 110.9}, {"nombre": "Col. Alamitos", "clientes": 19, "gasto_prom": 549.19, "saldo_prom": 239.29, "limite_prom": 1324.63, "util_prom": 0.18, "visitas_prom": 8.16, "dias_ult_prom": 122.21}, {"nombre": "Col. Hidalgo", "clientes": 19, "gasto_prom": 496.23, "saldo_prom": 251.33, "limite_prom": 1264.47, "util_prom": 0.17, "visitas_prom": 8.05, "dias_ult_prom": 111.84}, {"nombre": "Col. Nacionalista", "clientes": 19, "gasto_prom": 688.47, "saldo_prom": 253.68, "limite_prom": 968.42, "util_prom": 0.27, "visitas_prom": 7.63, "dias_ult_prom": 120.26}, {"nombre": "Fracc. San Marcos", "clientes": 18, "gasto_prom": 471.76, "saldo_prom": 199.12, "limite_prom": 945.83, "util_prom": 0.24, "visitas_prom": 7.89, "dias_ult_prom": 96.89}, {"nombre": "Col. Industrial", "clientes": 18, "gasto_prom": 419.66, "saldo_prom": 225.07, "limite_prom": 1452.78, "util_prom": 0.13, "visitas_prom": 8.0, "dias_ult_prom": 121.56}, {"nombre": "Col. Cuauhtemoc Norte", "clientes": 18, "gasto_prom": 420.99, "saldo_prom": 201.19, "limite_prom": 1244.44, "util_prom": 0.19, "visitas_prom": 6.89, "dias_ult_prom": 125.72}, {"nombre": "Fracc. Villanova", "clientes": 18, "gasto_prom": 869.27, "saldo_prom": 508.42, "limite_prom": 1851.11, "util_prom": 0.2, "visitas_prom": 7.78, "dias_ult_prom": 105.39}, {"nombre": "Col. Libertad", "clientes": 18, "gasto_prom": 718.11, "saldo_prom": 407.69, "limite_prom": 1561.11, "util_prom": 0.22, "visitas_prom": 7.78, "dias_ult_prom": 91.89}, {"nombre": "Col. Nueva", "clientes": 18, "gasto_prom": 567.55, "saldo_prom": 317.81, "limite_prom": 1552.78, "util_prom": 0.2, "visitas_prom": 7.89, "dias_ult_prom": 104.56}, {"nombre": "Fracc. las Hadas", "clientes": 17, "gasto_prom": 485.0, "saldo_prom": 203.01, "limite_prom": 1048.24, "util_prom": 0.24, "visitas_prom": 7.71, "dias_ult_prom": 98.65}, {"nombre": "Conj Urbano Esperanza", "clientes": 16, "gasto_prom": 799.92, "saldo_prom": 472.77, "limite_prom": 1803.12, "util_prom": 0.24, "visitas_prom": 9.69, "dias_ult_prom": 81.12}, {"nombre": "Fracc. el Campanario", "clientes": 16, "gasto_prom": 615.85, "saldo_prom": 354.63, "limite_prom": 834.38, "util_prom": 0.44, "visitas_prom": 8.38, "dias_ult_prom": 51.12}, {"nombre": "Fracc. Montecarlo", "clientes": 16, "gasto_prom": 668.86, "saldo_prom": 415.16, "limite_prom": 1492.19, "util_prom": 0.25, "visitas_prom": 7.88, "dias_ult_prom": 88.06}, {"nombre": "Fracc. Calafia", "clientes": 16, "gasto_prom": 513.98, "saldo_prom": 182.24, "limite_prom": 1240.62, "util_prom": 0.2, "visitas_prom": 7.88, "dias_ult_prom": 97.06}, {"nombre": "Col. Carbajal", "clientes": 16, "gasto_prom": 377.45, "saldo_prom": 124.15, "limite_prom": 956.25, "util_prom": 0.12, "visitas_prom": 6.19, "dias_ult_prom": 123.5}, {"nombre": "Fracc. Valle Dorado", "clientes": 16, "gasto_prom": 408.29, "saldo_prom": 206.12, "limite_prom": 1039.06, "util_prom": 0.17, "visitas_prom": 7.88, "dias_ult_prom": 93.94}, {"nombre": "Fracc. Barcelona Residencial", "clientes": 15, "gasto_prom": 772.91, "saldo_prom": 345.35, "limite_prom": 1185.0, "util_prom": 0.41, "visitas_prom": 11.13, "dias_ult_prom": 70.33}, {"nombre": "Fracc. Nuevo Mexicali", "clientes": 15, "gasto_prom": 500.77, "saldo_prom": 264.79, "limite_prom": 1171.67, "util_prom": 0.24, "visitas_prom": 8.33, "dias_ult_prom": 93.47}, {"nombre": "Fracc. 27 de Septiembre", "clientes": 15, "gasto_prom": 272.44, "saldo_prom": 121.59, "limite_prom": 1266.67, "util_prom": 0.1, "visitas_prom": 4.27, "dias_ult_prom": 130.13}, {"nombre": "Col. Pueblo Nuevo", "clientes": 15, "gasto_prom": 554.88, "saldo_prom": 318.24, "limite_prom": 1215.33, "util_prom": 0.33, "visitas_prom": 9.2, "dias_ult_prom": 80.6}, {"nombre": "Col. Santa Clara", "clientes": 14, "gasto_prom": 504.93, "saldo_prom": 164.3, "limite_prom": 1201.79, "util_prom": 0.16, "visitas_prom": 8.79, "dias_ult_prom": 119.79}, {"nombre": "Fracc. Villafontana", "clientes": 14, "gasto_prom": 406.76, "saldo_prom": 166.61, "limite_prom": 1577.14, "util_prom": 0.16, "visitas_prom": 6.93, "dias_ult_prom": 126.29}, {"nombre": "Fracc. Hacienda los Portales", "clientes": 14, "gasto_prom": 431.68, "saldo_prom": 209.37, "limite_prom": 828.57, "util_prom": 0.19, "visitas_prom": 8.29, "dias_ult_prom": 101.43}, {"nombre": "Hacienda del Bosque", "clientes": 13, "gasto_prom": 402.58, "saldo_prom": 155.4, "limite_prom": 700.0, "util_prom": 0.23, "visitas_prom": 6.92, "dias_ult_prom": 126.62}, {"nombre": "Col. Benito Juarez", "clientes": 13, "gasto_prom": 515.26, "saldo_prom": 276.81, "limite_prom": 1075.0, "util_prom": 0.39, "visitas_prom": 9.0, "dias_ult_prom": 104.15}, {"nombre": "Col. Insurgentes Este", "clientes": 13, "gasto_prom": 521.68, "saldo_prom": 188.27, "limite_prom": 975.0, "util_prom": 0.23, "visitas_prom": 7.92, "dias_ult_prom": 91.62}, {"nombre": "Residencial Gran Venecia", "clientes": 13, "gasto_prom": 760.72, "saldo_prom": 457.22, "limite_prom": 1307.69, "util_prom": 0.36, "visitas_prom": 11.85, "dias_ult_prom": 93.54}, {"nombre": "Fracc. Hipico", "clientes": 12, "gasto_prom": 740.21, "saldo_prom": 364.64, "limite_prom": 1416.25, "util_prom": 0.28, "visitas_prom": 10.25, "dias_ult_prom": 69.92}, {"nombre": "Fracc. Residencias", "clientes": 12, "gasto_prom": 534.54, "saldo_prom": 274.15, "limite_prom": 1537.5, "util_prom": 0.25, "visitas_prom": 7.83, "dias_ult_prom": 76.75}, {"nombre": "Fracc. el Lienzo", "clientes": 12, "gasto_prom": 605.98, "saldo_prom": 315.6, "limite_prom": 1100.0, "util_prom": 0.39, "visitas_prom": 9.17, "dias_ult_prom": 90.0}, {"nombre": "Fracc. Solidaridad", "clientes": 12, "gasto_prom": 775.47, "saldo_prom": 383.83, "limite_prom": 1416.67, "util_prom": 0.35, "visitas_prom": 10.5, "dias_ult_prom": 104.17}, {"nombre": "Fracc. Sevilla Residencial", "clientes": 12, "gasto_prom": 699.64, "saldo_prom": 348.19, "limite_prom": 816.67, "util_prom": 0.41, "visitas_prom": 7.42, "dias_ult_prom": 96.42}, {"nombre": "Valle del Pedregal", "clientes": 12, "gasto_prom": 450.94, "saldo_prom": 200.03, "limite_prom": 993.75, "util_prom": 0.22, "visitas_prom": 8.0, "dias_ult_prom": 98.92}, {"nombre": "Fracc. Fovissste", "clientes": 12, "gasto_prom": 537.02, "saldo_prom": 214.91, "limite_prom": 1275.0, "util_prom": 0.25, "visitas_prom": 7.58, "dias_ult_prom": 120.25}, {"nombre": "Fracc. Puerta del Sol", "clientes": 11, "gasto_prom": 694.1, "saldo_prom": 320.87, "limite_prom": 1509.09, "util_prom": 0.24, "visitas_prom": 11.0, "dias_ult_prom": 100.73}, {"nombre": "Fracc. Villa Mediterranea", "clientes": 11, "gasto_prom": 592.55, "saldo_prom": 268.81, "limite_prom": 1615.91, "util_prom": 0.19, "visitas_prom": 8.64, "dias_ult_prom": 91.64}, {"nombre": "Ejido Islas Agrarias", "clientes": 11, "gasto_prom": 596.64, "saldo_prom": 158.19, "limite_prom": 784.09, "util_prom": 0.21, "visitas_prom": 6.82, "dias_ult_prom": 116.45}, {"nombre": "Quintas del Rey", "clientes": 11, "gasto_prom": 605.01, "saldo_prom": 413.42, "limite_prom": 1286.36, "util_prom": 0.28, "visitas_prom": 7.27, "dias_ult_prom": 119.64}, {"nombre": "Fracc. las Flores", "clientes": 11, "gasto_prom": 477.96, "saldo_prom": 298.98, "limite_prom": 1297.73, "util_prom": 0.29, "visitas_prom": 6.18, "dias_ult_prom": 97.55}, {"nombre": "Col. Lazaro Cardenas", "clientes": 11, "gasto_prom": 834.37, "saldo_prom": 306.8, "limite_prom": 1390.91, "util_prom": 0.21, "visitas_prom": 9.36, "dias_ult_prom": 80.82}, {"nombre": "Fracc. Valle de Puebla", "clientes": 10, "gasto_prom": 439.43, "saldo_prom": 206.76, "limite_prom": 770.0, "util_prom": 0.25, "visitas_prom": 8.4, "dias_ult_prom": 104.9}, {"nombre": "Fracc. Quinta Granada", "clientes": 10, "gasto_prom": 656.06, "saldo_prom": 310.37, "limite_prom": 1017.5, "util_prom": 0.28, "visitas_prom": 7.2, "dias_ult_prom": 138.9}, {"nombre": "Fracc. los Naranjos", "clientes": 10, "gasto_prom": 379.38, "saldo_prom": 216.32, "limite_prom": 1567.5, "util_prom": 0.25, "visitas_prom": 9.8, "dias_ult_prom": 155.0}, {"nombre": "Fracc. la Condesa", "clientes": 10, "gasto_prom": 728.09, "saldo_prom": 486.54, "limite_prom": 1310.0, "util_prom": 0.31, "visitas_prom": 7.0, "dias_ult_prom": 90.0}, {"nombre": "Fracc. los Pinos", "clientes": 10, "gasto_prom": 395.82, "saldo_prom": 150.62, "limite_prom": 1187.5, "util_prom": 0.15, "visitas_prom": 8.1, "dias_ult_prom": 99.6}, {"nombre": "Col. Burocratas", "clientes": 10, "gasto_prom": 684.26, "saldo_prom": 402.87, "limite_prom": 1050.0, "util_prom": 0.25, "visitas_prom": 9.5, "dias_ult_prom": 85.0}, {"nombre": "Col. Division del Norte", "clientes": 10, "gasto_prom": 467.43, "saldo_prom": 155.64, "limite_prom": 910.0, "util_prom": 0.21, "visitas_prom": 7.8, "dias_ult_prom": 88.7}, {"nombre": "Fracc. Quintas del Centro", "clientes": 10, "gasto_prom": 668.9, "saldo_prom": 273.46, "limite_prom": 870.0, "util_prom": 0.46, "visitas_prom": 7.1, "dias_ult_prom": 78.7}, {"nombre": "Ex Ejido Coahuila", "clientes": 10, "gasto_prom": 994.33, "saldo_prom": 569.26, "limite_prom": 1535.0, "util_prom": 0.36, "visitas_prom": 11.5, "dias_ult_prom": 66.4}, {"nombre": "Fracc. Barcelona", "clientes": 10, "gasto_prom": 477.98, "saldo_prom": 228.75, "limite_prom": 1202.5, "util_prom": 0.28, "visitas_prom": 6.4, "dias_ult_prom": 97.2}, {"nombre": "Puerta de Alcala", "clientes": 9, "gasto_prom": 389.88, "saldo_prom": 282.72, "limite_prom": 1747.22, "util_prom": 0.18, "visitas_prom": 6.78, "dias_ult_prom": 148.56}, {"nombre": "Villas del Palmar", "clientes": 9, "gasto_prom": 407.25, "saldo_prom": 116.33, "limite_prom": 1091.67, "util_prom": 0.14, "visitas_prom": 6.0, "dias_ult_prom": 145.33}, {"nombre": "Fracc. Gran Hacienda", "clientes": 9, "gasto_prom": 633.34, "saldo_prom": 238.61, "limite_prom": 1213.89, "util_prom": 0.27, "visitas_prom": 10.89, "dias_ult_prom": 44.78}, {"nombre": "Fracc. Jardines de Lago", "clientes": 9, "gasto_prom": 797.98, "saldo_prom": 361.1, "limite_prom": 1100.0, "util_prom": 0.4, "visitas_prom": 11.67, "dias_ult_prom": 62.67}, {"nombre": "Col. Miraflores", "clientes": 9, "gasto_prom": 682.5, "saldo_prom": 446.13, "limite_prom": 1180.56, "util_prom": 0.48, "visitas_prom": 10.0, "dias_ult_prom": 35.22}, {"nombre": "Mision del Valle", "clientes": 9, "gasto_prom": 494.66, "saldo_prom": 268.58, "limite_prom": 1150.0, "util_prom": 0.33, "visitas_prom": 4.56, "dias_ult_prom": 140.0}, {"nombre": "Fracc. Porticos del Valle", "clientes": 9, "gasto_prom": 402.92, "saldo_prom": 248.24, "limite_prom": 738.89, "util_prom": 0.45, "visitas_prom": 7.67, "dias_ult_prom": 47.89}, {"nombre": "Fracc. Casa Digna", "clientes": 9, "gasto_prom": 539.31, "saldo_prom": 295.92, "limite_prom": 961.67, "util_prom": 0.34, "visitas_prom": 9.89, "dias_ult_prom": 54.0}, {"nombre": "Col. Cuauthemoc", "clientes": 8, "gasto_prom": 376.77, "saldo_prom": 238.46, "limite_prom": 1526.56, "util_prom": 0.15, "visitas_prom": 10.38, "dias_ult_prom": 79.25}, {"nombre": "Ejido Nuevo Leon", "clientes": 8, "gasto_prom": 423.03, "saldo_prom": 184.12, "limite_prom": 931.25, "util_prom": 0.16, "visitas_prom": 7.75, "dias_ult_prom": 70.0}, {"nombre": "Montecarlo Residencial", "clientes": 8, "gasto_prom": 648.11, "saldo_prom": 301.29, "limite_prom": 1243.75, "util_prom": 0.3, "visitas_prom": 5.88, "dias_ult_prom": 166.62}, {"nombre": "Fracc. Vista Hermosa", "clientes": 8, "gasto_prom": 495.89, "saldo_prom": 198.03, "limite_prom": 1062.5, "util_prom": 0.18, "visitas_prom": 8.62, "dias_ult_prom": 115.88}, {"nombre": "Col. Nacozari", "clientes": 7, "gasto_prom": 804.45, "saldo_prom": 363.45, "limite_prom": 1707.14, "util_prom": 0.18, "visitas_prom": 5.14, "dias_ult_prom": 113.71}, {"nombre": "Col. Lucerna", "clientes": 7, "gasto_prom": 396.76, "saldo_prom": 171.24, "limite_prom": 1135.71, "util_prom": 0.2, "visitas_prom": 10.86, "dias_ult_prom": 96.29}, {"nombre": "Fracc. del Prado", "clientes": 7, "gasto_prom": 622.76, "saldo_prom": 320.22, "limite_prom": 850.0, "util_prom": 0.45, "visitas_prom": 8.14, "dias_ult_prom": 69.57}, {"nombre": "Villa Florida", "clientes": 7, "gasto_prom": 343.2, "saldo_prom": 242.45, "limite_prom": 1403.57, "util_prom": 0.2, "visitas_prom": 6.86, "dias_ult_prom": 110.43}, {"nombre": "Fracc. Portales 3", "clientes": 7, "gasto_prom": 521.57, "saldo_prom": 321.08, "limite_prom": 817.86, "util_prom": 0.49, "visitas_prom": 10.29, "dias_ult_prom": 53.57}, {"nombre": "Fracc. Santo Domingo", "clientes": 7, "gasto_prom": 461.16, "saldo_prom": 137.7, "limite_prom": 1096.43, "util_prom": 0.16, "visitas_prom": 7.29, "dias_ult_prom": 102.29}, {"nombre": "Fracc. Villas del Campo", "clientes": 7, "gasto_prom": 267.36, "saldo_prom": 144.86, "limite_prom": 1282.14, "util_prom": 0.15, "visitas_prom": 8.43, "dias_ult_prom": 105.43}, {"nombre": "Conj. Urbano Orizaba", "clientes": 7, "gasto_prom": 739.02, "saldo_prom": 470.33, "limite_prom": 964.29, "util_prom": 0.55, "visitas_prom": 7.71, "dias_ult_prom": 60.71}, {"nombre": "Col. Sta. Maria", "clientes": 7, "gasto_prom": 642.28, "saldo_prom": 365.97, "limite_prom": 1621.43, "util_prom": 0.22, "visitas_prom": 7.86, "dias_ult_prom": 96.29}, {"nombre": "Col. Santa Teresa", "clientes": 7, "gasto_prom": 503.45, "saldo_prom": 270.27, "limite_prom": 1589.29, "util_prom": 0.26, "visitas_prom": 8.86, "dias_ult_prom": 77.71}, {"nombre": "Fracc. Alameda", "clientes": 7, "gasto_prom": 449.61, "saldo_prom": 181.73, "limite_prom": 1146.43, "util_prom": 0.17, "visitas_prom": 7.29, "dias_ult_prom": 132.0}, {"nombre": "Fracc. Casa Maya", "clientes": 7, "gasto_prom": 752.75, "saldo_prom": 292.1, "limite_prom": 1464.29, "util_prom": 0.14, "visitas_prom": 7.71, "dias_ult_prom": 90.71}, {"nombre": "Fracc. Juventud 2000", "clientes": 7, "gasto_prom": 303.33, "saldo_prom": 134.29, "limite_prom": 757.14, "util_prom": 0.21, "visitas_prom": 6.0, "dias_ult_prom": 103.71}, {"nombre": "Rivera Campestre", "clientes": 7, "gasto_prom": 490.23, "saldo_prom": 295.62, "limite_prom": 1214.29, "util_prom": 0.25, "visitas_prom": 8.0, "dias_ult_prom": 104.43}, {"nombre": "Santa Monica", "clientes": 7, "gasto_prom": 341.12, "saldo_prom": 146.0, "limite_prom": 1378.57, "util_prom": 0.13, "visitas_prom": 7.71, "dias_ult_prom": 139.29}, {"nombre": "Esperanza Agricola", "clientes": 7, "gasto_prom": 291.49, "saldo_prom": 203.09, "limite_prom": 1335.71, "util_prom": 0.15, "visitas_prom": 6.0, "dias_ult_prom": 134.43}, {"nombre": "Col. Constitucion", "clientes": 7, "gasto_prom": 276.28, "saldo_prom": 128.34, "limite_prom": 1278.57, "util_prom": 0.1, "visitas_prom": 8.86, "dias_ult_prom": 97.43}, {"nombre": "California Residencial", "clientes": 7, "gasto_prom": 505.12, "saldo_prom": 223.78, "limite_prom": 707.14, "util_prom": 0.28, "visitas_prom": 8.29, "dias_ult_prom": 100.0}, {"nombre": "Col. Alianza Para la Produccion", "clientes": 6, "gasto_prom": 645.38, "saldo_prom": 495.37, "limite_prom": 1083.33, "util_prom": 0.4, "visitas_prom": 9.33, "dias_ult_prom": 100.83}, {"nombre": "Fracc. Andalucia", "clientes": 6, "gasto_prom": 462.52, "saldo_prom": 159.47, "limite_prom": 1216.67, "util_prom": 0.15, "visitas_prom": 5.5, "dias_ult_prom": 101.0}, {"nombre": "Fracc. Buenos Aires", "clientes": 6, "gasto_prom": 322.04, "saldo_prom": 142.47, "limite_prom": 858.33, "util_prom": 0.18, "visitas_prom": 6.17, "dias_ult_prom": 165.0}, {"nombre": "San Marcos", "clientes": 6, "gasto_prom": 824.98, "saldo_prom": 443.18, "limite_prom": 1533.33, "util_prom": 0.34, "visitas_prom": 9.67, "dias_ult_prom": 88.0}, {"nombre": "Fracc. Bugambilias", "clientes": 6, "gasto_prom": 696.64, "saldo_prom": 316.31, "limite_prom": 1562.5, "util_prom": 0.16, "visitas_prom": 8.33, "dias_ult_prom": 147.83}, {"nombre": "Fracc. Quinta Cordoba", "clientes": 6, "gasto_prom": 751.83, "saldo_prom": 277.12, "limite_prom": 866.67, "util_prom": 0.19, "visitas_prom": 6.5, "dias_ult_prom": 190.67}, {"nombre": "Fracc. Real del Rio", "clientes": 6, "gasto_prom": 963.26, "saldo_prom": 537.07, "limite_prom": 1025.0, "util_prom": 0.57, "visitas_prom": 16.0, "dias_ult_prom": 71.0}, {"nombre": "Fracc. Hacienda Dorada", "clientes": 6, "gasto_prom": 300.85, "saldo_prom": 108.36, "limite_prom": 783.33, "util_prom": 0.22, "visitas_prom": 4.33, "dias_ult_prom": 120.5}, {"nombre": "Fracc. Solidaridad Virreyes", "clientes": 6, "gasto_prom": 630.12, "saldo_prom": 397.4, "limite_prom": 1004.17, "util_prom": 0.49, "visitas_prom": 10.67, "dias_ult_prom": 47.5}, {"nombre": "Nuevo Mexicali", "clientes": 6, "gasto_prom": 390.24, "saldo_prom": 169.93, "limite_prom": 1420.83, "util_prom": 0.13, "visitas_prom": 9.67, "dias_ult_prom": 37.67}, {"nombre": "Fracc. el Condor", "clientes": 6, "gasto_prom": 508.38, "saldo_prom": 227.63, "limite_prom": 741.67, "util_prom": 0.27, "visitas_prom": 7.67, "dias_ult_prom": 158.0}, {"nombre": "Fracc. Villas de la Republica", "clientes": 6, "gasto_prom": 754.61, "saldo_prom": 210.75, "limite_prom": 1125.0, "util_prom": 0.12, "visitas_prom": 8.17, "dias_ult_prom": 112.67}, {"nombre": "Fracc. Villa Toledo", "clientes": 6, "gasto_prom": 675.38, "saldo_prom": 383.77, "limite_prom": 1608.33, "util_prom": 0.26, "visitas_prom": 5.17, "dias_ult_prom": 123.67}, {"nombre": "Villafontana", "clientes": 6, "gasto_prom": 535.68, "saldo_prom": 326.05, "limite_prom": 1125.0, "util_prom": 0.27, "visitas_prom": 7.83, "dias_ult_prom": 59.83}, {"nombre": "Col. Heroes de Nacozari", "clientes": 6, "gasto_prom": 385.83, "saldo_prom": 201.5, "limite_prom": 1295.83, "util_prom": 0.21, "visitas_prom": 7.17, "dias_ult_prom": 94.33}, {"nombre": "Col. Mexicali", "clientes": 6, "gasto_prom": 389.78, "saldo_prom": 145.8, "limite_prom": 666.67, "util_prom": 0.14, "visitas_prom": 4.67, "dias_ult_prom": 146.33}, {"nombre": "Col. Luis Donaldo Colosio", "clientes": 6, "gasto_prom": 454.92, "saldo_prom": 189.89, "limite_prom": 1516.67, "util_prom": 0.16, "visitas_prom": 10.33, "dias_ult_prom": 89.0}, {"nombre": "las Palomas", "clientes": 6, "gasto_prom": 547.06, "saldo_prom": 253.7, "limite_prom": 1170.83, "util_prom": 0.24, "visitas_prom": 10.0, "dias_ult_prom": 107.33}, {"nombre": "Col. San Luis", "clientes": 5, "gasto_prom": 238.9, "saldo_prom": 51.41, "limite_prom": 1220.0, "util_prom": 0.14, "visitas_prom": 7.6, "dias_ult_prom": 81.8}, {"nombre": "Col. San Gabriel", "clientes": 5, "gasto_prom": 845.0, "saldo_prom": 556.28, "limite_prom": 1515.0, "util_prom": 0.19, "visitas_prom": 12.0, "dias_ult_prom": 61.6}, {"nombre": "Col. Vallarta", "clientes": 5, "gasto_prom": 639.65, "saldo_prom": 278.04, "limite_prom": 1835.0, "util_prom": 0.23, "visitas_prom": 10.0, "dias_ult_prom": 55.8}, {"nombre": "Fracc. Justo Sierra", "clientes": 5, "gasto_prom": 1151.17, "saldo_prom": 752.09, "limite_prom": 1975.0, "util_prom": 0.24, "visitas_prom": 7.0, "dias_ult_prom": 146.8}, {"nombre": "Fracc. Gran Venecia", "clientes": 5, "gasto_prom": 510.87, "saldo_prom": 280.23, "limite_prom": 1481.0, "util_prom": 0.14, "visitas_prom": 7.0, "dias_ult_prom": 153.2}, {"nombre": "Fracc. Mision San Diego", "clientes": 5, "gasto_prom": 313.6, "saldo_prom": 145.92, "limite_prom": 560.0, "util_prom": 0.26, "visitas_prom": 7.6, "dias_ult_prom": 158.8}, {"nombre": "Fracc. Privada Campestre", "clientes": 5, "gasto_prom": 810.63, "saldo_prom": 519.6, "limite_prom": 1185.0, "util_prom": 0.5, "visitas_prom": 9.0, "dias_ult_prom": 68.6}, {"nombre": "Residencial Montecarlo", "clientes": 5, "gasto_prom": 320.71, "saldo_prom": 142.76, "limite_prom": 1125.0, "util_prom": 0.32, "visitas_prom": 5.4, "dias_ult_prom": 113.2}, {"nombre": "Burocratas Federales", "clientes": 5, "gasto_prom": 325.28, "saldo_prom": 165.45, "limite_prom": 1240.0, "util_prom": 0.11, "visitas_prom": 5.8, "dias_ult_prom": 99.2}, {"nombre": "Fracc. Aztecas", "clientes": 5, "gasto_prom": 140.37, "saldo_prom": 32.8, "limite_prom": 510.0, "util_prom": 0.05, "visitas_prom": 5.4, "dias_ult_prom": 220.0}, {"nombre": "Col. Anahuac", "clientes": 5, "gasto_prom": 476.68, "saldo_prom": 360.28, "limite_prom": 1320.0, "util_prom": 0.21, "visitas_prom": 6.8, "dias_ult_prom": 93.0}, {"nombre": "Col. Zacatecas", "clientes": 5, "gasto_prom": 411.88, "saldo_prom": 154.44, "limite_prom": 940.0, "util_prom": 0.21, "visitas_prom": 8.6, "dias_ult_prom": 77.4}, {"nombre": "Conj. Urbano Cucapah", "clientes": 5, "gasto_prom": 738.44, "saldo_prom": 454.83, "limite_prom": 1650.0, "util_prom": 0.28, "visitas_prom": 10.2, "dias_ult_prom": 60.6}, {"nombre": "Col. Oscar Garzon", "clientes": 5, "gasto_prom": 551.37, "saldo_prom": 285.95, "limite_prom": 690.0, "util_prom": 0.36, "visitas_prom": 11.0, "dias_ult_prom": 65.8}, {"nombre": "Col. Orizaba", "clientes": 5, "gasto_prom": 698.38, "saldo_prom": 322.56, "limite_prom": 1150.0, "util_prom": 0.54, "visitas_prom": 7.6, "dias_ult_prom": 103.2}, {"nombre": "Paseo del Sol", "clientes": 5, "gasto_prom": 423.26, "saldo_prom": 140.32, "limite_prom": 1485.0, "util_prom": 0.13, "visitas_prom": 7.0, "dias_ult_prom": 104.2}, {"nombre": "Hacienda Real", "clientes": 5, "gasto_prom": 664.3, "saldo_prom": 286.58, "limite_prom": 1535.0, "util_prom": 0.23, "visitas_prom": 18.6, "dias_ult_prom": 37.8}, {"nombre": "Gran Venezia", "clientes": 5, "gasto_prom": 704.86, "saldo_prom": 442.16, "limite_prom": 1275.0, "util_prom": 0.18, "visitas_prom": 9.8, "dias_ult_prom": 138.6}, {"nombre": "Col. Republica Mexicana", "clientes": 5, "gasto_prom": 429.76, "saldo_prom": 68.01, "limite_prom": 710.0, "util_prom": 0.08, "visitas_prom": 6.0, "dias_ult_prom": 170.4}, {"nombre": "Residencial Barcelona", "clientes": 5, "gasto_prom": 827.59, "saldo_prom": 285.69, "limite_prom": 1785.0, "util_prom": 0.14, "visitas_prom": 8.4, "dias_ult_prom": 67.6}, {"nombre": "Residencial Madrid", "clientes": 5, "gasto_prom": 597.21, "saldo_prom": 286.4, "limite_prom": 1560.0, "util_prom": 0.23, "visitas_prom": 7.2, "dias_ult_prom": 65.0}, {"nombre": "Fracc. Orquideas", "clientes": 5, "gasto_prom": 403.31, "saldo_prom": 208.91, "limite_prom": 1755.0, "util_prom": 0.19, "visitas_prom": 6.8, "dias_ult_prom": 83.8}, {"nombre": "Fovissste", "clientes": 5, "gasto_prom": 302.75, "saldo_prom": 60.57, "limite_prom": 1500.0, "util_prom": 0.02, "visitas_prom": 8.8, "dias_ult_prom": 154.2}, {"nombre": "Pmb 1398", "clientes": 5, "gasto_prom": 546.27, "saldo_prom": 294.16, "limite_prom": 1095.0, "util_prom": 0.42, "visitas_prom": 12.2, "dias_ult_prom": 78.6}, {"nombre": "Villa Verde", "clientes": 5, "gasto_prom": 486.39, "saldo_prom": 324.13, "limite_prom": 1775.0, "util_prom": 0.37, "visitas_prom": 10.8, "dias_ult_prom": 27.6}, {"nombre": "Valle Dorado", "clientes": 5, "gasto_prom": 420.08, "saldo_prom": 206.21, "limite_prom": 1775.0, "util_prom": 0.14, "visitas_prom": 11.0, "dias_ult_prom": 80.4}, {"nombre": "Fracc. San Fernando", "clientes": 4, "gasto_prom": 452.95, "saldo_prom": 244.7, "limite_prom": 1256.25, "util_prom": 0.27, "visitas_prom": 6.5, "dias_ult_prom": 75.75}, {"nombre": "Fracc. Mision del Angel", "clientes": 4, "gasto_prom": 237.79, "saldo_prom": 106.41, "limite_prom": 968.75, "util_prom": 0.11, "visitas_prom": 6.0, "dias_ult_prom": 105.75}, {"nombre": "Fracc. Jardines de San Marcos", "clientes": 4, "gasto_prom": 280.43, "saldo_prom": 174.66, "limite_prom": 1850.0, "util_prom": 0.08, "visitas_prom": 8.25, "dias_ult_prom": 117.0}, {"nombre": "Col. Ampliacion Nacionalista", "clientes": 4, "gasto_prom": 547.28, "saldo_prom": 291.24, "limite_prom": 637.5, "util_prom": 0.29, "visitas_prom": 6.5, "dias_ult_prom": 127.25}, {"nombre": "Residencias Imperiales", "clientes": 4, "gasto_prom": 742.36, "saldo_prom": 406.63, "limite_prom": 1712.5, "util_prom": 0.19, "visitas_prom": 12.25, "dias_ult_prom": 76.5}, {"nombre": "Sp 4", "clientes": 4, "gasto_prom": 364.58, "saldo_prom": 105.18, "limite_prom": 637.5, "util_prom": 0.12, "visitas_prom": 7.75, "dias_ult_prom": 193.5}, {"nombre": "Sp 52", "clientes": 4, "gasto_prom": 644.96, "saldo_prom": 292.45, "limite_prom": 725.0, "util_prom": 0.42, "visitas_prom": 6.25, "dias_ult_prom": 120.5}, {"nombre": "Fovissste 4Ta Etapa", "clientes": 4, "gasto_prom": 445.84, "saldo_prom": 206.6, "limite_prom": 1181.25, "util_prom": 0.21, "visitas_prom": 11.25, "dias_ult_prom": 45.5}, {"nombre": "Fracc. Mayos", "clientes": 4, "gasto_prom": 342.75, "saldo_prom": 128.41, "limite_prom": 675.0, "util_prom": 0.21, "visitas_prom": 7.25, "dias_ult_prom": 146.0}, {"nombre": "Fracc. San Adrian", "clientes": 4, "gasto_prom": 1776.96, "saldo_prom": 1038.98, "limite_prom": 2131.25, "util_prom": 0.49, "visitas_prom": 6.5, "dias_ult_prom": 107.75}, {"nombre": "Fracc. Sevilla", "clientes": 4, "gasto_prom": 576.74, "saldo_prom": 381.8, "limite_prom": 1462.5, "util_prom": 0.32, "visitas_prom": 12.0, "dias_ult_prom": 31.25}, {"nombre": "Col. Televisora", "clientes": 4, "gasto_prom": 93.72, "saldo_prom": 52.18, "limite_prom": 1178.75, "util_prom": 0.06, "visitas_prom": 5.5, "dias_ult_prom": 91.5}, {"nombre": "Col. Santa Isabel", "clientes": 4, "gasto_prom": 397.55, "saldo_prom": 174.54, "limite_prom": 950.0, "util_prom": 0.19, "visitas_prom": 12.75, "dias_ult_prom": 52.75}, {"nombre": "Residencial Mayakhan", "clientes": 4, "gasto_prom": 600.78, "saldo_prom": 328.24, "limite_prom": 1587.5, "util_prom": 0.21, "visitas_prom": 4.25, "dias_ult_prom": 74.5}, {"nombre": "Residencial Villa Toledo", "clientes": 4, "gasto_prom": 250.1, "saldo_prom": 69.37, "limite_prom": 1181.25, "util_prom": 0.18, "visitas_prom": 8.75, "dias_ult_prom": 129.75}, {"nombre": "Col. Carlos Salinas", "clientes": 4, "gasto_prom": 263.22, "saldo_prom": 130.03, "limite_prom": 1550.0, "util_prom": 0.1, "visitas_prom": 8.0, "dias_ult_prom": 198.0}, {"nombre": "Col. Bellavista", "clientes": 4, "gasto_prom": 592.99, "saldo_prom": 320.64, "limite_prom": 1375.0, "util_prom": 0.27, "visitas_prom": 11.75, "dias_ult_prom": 53.75}, {"nombre": "Col. del Rastro", "clientes": 4, "gasto_prom": 990.07, "saldo_prom": 551.15, "limite_prom": 1375.0, "util_prom": 0.36, "visitas_prom": 8.25, "dias_ult_prom": 100.75}, {"nombre": "Fracc. los Reyes", "clientes": 4, "gasto_prom": 370.07, "saldo_prom": 181.43, "limite_prom": 1312.5, "util_prom": 0.32, "visitas_prom": 4.0, "dias_ult_prom": 47.0}, {"nombre": "Fracc. el Papago", "clientes": 4, "gasto_prom": 488.41, "saldo_prom": 244.94, "limite_prom": 825.0, "util_prom": 0.32, "visitas_prom": 12.75, "dias_ult_prom": 50.0}, {"nombre": "Fracc. Villa Lomas Altas", "clientes": 4, "gasto_prom": 351.3, "saldo_prom": 144.0, "limite_prom": 1725.0, "util_prom": 0.11, "visitas_prom": 7.75, "dias_ult_prom": 95.75}, {"nombre": "Maestros Federales", "clientes": 4, "gasto_prom": 375.76, "saldo_prom": 180.4, "limite_prom": 1450.0, "util_prom": 0.15, "visitas_prom": 7.75, "dias_ult_prom": 134.75}, {"nombre": "Infonavit Virreyes", "clientes": 4, "gasto_prom": 472.48, "saldo_prom": 288.83, "limite_prom": 1868.75, "util_prom": 0.1, "visitas_prom": 12.5, "dias_ult_prom": 73.5}, {"nombre": "Loma Linda", "clientes": 4, "gasto_prom": 608.28, "saldo_prom": 405.55, "limite_prom": 1512.5, "util_prom": 0.36, "visitas_prom": 9.25, "dias_ult_prom": 33.25}, {"nombre": "Pmb 2841", "clientes": 4, "gasto_prom": 337.11, "saldo_prom": 134.1, "limite_prom": 1050.0, "util_prom": 0.13, "visitas_prom": 9.75, "dias_ult_prom": 99.5}, {"nombre": "Col. Magisterial", "clientes": 4, "gasto_prom": 1029.32, "saldo_prom": 681.66, "limite_prom": 1475.0, "util_prom": 0.42, "visitas_prom": 12.0, "dias_ult_prom": 90.0}, {"nombre": "Col. Mayos", "clientes": 4, "gasto_prom": 404.56, "saldo_prom": 227.11, "limite_prom": 1200.0, "util_prom": 0.36, "visitas_prom": 7.75, "dias_ult_prom": 47.5}, {"nombre": "Pmb 121", "clientes": 4, "gasto_prom": 310.67, "saldo_prom": 139.1, "limite_prom": 1237.5, "util_prom": 0.11, "visitas_prom": 7.25, "dias_ult_prom": 94.75}, {"nombre": "Col. Lomalinda", "clientes": 4, "gasto_prom": 160.7, "saldo_prom": 48.62, "limite_prom": 1275.0, "util_prom": 0.1, "visitas_prom": 6.0, "dias_ult_prom": 155.0}, {"nombre": "Lago de Xochimilco", "clientes": 4, "gasto_prom": 295.91, "saldo_prom": 151.7, "limite_prom": 1331.25, "util_prom": 0.15, "visitas_prom": 4.0, "dias_ult_prom": 150.75}, {"nombre": "Fracc. Recidencial Roma", "clientes": 4, "gasto_prom": 716.65, "saldo_prom": 178.52, "limite_prom": 1177.5, "util_prom": 0.25, "visitas_prom": 9.25, "dias_ult_prom": 52.0}, {"nombre": "Fracc. Mision de San Vizcaino", "clientes": 4, "gasto_prom": 482.27, "saldo_prom": 167.57, "limite_prom": 1593.75, "util_prom": 0.1, "visitas_prom": 3.5, "dias_ult_prom": 89.25}, {"nombre": "Pmb 45628", "clientes": 4, "gasto_prom": 602.46, "saldo_prom": 344.81, "limite_prom": 1725.0, "util_prom": 0.31, "visitas_prom": 11.0, "dias_ult_prom": 44.25}, {"nombre": "Valle de las Misiones", "clientes": 4, "gasto_prom": 615.95, "saldo_prom": 407.11, "limite_prom": 1112.5, "util_prom": 0.27, "visitas_prom": 8.5, "dias_ult_prom": 106.5}, {"nombre": "Valle de Puebla", "clientes": 4, "gasto_prom": 608.24, "saldo_prom": 345.71, "limite_prom": 1056.25, "util_prom": 0.28, "visitas_prom": 10.75, "dias_ult_prom": 88.25}, {"nombre": "Spc 10", "clientes": 4, "gasto_prom": 229.81, "saldo_prom": 97.03, "limite_prom": 932.5, "util_prom": 0.11, "visitas_prom": 9.5, "dias_ult_prom": 105.25}, {"nombre": "Villa Bonita", "clientes": 4, "gasto_prom": 473.18, "saldo_prom": 130.23, "limite_prom": 1075.0, "util_prom": 0.27, "visitas_prom": 9.0, "dias_ult_prom": 67.75}, {"nombre": "Pro-Hogar", "clientes": 4, "gasto_prom": 877.45, "saldo_prom": 355.35, "limite_prom": 700.0, "util_prom": 0.57, "visitas_prom": 12.25, "dias_ult_prom": 47.75}, {"nombre": "Pmb 7549", "clientes": 4, "gasto_prom": 478.56, "saldo_prom": 337.48, "limite_prom": 506.25, "util_prom": 0.63, "visitas_prom": 6.0, "dias_ult_prom": 80.25}, {"nombre": "Villas del Sol", "clientes": 4, "gasto_prom": 398.26, "saldo_prom": 118.72, "limite_prom": 1656.25, "util_prom": 0.06, "visitas_prom": 7.75, "dias_ult_prom": 146.75}, {"nombre": "Zona Centro", "clientes": 4, "gasto_prom": 961.8, "saldo_prom": 622.65, "limite_prom": 2475.0, "util_prom": 0.33, "visitas_prom": 13.5, "dias_ult_prom": 48.25}, {"nombre": "Pmb 6054", "clientes": 4, "gasto_prom": 258.76, "saldo_prom": 140.87, "limite_prom": 1412.5, "util_prom": 0.1, "visitas_prom": 8.25, "dias_ult_prom": 96.5}, {"nombre": "Venezia", "clientes": 3, "gasto_prom": 1138.98, "saldo_prom": 672.48, "limite_prom": 2433.33, "util_prom": 0.28, "visitas_prom": 15.0, "dias_ult_prom": 43.0}, {"nombre": "Villa del Cedro", "clientes": 3, "gasto_prom": 824.49, "saldo_prom": 631.71, "limite_prom": 1658.33, "util_prom": 0.33, "visitas_prom": 11.33, "dias_ult_prom": 55.0}, {"nombre": "Unit 1", "clientes": 3, "gasto_prom": 402.12, "saldo_prom": 184.18, "limite_prom": 500.0, "util_prom": 0.46, "visitas_prom": 6.0, "dias_ult_prom": 140.67}, {"nombre": "Quinta Cordoba", "clientes": 3, "gasto_prom": 158.68, "saldo_prom": 29.5, "limite_prom": 1841.67, "util_prom": 0.02, "visitas_prom": 5.0, "dias_ult_prom": 157.33}, {"nombre": "Terrazas del Sol", "clientes": 3, "gasto_prom": 600.83, "saldo_prom": 310.84, "limite_prom": 908.33, "util_prom": 0.39, "visitas_prom": 6.0, "dias_ult_prom": 99.0}, {"nombre": "la Condesa", "clientes": 3, "gasto_prom": 361.89, "saldo_prom": 176.02, "limite_prom": 1416.67, "util_prom": 0.09, "visitas_prom": 11.67, "dias_ult_prom": 80.0}, {"nombre": "Col. Jabonera", "clientes": 3, "gasto_prom": 251.35, "saldo_prom": 68.96, "limite_prom": 1450.0, "util_prom": 0.05, "visitas_prom": 7.33, "dias_ult_prom": 148.33}, {"nombre": "Fracc. San Sebastian", "clientes": 3, "gasto_prom": 881.81, "saldo_prom": 551.48, "limite_prom": 1941.67, "util_prom": 0.3, "visitas_prom": 12.33, "dias_ult_prom": 75.0}, {"nombre": "Fracc. Riviera Maya", "clientes": 3, "gasto_prom": 879.79, "saldo_prom": 399.03, "limite_prom": 2125.0, "util_prom": 0.12, "visitas_prom": 8.33, "dias_ult_prom": 138.67}, {"nombre": "Col. Valle del Colorado", "clientes": 3, "gasto_prom": 663.54, "saldo_prom": 430.04, "limite_prom": 1133.33, "util_prom": 0.52, "visitas_prom": 6.33, "dias_ult_prom": 96.33}, {"nombre": "Col. Roma", "clientes": 3, "gasto_prom": 668.09, "saldo_prom": 285.74, "limite_prom": 983.33, "util_prom": 0.29, "visitas_prom": 10.33, "dias_ult_prom": 61.0}, {"nombre": "Col. Revolucion", "clientes": 3, "gasto_prom": 431.64, "saldo_prom": 320.24, "limite_prom": 806.67, "util_prom": 0.46, "visitas_prom": 4.0, "dias_ult_prom": 62.33}, {"nombre": "Fracc. Victoria Recidencial", "clientes": 3, "gasto_prom": 327.45, "saldo_prom": 112.19, "limite_prom": 1100.0, "util_prom": 0.1, "visitas_prom": 3.67, "dias_ult_prom": 171.0}, {"nombre": "Col. Satelite", "clientes": 3, "gasto_prom": 647.69, "saldo_prom": 449.38, "limite_prom": 1166.67, "util_prom": 0.38, "visitas_prom": 11.0, "dias_ult_prom": 41.33}, {"nombre": "Col. Segunda Seccion", "clientes": 3, "gasto_prom": 1055.96, "saldo_prom": 558.57, "limite_prom": 1000.0, "util_prom": 0.71, "visitas_prom": 13.33, "dias_ult_prom": 64.0}, {"nombre": "Fracc. Juventud Deportiva 2000", "clientes": 3, "gasto_prom": 152.37, "saldo_prom": 47.23, "limite_prom": 316.67, "util_prom": 0.18, "visitas_prom": 5.67, "dias_ult_prom": 128.33}, {"nombre": "Fracc. Cordoba", "clientes": 3, "gasto_prom": 375.3, "saldo_prom": 213.94, "limite_prom": 1841.67, "util_prom": 0.16, "visitas_prom": 8.67, "dias_ult_prom": 95.67}, {"nombre": "Juventud 2000", "clientes": 3, "gasto_prom": 370.56, "saldo_prom": 188.54, "limite_prom": 1258.33, "util_prom": 0.3, "visitas_prom": 5.33, "dias_ult_prom": 104.67}, {"nombre": "Fracc. la Rioja", "clientes": 3, "gasto_prom": 504.37, "saldo_prom": 297.94, "limite_prom": 1491.67, "util_prom": 0.22, "visitas_prom": 8.0, "dias_ult_prom": 95.33}, {"nombre": "Hacienda Dorada", "clientes": 3, "gasto_prom": 307.97, "saldo_prom": 141.4, "limite_prom": 1800.0, "util_prom": 0.09, "visitas_prom": 4.67, "dias_ult_prom": 135.67}, {"nombre": "Fracc. Villa las Lomas", "clientes": 3, "gasto_prom": 594.0, "saldo_prom": 183.23, "limite_prom": 500.0, "util_prom": 0.43, "visitas_prom": 10.33, "dias_ult_prom": 81.67}, {"nombre": "Col. Gomez Farias", "clientes": 3, "gasto_prom": 783.56, "saldo_prom": 351.45, "limite_prom": 1758.33, "util_prom": 0.21, "visitas_prom": 10.33, "dias_ult_prom": 126.67}, {"nombre": "Fracc. Santa Barbara", "clientes": 3, "gasto_prom": 463.76, "saldo_prom": 68.5, "limite_prom": 1333.33, "util_prom": 0.06, "visitas_prom": 7.67, "dias_ult_prom": 110.67}, {"nombre": "Segovia Residencial", "clientes": 3, "gasto_prom": 200.47, "saldo_prom": 17.37, "limite_prom": 1550.0, "util_prom": 0.01, "visitas_prom": 3.0, "dias_ult_prom": 235.67}, {"nombre": "Residencial San Pedro", "clientes": 3, "gasto_prom": 825.74, "saldo_prom": 370.86, "limite_prom": 1233.33, "util_prom": 0.43, "visitas_prom": 11.67, "dias_ult_prom": 26.0}, {"nombre": "Residencial Puerta de Alcala", "clientes": 3, "gasto_prom": 759.46, "saldo_prom": 382.36, "limite_prom": 1666.67, "util_prom": 0.21, "visitas_prom": 12.0, "dias_ult_prom": 40.33}, {"nombre": "Residencial Privada Campestre 2", "clientes": 3, "gasto_prom": 389.23, "saldo_prom": 166.6, "limite_prom": 950.0, "util_prom": 0.15, "visitas_prom": 7.67, "dias_ult_prom": 68.33}, {"nombre": "Fracc. Mayakhan", "clientes": 3, "gasto_prom": 407.58, "saldo_prom": 210.44, "limite_prom": 833.33, "util_prom": 0.35, "visitas_prom": 9.0, "dias_ult_prom": 99.0}, {"nombre": "Fracc. Palmar de Santa Anita", "clientes": 3, "gasto_prom": 848.1, "saldo_prom": 377.29, "limite_prom": 566.67, "util_prom": 0.78, "visitas_prom": 12.67, "dias_ult_prom": 19.33}, {"nombre": "Fracc. Toledo Residencial", "clientes": 3, "gasto_prom": 436.39, "saldo_prom": 258.49, "limite_prom": 1200.0, "util_prom": 0.19, "visitas_prom": 11.0, "dias_ult_prom": 69.0}, {"nombre": "Ejido Puebla", "clientes": 3, "gasto_prom": 447.9, "saldo_prom": 124.91, "limite_prom": 1058.33, "util_prom": 0.14, "visitas_prom": 10.33, "dias_ult_prom": 67.33}, {"nombre": "Residencial Coronado", "clientes": 3, "gasto_prom": 460.59, "saldo_prom": 221.8, "limite_prom": 883.33, "util_prom": 0.24, "visitas_prom": 10.0, "dias_ult_prom": 25.0}, {"nombre": "Col. Corregidora", "clientes": 3, "gasto_prom": 1128.0, "saldo_prom": 757.83, "limite_prom": 2466.67, "util_prom": 0.3, "visitas_prom": 12.0, "dias_ult_prom": 22.33}, {"nombre": "Col. Cuahuctemoc Sur", "clientes": 3, "gasto_prom": 381.65, "saldo_prom": 59.96, "limite_prom": 600.0, "util_prom": 0.15, "visitas_prom": 5.33, "dias_ult_prom": 130.0}, {"nombre": "Recidencial California", "clientes": 3, "gasto_prom": 400.37, "saldo_prom": 214.47, "limite_prom": 1941.67, "util_prom": 0.11, "visitas_prom": 5.33, "dias_ult_prom": 163.67}, {"nombre": "Cd Morelos", "clientes": 3, "gasto_prom": 794.83, "saldo_prom": 548.89, "limite_prom": 1433.33, "util_prom": 0.38, "visitas_prom": 8.33, "dias_ult_prom": 61.0}, {"nombre": "Col. Aurora", "clientes": 3, "gasto_prom": 1348.28, "saldo_prom": 631.2, "limite_prom": 1191.67, "util_prom": 0.4, "visitas_prom": 12.33, "dias_ult_prom": 66.33}, {"nombre": "Recidencial Lagos del Sol", "clientes": 3, "gasto_prom": 171.99, "saldo_prom": 65.78, "limite_prom": 633.33, "util_prom": 0.16, "visitas_prom": 4.33, "dias_ult_prom": 130.33}, {"nombre": "Bosques del Sol", "clientes": 3, "gasto_prom": 575.95, "saldo_prom": 222.1, "limite_prom": 1266.67, "util_prom": 0.18, "visitas_prom": 5.33, "dias_ult_prom": 116.33}, {"nombre": "Pmb 41834", "clientes": 3, "gasto_prom": 688.63, "saldo_prom": 473.16, "limite_prom": 516.67, "util_prom": 0.98, "visitas_prom": 9.67, "dias_ult_prom": 127.33}, {"nombre": "Pmb 199", "clientes": 3, "gasto_prom": 301.63, "saldo_prom": 111.74, "limite_prom": 808.33, "util_prom": 0.21, "visitas_prom": 8.0, "dias_ult_prom": 150.0}, {"nombre": "Pmb 618", "clientes": 3, "gasto_prom": 354.67, "saldo_prom": 82.37, "limite_prom": 783.33, "util_prom": 0.37, "visitas_prom": 10.0, "dias_ult_prom": 49.33}, {"nombre": "Portales 3", "clientes": 3, "gasto_prom": 502.51, "saldo_prom": 347.69, "limite_prom": 1641.67, "util_prom": 0.21, "visitas_prom": 8.33, "dias_ult_prom": 73.33}, {"nombre": "Pmb 40371", "clientes": 3, "gasto_prom": 920.63, "saldo_prom": 602.96, "limite_prom": 1591.67, "util_prom": 0.39, "visitas_prom": 17.33, "dias_ult_prom": 31.33}, {"nombre": "Pmb 1236", "clientes": 3, "gasto_prom": 285.99, "saldo_prom": 179.09, "limite_prom": 1033.33, "util_prom": 0.17, "visitas_prom": 4.67, "dias_ult_prom": 99.0}, {"nombre": "Col. Nueva 18 de Marzo", "clientes": 3, "gasto_prom": 123.81, "saldo_prom": 24.65, "limite_prom": 866.67, "util_prom": 0.03, "visitas_prom": 3.33, "dias_ult_prom": 102.0}, {"nombre": "Col. Guajardo", "clientes": 3, "gasto_prom": 172.19, "saldo_prom": 15.11, "limite_prom": 900.0, "util_prom": 0.01, "visitas_prom": 4.67, "dias_ult_prom": 215.0}, {"nombre": "Gran Hacienda", "clientes": 3, "gasto_prom": 453.43, "saldo_prom": 153.38, "limite_prom": 950.0, "util_prom": 0.39, "visitas_prom": 12.33, "dias_ult_prom": 59.33}, {"nombre": "Fracc. las Delicias", "clientes": 3, "gasto_prom": 225.59, "saldo_prom": 44.53, "limite_prom": 1100.0, "util_prom": 0.13, "visitas_prom": 5.67, "dias_ult_prom": 78.67}, {"nombre": "Fracc. Villanova Diamante", "clientes": 3, "gasto_prom": 520.64, "saldo_prom": 267.24, "limite_prom": 1000.0, "util_prom": 0.28, "visitas_prom": 15.0, "dias_ult_prom": 18.33}, {"nombre": "Fracc. el Roble", "clientes": 3, "gasto_prom": 488.2, "saldo_prom": 239.3, "limite_prom": 833.33, "util_prom": 0.33, "visitas_prom": 13.33, "dias_ult_prom": 22.0}, {"nombre": "Fracc. Villa Rdcial del Prado Ii", "clientes": 3, "gasto_prom": 361.14, "saldo_prom": 178.06, "limite_prom": 750.0, "util_prom": 0.27, "visitas_prom": 7.33, "dias_ult_prom": 55.33}, {"nombre": "Cucapah Infonavit", "clientes": 3, "gasto_prom": 305.55, "saldo_prom": 149.35, "limite_prom": 483.33, "util_prom": 0.22, "visitas_prom": 8.33, "dias_ult_prom": 197.33}, {"nombre": "Col. la Luna", "clientes": 3, "gasto_prom": 262.28, "saldo_prom": 88.89, "limite_prom": 1108.33, "util_prom": 0.07, "visitas_prom": 4.67, "dias_ult_prom": 189.33}, {"nombre": "Col. Venustiano Carranza", "clientes": 3, "gasto_prom": 300.85, "saldo_prom": 10.9, "limite_prom": 1175.0, "util_prom": 0.05, "visitas_prom": 4.67, "dias_ult_prom": 113.0}, {"nombre": "Lago del Sol", "clientes": 3, "gasto_prom": 1431.37, "saldo_prom": 311.59, "limite_prom": 1358.33, "util_prom": 0.31, "visitas_prom": 10.67, "dias_ult_prom": 132.33}, {"nombre": "Fracc. Hidalgo", "clientes": 2, "gasto_prom": 313.0, "saldo_prom": 123.47, "limite_prom": 1125.0, "util_prom": 0.13, "visitas_prom": 8.0, "dias_ult_prom": 26.0}, {"nombre": "Fracc. Hipico Oriente", "clientes": 2, "gasto_prom": 222.24, "saldo_prom": 196.56, "limite_prom": 575.0, "util_prom": 0.34, "visitas_prom": 4.5, "dias_ult_prom": 39.5}, {"nombre": "Fracc. Cerrada de Abedul", "clientes": 2, "gasto_prom": 166.49, "saldo_prom": 0.0, "limite_prom": 1837.5, "util_prom": 0.0, "visitas_prom": 2.5, "dias_ult_prom": 193.0}, {"nombre": "Fracc. Desarrollo Urbano la Condesa", "clientes": 2, "gasto_prom": 251.84, "saldo_prom": 87.82, "limite_prom": 225.0, "util_prom": 0.35, "visitas_prom": 7.0, "dias_ult_prom": 184.5}, {"nombre": "Fracc. Eucaliptos", "clientes": 2, "gasto_prom": 495.96, "saldo_prom": 148.72, "limite_prom": 1500.0, "util_prom": 0.1, "visitas_prom": 15.5, "dias_ult_prom": 47.0}, {"nombre": "Fracc. Hacienda Anda Lucia", "clientes": 2, "gasto_prom": 265.48, "saldo_prom": 22.38, "limite_prom": 725.0, "util_prom": 0.02, "visitas_prom": 5.0, "dias_ult_prom": 155.5}, {"nombre": "Fracc. Terrazas del Valle", "clientes": 2, "gasto_prom": 567.48, "saldo_prom": 335.34, "limite_prom": 1237.5, "util_prom": 0.23, "visitas_prom": 5.5, "dias_ult_prom": 200.5}, {"nombre": "Fracc. Mirasol", "clientes": 2, "gasto_prom": 392.88, "saldo_prom": 220.62, "limite_prom": 1075.0, "util_prom": 0.14, "visitas_prom": 3.5, "dias_ult_prom": 251.0}, {"nombre": "Fracc. Mexicali 2", "clientes": 2, "gasto_prom": 654.14, "saldo_prom": 273.0, "limite_prom": 737.5, "util_prom": 0.37, "visitas_prom": 6.5, "dias_ult_prom": 86.5}, {"nombre": "Fracc. Madrid", "clientes": 2, "gasto_prom": 371.46, "saldo_prom": 166.5, "limite_prom": 775.0, "util_prom": 0.28, "visitas_prom": 6.0, "dias_ult_prom": 116.0}, {"nombre": "Fracc. Martha Welchs", "clientes": 2, "gasto_prom": 905.92, "saldo_prom": 468.05, "limite_prom": 2550.0, "util_prom": 0.18, "visitas_prom": 6.5, "dias_ult_prom": 36.0}, {"nombre": "Fracc. Mision de San Antonio", "clientes": 2, "gasto_prom": 64.39, "saldo_prom": 22.98, "limite_prom": 740.0, "util_prom": 0.11, "visitas_prom": 3.5, "dias_ult_prom": 181.0}, {"nombre": "Fracc. Mision de San Fco Javier", "clientes": 2, "gasto_prom": 485.52, "saldo_prom": 221.77, "limite_prom": 300.0, "util_prom": 0.61, "visitas_prom": 10.5, "dias_ult_prom": 19.5}, {"nombre": "Fracc. Flores Magon", "clientes": 2, "gasto_prom": 164.64, "saldo_prom": 19.1, "limite_prom": 1075.0, "util_prom": 0.04, "visitas_prom": 4.0, "dias_ult_prom": 183.5}, {"nombre": "Fracc. Cantera", "clientes": 2, "gasto_prom": 429.23, "saldo_prom": 295.85, "limite_prom": 1400.0, "util_prom": 0.12, "visitas_prom": 6.5, "dias_ult_prom": 230.0}, {"nombre": "Residencial Calanda", "clientes": 2, "gasto_prom": 391.88, "saldo_prom": 117.56, "limite_prom": 500.0, "util_prom": 0.24, "visitas_prom": 9.5, "dias_ult_prom": 99.5}, {"nombre": "San Vizcaino", "clientes": 2, "gasto_prom": 1163.19, "saldo_prom": 530.42, "limite_prom": 1300.0, "util_prom": 0.69, "visitas_prom": 11.0, "dias_ult_prom": 37.0}, {"nombre": "Roma Residencial", "clientes": 2, "gasto_prom": 1063.14, "saldo_prom": 565.26, "limite_prom": 1275.0, "util_prom": 0.47, "visitas_prom": 6.0, "dias_ult_prom": 18.0}, {"nombre": "Rio Mocorito", "clientes": 2, "gasto_prom": 252.22, "saldo_prom": 88.16, "limite_prom": 1125.0, "util_prom": 0.08, "visitas_prom": 4.0, "dias_ult_prom": 245.5}, {"nombre": "Col. Conjunto Urbano Universitario", "clientes": 2, "gasto_prom": 608.13, "saldo_prom": 310.97, "limite_prom": 1100.0, "util_prom": 0.27, "visitas_prom": 11.5, "dias_ult_prom": 53.0}, {"nombre": "Residencial Cantera", "clientes": 2, "gasto_prom": 584.28, "saldo_prom": 133.34, "limite_prom": 750.0, "util_prom": 0.27, "visitas_prom": 8.5, "dias_ult_prom": 189.5}, {"nombre": "Recidencial Casa Magna", "clientes": 2, "gasto_prom": 489.69, "saldo_prom": 195.46, "limite_prom": 1525.0, "util_prom": 0.09, "visitas_prom": 3.0, "dias_ult_prom": 210.0}, {"nombre": "Col. Ejidatarios Ci", "clientes": 2, "gasto_prom": 355.43, "saldo_prom": 100.42, "limite_prom": 1275.0, "util_prom": 0.17, "visitas_prom": 11.0, "dias_ult_prom": 38.0}, {"nombre": "Col. Ampliacion Lucerna", "clientes": 2, "gasto_prom": 158.46, "saldo_prom": 68.64, "limite_prom": 350.0, "util_prom": 0.11, "visitas_prom": 7.5, "dias_ult_prom": 140.0}, {"nombre": "Col. Ahumada", "clientes": 2, "gasto_prom": 1142.88, "saldo_prom": 511.91, "limite_prom": 700.0, "util_prom": 0.52, "visitas_prom": 10.0, "dias_ult_prom": 58.5}, {"nombre": "Col. 1 de Diciembre", "clientes": 2, "gasto_prom": 1249.2, "saldo_prom": 721.51, "limite_prom": 3000.0, "util_prom": 0.22, "visitas_prom": 15.0, "dias_ult_prom": 31.0}, {"nombre": "Cd Guadalupe Victoria", "clientes": 2, "gasto_prom": 1107.84, "saldo_prom": 815.55, "limite_prom": 1162.5, "util_prom": 0.76, "visitas_prom": 16.5, "dias_ult_prom": 8.5}, {"nombre": "Col. 5 de Julio", "clientes": 2, "gasto_prom": 272.56, "saldo_prom": 118.14, "limite_prom": 250.0, "util_prom": 0.3, "visitas_prom": 3.0, "dias_ult_prom": 179.5}, {"nombre": "Col. Balbuena", "clientes": 2, "gasto_prom": 863.56, "saldo_prom": 478.56, "limite_prom": 1800.0, "util_prom": 0.23, "visitas_prom": 10.0, "dias_ult_prom": 23.5}, {"nombre": "Col. Constituyentes", "clientes": 2, "gasto_prom": 680.0, "saldo_prom": 303.5, "limite_prom": 1550.0, "util_prom": 0.25, "visitas_prom": 4.0, "dias_ult_prom": 142.5}, {"nombre": "Col. Azteca", "clientes": 2, "gasto_prom": 260.46, "saldo_prom": 136.72, "limite_prom": 250.0, "util_prom": 0.46, "visitas_prom": 18.0, "dias_ult_prom": 29.0}, {"nombre": "Santo Domingo", "clientes": 2, "gasto_prom": 552.06, "saldo_prom": 292.83, "limite_prom": 625.0, "util_prom": 0.5, "visitas_prom": 6.5, "dias_ult_prom": 139.0}, {"nombre": "Ejido Queretaro", "clientes": 2, "gasto_prom": 375.34, "saldo_prom": 138.44, "limite_prom": 625.0, "util_prom": 0.21, "visitas_prom": 11.5, "dias_ult_prom": 129.5}, {"nombre": "Residencial Real del Sol", "clientes": 2, "gasto_prom": 1237.94, "saldo_prom": 609.38, "limite_prom": 2112.5, "util_prom": 0.29, "visitas_prom": 9.0, "dias_ult_prom": 53.0}, {"nombre": "Residencial Puerta de Hiero", "clientes": 2, "gasto_prom": 526.42, "saldo_prom": 228.34, "limite_prom": 925.0, "util_prom": 0.27, "visitas_prom": 7.0, "dias_ult_prom": 66.0}, {"nombre": "Residencial del Prado", "clientes": 2, "gasto_prom": 145.98, "saldo_prom": 9.96, "limite_prom": 1412.5, "util_prom": 0.01, "visitas_prom": 7.5, "dias_ult_prom": 120.0}, {"nombre": "Residencial los Laureles", "clientes": 2, "gasto_prom": 1076.0, "saldo_prom": 359.73, "limite_prom": 825.0, "util_prom": 0.34, "visitas_prom": 7.5, "dias_ult_prom": 94.5}, {"nombre": "Fracc. Ferrocarril", "clientes": 2, "gasto_prom": 407.6, "saldo_prom": 283.1, "limite_prom": 2725.0, "util_prom": 0.11, "visitas_prom": 2.5, "dias_ult_prom": 197.0}, {"nombre": "Fracc. Lagos de Xochimilco", "clientes": 2, "gasto_prom": 171.65, "saldo_prom": 50.41, "limite_prom": 1625.0, "util_prom": 0.25, "visitas_prom": 2.5, "dias_ult_prom": 66.0}, {"nombre": "Fracc. Oasis", "clientes": 2, "gasto_prom": 470.29, "saldo_prom": 349.73, "limite_prom": 600.0, "util_prom": 0.6, "visitas_prom": 10.0, "dias_ult_prom": 8.0}, {"nombre": "Fracc. Primero de Mayo", "clientes": 2, "gasto_prom": 328.15, "saldo_prom": 178.82, "limite_prom": 1925.0, "util_prom": 0.12, "visitas_prom": 7.5, "dias_ult_prom": 53.5}, {"nombre": "Solidaridad Ii", "clientes": 2, "gasto_prom": 128.5, "saldo_prom": 25.42, "limite_prom": 1575.0, "util_prom": 0.03, "visitas_prom": 4.5, "dias_ult_prom": 115.5}, {"nombre": "Sp 50", "clientes": 2, "gasto_prom": 145.87, "saldo_prom": 0.0, "limite_prom": 400.0, "util_prom": 0.0, "visitas_prom": 3.0, "dias_ult_prom": 237.0}, {"nombre": "Ejido Quintana Roo", "clientes": 2, "gasto_prom": 2458.76, "saldo_prom": 1419.63, "limite_prom": 1450.0, "util_prom": 0.93, "visitas_prom": 11.0, "dias_ult_prom": 35.0}, {"nombre": "Ex Ejido Orizaba", "clientes": 2, "gasto_prom": 554.86, "saldo_prom": 173.46, "limite_prom": 712.5, "util_prom": 0.34, "visitas_prom": 7.5, "dias_ult_prom": 53.0}, {"nombre": "Ejido Xochimilco", "clientes": 2, "gasto_prom": 929.31, "saldo_prom": 489.66, "limite_prom": 787.5, "util_prom": 0.54, "visitas_prom": 14.0, "dias_ult_prom": 68.0}, {"nombre": "Fracc. Adas", "clientes": 2, "gasto_prom": 254.7, "saldo_prom": 98.68, "limite_prom": 1037.5, "util_prom": 0.06, "visitas_prom": 4.0, "dias_ult_prom": 161.0}, {"nombre": "Col. Santa Rosalia", "clientes": 2, "gasto_prom": 537.76, "saldo_prom": 260.23, "limite_prom": 1375.0, "util_prom": 0.17, "visitas_prom": 7.0, "dias_ult_prom": 28.0}, {"nombre": "Col. Rancho la Bodega", "clientes": 2, "gasto_prom": 726.74, "saldo_prom": 481.81, "limite_prom": 1362.5, "util_prom": 0.35, "visitas_prom": 12.0, "dias_ult_prom": 49.5}, {"nombre": "Col. Robledo", "clientes": 2, "gasto_prom": 391.31, "saldo_prom": 198.24, "limite_prom": 2100.0, "util_prom": 0.09, "visitas_prom": 3.0, "dias_ult_prom": 132.0}, {"nombre": "Col. San Carlos", "clientes": 2, "gasto_prom": 159.0, "saldo_prom": 93.55, "limite_prom": 300.0, "util_prom": 0.42, "visitas_prom": 9.5, "dias_ult_prom": 36.5}, {"nombre": "Fracc. Residencial Sevilla", "clientes": 2, "gasto_prom": 97.42, "saldo_prom": 60.2, "limite_prom": 700.0, "util_prom": 0.05, "visitas_prom": 3.5, "dias_ult_prom": 97.5}, {"nombre": "Fracc. Quinta del Rey Ii Seccion", "clientes": 2, "gasto_prom": 456.06, "saldo_prom": 210.96, "limite_prom": 500.0, "util_prom": 0.46, "visitas_prom": 9.0, "dias_ult_prom": 100.0}, {"nombre": "Fracc. San Miguel", "clientes": 2, "gasto_prom": 200.86, "saldo_prom": 51.98, "limite_prom": 700.0, "util_prom": 0.05, "visitas_prom": 5.0, "dias_ult_prom": 82.0}, {"nombre": "Hacienda del Sol", "clientes": 2, "gasto_prom": 440.17, "saldo_prom": 64.62, "limite_prom": 1262.5, "util_prom": 0.05, "visitas_prom": 8.0, "dias_ult_prom": 97.0}, {"nombre": "Col. Josue Molina", "clientes": 2, "gasto_prom": 317.55, "saldo_prom": 193.02, "limite_prom": 1100.0, "util_prom": 0.09, "visitas_prom": 4.0, "dias_ult_prom": 86.0}, {"nombre": "Parajes de Oriente", "clientes": 2, "gasto_prom": 192.25, "saldo_prom": 0.0, "limite_prom": 975.0, "util_prom": 0.0, "visitas_prom": 2.5, "dias_ult_prom": 197.5}, {"nombre": "Pacifica Residencial", "clientes": 2, "gasto_prom": 399.3, "saldo_prom": 183.75, "limite_prom": 650.0, "util_prom": 0.2, "visitas_prom": 2.0, "dias_ult_prom": 209.5}, {"nombre": "Col. Estrella", "clientes": 2, "gasto_prom": 398.59, "saldo_prom": 180.3, "limite_prom": 937.5, "util_prom": 0.7, "visitas_prom": 7.5, "dias_ult_prom": 24.0}, {"nombre": "Pmb 10045", "clientes": 2, "gasto_prom": 229.25, "saldo_prom": 82.81, "limite_prom": 675.0, "util_prom": 0.1, "visitas_prom": 5.0, "dias_ult_prom": 209.0}, {"nombre": "Modulo Soc Fovisste 3Ra", "clientes": 2, "gasto_prom": 142.22, "saldo_prom": 53.42, "limite_prom": 250.0, "util_prom": 0.53, "visitas_prom": 3.0, "dias_ult_prom": 201.0}, {"nombre": "Montecarlo Iii", "clientes": 2, "gasto_prom": 767.32, "saldo_prom": 294.38, "limite_prom": 1412.5, "util_prom": 0.32, "visitas_prom": 5.0, "dias_ult_prom": 191.0}, {"nombre": "Fracc. la Toscana", "clientes": 2, "gasto_prom": 574.48, "saldo_prom": 257.09, "limite_prom": 800.0, "util_prom": 0.4, "visitas_prom": 9.5, "dias_ult_prom": 100.0}, {"nombre": "Fracc. Villa del Cedro Residencial", "clientes": 2, "gasto_prom": 710.18, "saldo_prom": 452.58, "limite_prom": 1825.0, "util_prom": 0.15, "visitas_prom": 13.5, "dias_ult_prom": 83.0}, {"nombre": "Fracc. Villa Rdcial Venecia", "clientes": 2, "gasto_prom": 63.74, "saldo_prom": 12.1, "limite_prom": 700.0, "util_prom": 0.03, "visitas_prom": 1.5, "dias_ult_prom": 92.5}, {"nombre": "Ej. Plan de Ayala", "clientes": 2, "gasto_prom": 1055.06, "saldo_prom": 694.16, "limite_prom": 1150.0, "util_prom": 0.63, "visitas_prom": 9.5, "dias_ult_prom": 87.0}, {"nombre": "Ej. Puebla", "clientes": 2, "gasto_prom": 480.2, "saldo_prom": 237.49, "limite_prom": 1100.0, "util_prom": 0.11, "visitas_prom": 9.0, "dias_ult_prom": 130.5}, {"nombre": "Ej Cucapah Indigena", "clientes": 2, "gasto_prom": 380.7, "saldo_prom": 0.0, "limite_prom": 400.0, "util_prom": 0.0, "visitas_prom": 1.0, "dias_ult_prom": 167.5}, {"nombre": "Fracc. Villas Cachanilla", "clientes": 2, "gasto_prom": 761.58, "saldo_prom": 269.2, "limite_prom": 1525.0, "util_prom": 0.15, "visitas_prom": 10.0, "dias_ult_prom": 109.5}, {"nombre": "Col.Recidencias", "clientes": 2, "gasto_prom": 819.56, "saldo_prom": 181.06, "limite_prom": 900.0, "util_prom": 0.3, "visitas_prom": 9.0, "dias_ult_prom": 191.0}, {"nombre": "Cuauhtemoc Sur", "clientes": 2, "gasto_prom": 773.46, "saldo_prom": 394.72, "limite_prom": 2337.5, "util_prom": 0.16, "visitas_prom": 10.5, "dias_ult_prom": 66.5}, {"nombre": "Lomas Altas", "clientes": 2, "gasto_prom": 1061.64, "saldo_prom": 644.33, "limite_prom": 1662.5, "util_prom": 0.43, "visitas_prom": 9.5, "dias_ult_prom": 29.0}, {"nombre": "Jardines del Valle", "clientes": 2, "gasto_prom": 906.16, "saldo_prom": 448.61, "limite_prom": 1612.5, "util_prom": 0.41, "visitas_prom": 8.5, "dias_ult_prom": 82.5}, {"nombre": "Mision San Adrian", "clientes": 2, "gasto_prom": 630.18, "saldo_prom": 478.01, "limite_prom": 2875.0, "util_prom": 0.17, "visitas_prom": 8.5, "dias_ult_prom": 67.0}, {"nombre": "Maestros Estatales", "clientes": 2, "gasto_prom": 252.16, "saldo_prom": 51.82, "limite_prom": 1462.5, "util_prom": 0.03, "visitas_prom": 8.5, "dias_ult_prom": 69.0}, {"nombre": "Mission Sto Domingo", "clientes": 2, "gasto_prom": 173.98, "saldo_prom": 12.32, "limite_prom": 1425.0, "util_prom": 0.01, "visitas_prom": 6.0, "dias_ult_prom": 159.0}, {"nombre": "Nuevo Milenio", "clientes": 2, "gasto_prom": 460.47, "saldo_prom": 251.12, "limite_prom": 775.0, "util_prom": 0.3, "visitas_prom": 2.0, "dias_ult_prom": 142.0}, {"nombre": "Fracc. Vista del Valle", "clientes": 2, "gasto_prom": 769.56, "saldo_prom": 492.42, "limite_prom": 670.0, "util_prom": 0.76, "visitas_prom": 6.5, "dias_ult_prom": 37.5}, {"nombre": "Col. Pioneros de la Progreso", "clientes": 2, "gasto_prom": 189.29, "saldo_prom": 59.75, "limite_prom": 750.0, "util_prom": 0.06, "visitas_prom": 5.5, "dias_ult_prom": 86.5}, {"nombre": "Privadas Campestres 2", "clientes": 2, "gasto_prom": 997.64, "saldo_prom": 605.57, "limite_prom": 925.0, "util_prom": 0.6, "visitas_prom": 8.0, "dias_ult_prom": 55.5}, {"nombre": "Priv. Vistahermosa", "clientes": 2, "gasto_prom": 681.06, "saldo_prom": 322.91, "limite_prom": 550.0, "util_prom": 0.63, "visitas_prom": 9.5, "dias_ult_prom": 97.5}, {"nombre": "Primero de Mayo", "clientes": 2, "gasto_prom": 805.62, "saldo_prom": 434.5, "limite_prom": 1300.0, "util_prom": 0.24, "visitas_prom": 9.5, "dias_ult_prom": 135.0}, {"nombre": "Pmb 96", "clientes": 2, "gasto_prom": 106.08, "saldo_prom": 70.38, "limite_prom": 1450.0, "util_prom": 0.03, "visitas_prom": 7.0, "dias_ult_prom": 289.5}, {"nombre": "Pmb 8211", "clientes": 2, "gasto_prom": 297.17, "saldo_prom": 178.73, "limite_prom": 1250.0, "util_prom": 0.12, "visitas_prom": 5.5, "dias_ult_prom": 58.5}, {"nombre": "Pmb 87245", "clientes": 2, "gasto_prom": 328.39, "saldo_prom": 89.56, "limite_prom": 525.0, "util_prom": 0.3, "visitas_prom": 4.5, "dias_ult_prom": 121.5}, {"nombre": "Pmb 7382", "clientes": 2, "gasto_prom": 435.89, "saldo_prom": 326.52, "limite_prom": 1150.0, "util_prom": 0.23, "visitas_prom": 8.5, "dias_ult_prom": 201.5}, {"nombre": "Pmb 7486", "clientes": 2, "gasto_prom": 272.94, "saldo_prom": -2.16, "limite_prom": 735.0, "util_prom": 0.0, "visitas_prom": 11.5, "dias_ult_prom": 81.0}, {"nombre": "Pmb 7060", "clientes": 2, "gasto_prom": 684.42, "saldo_prom": 318.52, "limite_prom": 475.0, "util_prom": 0.67, "visitas_prom": 11.0, "dias_ult_prom": 53.0}, {"nombre": "Pmb 6379", "clientes": 2, "gasto_prom": 173.98, "saldo_prom": 41.46, "limite_prom": 1250.0, "util_prom": 0.06, "visitas_prom": 5.0, "dias_ult_prom": 115.0}, {"nombre": "Col. Parcelas del Valle", "clientes": 2, "gasto_prom": 723.45, "saldo_prom": 503.52, "limite_prom": 1550.0, "util_prom": 0.41, "visitas_prom": 7.0, "dias_ult_prom": 45.5}, {"nombre": "Col. Mezquital", "clientes": 2, "gasto_prom": 412.99, "saldo_prom": 231.33, "limite_prom": 425.0, "util_prom": 0.39, "visitas_prom": 4.5, "dias_ult_prom": 129.0}, {"nombre": "Col. Progreso", "clientes": 2, "gasto_prom": 449.28, "saldo_prom": 238.95, "limite_prom": 925.0, "util_prom": 0.33, "visitas_prom": 6.0, "dias_ult_prom": 53.0}, {"nombre": "Pmb 25424", "clientes": 2, "gasto_prom": 89.74, "saldo_prom": 56.2, "limite_prom": 125.0, "util_prom": 0.43, "visitas_prom": 8.0, "dias_ult_prom": 41.5}, {"nombre": "Pmb 37-234", "clientes": 2, "gasto_prom": 690.04, "saldo_prom": 378.83, "limite_prom": 1312.5, "util_prom": 0.28, "visitas_prom": 8.5, "dias_ult_prom": 63.0}, {"nombre": "Pmb 43525", "clientes": 2, "gasto_prom": 688.86, "saldo_prom": 357.6, "limite_prom": 2737.5, "util_prom": 0.1, "visitas_prom": 15.0, "dias_ult_prom": 37.5}, {"nombre": "Antares Residencial", "clientes": 2, "gasto_prom": 368.1, "saldo_prom": 82.18, "limite_prom": 1325.0, "util_prom": 0.04, "visitas_prom": 8.0, "dias_ult_prom": 262.5}, {"nombre": "Valle del Alamo", "clientes": 2, "gasto_prom": 157.02, "saldo_prom": 25.62, "limite_prom": 1350.0, "util_prom": 0.01, "visitas_prom": 4.0, "dias_ult_prom": 123.5}, {"nombre": "Ste 1", "clientes": 2, "gasto_prom": 297.7, "saldo_prom": 178.53, "limite_prom": 525.0, "util_prom": 0.44, "visitas_prom": 7.5, "dias_ult_prom": 48.0}, {"nombre": "Pto de San Felipe", "clientes": 2, "gasto_prom": 647.85, "saldo_prom": 594.91, "limite_prom": 1400.0, "util_prom": 0.45, "visitas_prom": 7.0, "dias_ult_prom": 11.0}, {"nombre": "Quinta del Centro", "clientes": 2, "gasto_prom": 674.95, "saldo_prom": 263.56, "limite_prom": 1100.0, "util_prom": 0.41, "visitas_prom": 7.5, "dias_ult_prom": 101.5}, {"nombre": "Real del Rio", "clientes": 2, "gasto_prom": 388.14, "saldo_prom": 255.85, "limite_prom": 1750.0, "util_prom": 0.18, "visitas_prom": 6.0, "dias_ult_prom": 73.0}, {"nombre": "Spc 178", "clientes": 2, "gasto_prom": 537.19, "saldo_prom": 317.62, "limite_prom": 250.0, "util_prom": 1.19, "visitas_prom": 7.5, "dias_ult_prom": 100.0}, {"nombre": "Spc 35", "clientes": 2, "gasto_prom": 211.82, "saldo_prom": 89.79, "limite_prom": 920.0, "util_prom": 0.11, "visitas_prom": 8.5, "dias_ult_prom": 166.0}, {"nombre": "Quinta Granada", "clientes": 2, "gasto_prom": 267.51, "saldo_prom": 164.46, "limite_prom": 662.5, "util_prom": 0.36, "visitas_prom": 5.0, "dias_ult_prom": 51.5}, {"nombre": "Ampliacion Villa Verde", "clientes": 2, "gasto_prom": 597.55, "saldo_prom": 179.17, "limite_prom": 1125.0, "util_prom": 0.11, "visitas_prom": 11.5, "dias_ult_prom": 95.0}, {"nombre": "Vicente Guerrero", "clientes": 2, "gasto_prom": 1014.9, "saldo_prom": 539.08, "limite_prom": 1962.5, "util_prom": 0.46, "visitas_prom": 12.0, "dias_ult_prom": 56.5}, {"nombre": "Villa Colonial", "clientes": 2, "gasto_prom": 385.46, "saldo_prom": 190.7, "limite_prom": 1075.0, "util_prom": 0.11, "visitas_prom": 7.0, "dias_ult_prom": 155.5}, {"nombre": "Villas las Lomas", "clientes": 2, "gasto_prom": 328.98, "saldo_prom": 121.28, "limite_prom": 1787.5, "util_prom": 0.07, "visitas_prom": 4.5, "dias_ult_prom": 307.5}, {"nombre": "Adolfo Lopez Mateos", "clientes": 2, "gasto_prom": 339.42, "saldo_prom": 172.87, "limite_prom": 800.0, "util_prom": 0.16, "visitas_prom": 5.0, "dias_ult_prom": 101.0}, {"nombre": "Villanova", "clientes": 2, "gasto_prom": 638.67, "saldo_prom": 96.6, "limite_prom": 1587.5, "util_prom": 0.14, "visitas_prom": 8.5, "dias_ult_prom": 153.0}, {"nombre": "el Campanario", "clientes": 2, "gasto_prom": 1016.7, "saldo_prom": 535.6, "limite_prom": 900.0, "util_prom": 0.64, "visitas_prom": 9.5, "dias_ult_prom": 25.5}];

const API_KEY = 'AIzaSyDxHeW3-ufy8iRcC0BXvS0UZatSXxmePoc';
const GEOCACHE = {};
let MAP, HEAT_LAYER, markers = [], minClientes = 2, activeIdx = null;

// Coordenadas conocidas de colonias de Mexicali
const COORDS_KNOWN = {
  'Fracc. Villas del Rey':    {lat:32.59888902192325, lng:-115.48672832117151},
  'Col. Independencia':       {lat:32.6355, lng:-115.4680},
  'Col. Pro-Hogar':           {lat:32.6558, lng:-115.4720},
  'Col. Esperanza':           {lat:32.6620, lng:-115.4850},
  'Jardines del Lago':        {lat:32.5950, lng:-115.4930},
  'Col. Baja California':     {lat:32.6420, lng:-115.4560},
  'Fracc. Villa Colonial':    {lat:32.6180, lng:-115.4540},
  'Col. Gonzalez Ortega':     {lat:32.6510, lng:-115.4620},
  'Fracc. Paseos del Sol':    {lat:32.6050, lng:-115.5020},
  'Fracc. Hacienda del Rio':  {lat:32.6130, lng:-115.5100},
  'Fracc. Santa Monica':      {lat:32.6250, lng:-115.5150},
  'Fracc. Villa Verde':       {lat:32.6320, lng:-115.5080},
  'Fracc. Villas del Colorado':{lat:32.6090, lng:-115.4880},
  'Fracc. Venezia':           {lat:32.5990, lng:-115.5060},
  'Infonavit Cucapah':        {lat:32.6740, lng:-115.4420},
  'Fracc. Sonora':            {lat:32.6680, lng:-115.4350},
  'Conj Urb Universitario':   {lat:32.6610, lng:-115.4790},
  'Col. Alamitos':            {lat:32.6450, lng:-115.4810},
  'Col. Hidalgo':             {lat:32.6520, lng:-115.4750},
  'Col. Nacionalista':        {lat:32.6380, lng:-115.4700},
  'Fracc. San Marcos':        {lat:32.6280, lng:-115.4650},
  'Col. Industrial':          {lat:32.6590, lng:-115.4530},
  'Col. Cuauhtemoc Norte':    {lat:32.6640, lng:-115.4660},
  'Fracc. Villanova':         {lat:32.6170, lng:-115.5200},
  'Col. Libertad':            {lat:32.6470, lng:-115.4880},
  'Col. Nueva':               {lat:32.6530, lng:-115.4770},
  'Fracc. las Hadas':         {lat:32.6220, lng:-115.5110},
  'Conj Urbano Esperanza':    {lat:32.6350, lng:-115.5010},
  'Fracc. el Campanario':     {lat:32.6060, lng:-115.5180},
  'Fracc. Montecarlo':        {lat:32.6140, lng:-115.5250},
  'Fracc. Calafia':           {lat:32.6200, lng:-115.4920},
  'Col. Carbajal':            {lat:32.6490, lng:-115.4940},
  'Fracc. Valle Dorado':      {lat:32.6380, lng:-115.4960},
  'Fracc. Barcelona Residencial':{lat:32.6000, lng:-115.5120},
  'Fracc. Nuevo Mexicali':    {lat:32.6300, lng:-115.4880},
  'Col. Pueblo Nuevo':        {lat:32.6560, lng:-115.4820},
  'Fracc. Villafontana':      {lat:32.5870, lng:-115.4990},
  'Fracc. Hacienda los Portales':{lat:32.6110, lng:-115.4790},
  'Residencial Gran Venecia': {lat:32.5910, lng:-115.5070},
  'Fracc. Hipico':            {lat:32.6020, lng:-115.5090},
  'Fracc. Solidaridad':       {lat:32.6250, lng:-115.4760},
  'Ex Ejido Coahuila':        {lat:32.6710, lng:-115.4290},
  'Fracc. Real del Rio':      {lat:32.5930, lng:-115.5000},
};

const VAR_LABELS = {
  clientes: {label:'Clientes', fmt: v => v + ' clientes', color:'#4f8fff'},
  gasto_prom: {label:'Gasto Prom.', fmt: v => '$' + Math.round(v).toLocaleString('es-MX'), color:'#e8b84b'},
  saldo_prom: {label:'Saldo Prom.', fmt: v => '$' + Math.round(v).toLocaleString('es-MX'), color:'#e05060'},
  util_prom: {label:'Utilización', fmt: v => (v*100).toFixed(1) + '%', color:'#9b6fff'},
  visitas_prom: {label:'Visitas', fmt: v => v.toFixed(1) + ' vis.', color:'#3ec9a0'},
  dias_ult_prom: {label:'Días Últ. Compra', fmt: v => Math.round(v) + ' días', color:'#f07840'},
};

function initMap() {
  MAP = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 32.627, lng: -115.487},
    zoom: 12,
    styles: [
      {elementType:'geometry',stylers:[{color:'#0f1118'}]},
      {elementType:'labels.text.fill',stylers:[{color:'#7880a0'}]},
      {elementType:'labels.text.stroke',stylers:[{color:'#08090d'}]},
      {featureType:'road',elementType:'geometry',stylers:[{color:'#1e2230'}]},
      {featureType:'road.highway',elementType:'geometry',stylers:[{color:'#252c3e'}]},
      {featureType:'water',elementType:'geometry',stylers:[{color:'#0a0c12'}]},
      {featureType:'poi',stylers:[{visibility:'off'}]},
      {featureType:'transit',stylers:[{visibility:'off'}]},
      {featureType:'administrative.locality',elementType:'labels.text.fill',stylers:[{color:'#e8b84b'}]},
      {featureType:'administrative.neighborhood',elementType:'labels.text.fill',stylers:[{color:'#40485e'}]},
    ],
    disableDefaultUI: true,
    zoomControl: true,
    mapTypeControl: false,
  });
  updateMap();
}

async function geocode(nombre) {
  if (COORDS_KNOWN[nombre]) return COORDS_KNOWN[nombre];
  if (GEOCACHE[nombre]) return GEOCACHE[nombre];
  try {
    const q = encodeURIComponent(nombre + ', Mexicali, Baja California, Mexico');
    const r = await fetch(`https://maps.googleapis.com/maps/api/geocode/json?address=${q}&key=${API_KEY}`);
    const data = await r.json();
    if (data.results && data.results[0]) {
      const loc = data.results[0].geometry.location;
      GEOCACHE[nombre] = loc;
      return loc;
    }
  } catch(e) {}
  return null;
}

async function updateMap() {
  const varKey = document.getElementById('sel-var').value;
  const modo   = document.getElementById('sel-modo').value;
  const vInfo  = VAR_LABELS[varKey];

  const filtered = COL_DATA.filter(c => c.clientes >= minClientes);
  const vals = filtered.map(c => c[varKey]);
  const maxVal = Math.max(...vals);
  const minVal = Math.min(...vals);

  // Limpiar capas anteriores
  if (HEAT_LAYER) { HEAT_LAYER.setMap(null); HEAT_LAYER = null; }
  markers.forEach(m => m.setMap(null));
  markers = [];

  // Renderizar sidebar
  const sorted = [...filtered].sort((a,b) => b[varKey] - a[varKey]);
  renderSidebar(sorted, varKey, vInfo, maxVal);

  // Geocodificar y pintar
  const points = [];
  for (const col of filtered) {
    const coords = await geocode(col.nombre);
    if (!coords) continue;

    const val = col[varKey];
    const norm = maxVal > minVal ? (val - minVal) / (maxVal - minVal) : 0.5;

    if (modo === 'heat' || modo === 'both') {
      points.push({location: new google.maps.LatLng(coords.lat, coords.lng), weight: norm * col.clientes});
    }

    if (modo === 'bubble' || modo === 'both') {
      const radius = 400 + norm * 1200;
      const color = norm > 0.66 ? '#e8b84b' : norm > 0.33 ? '#4f8fff' : '#3ec9a0';
      const circle = new google.maps.Circle({
        strokeColor: color, strokeOpacity: 0.8, strokeWeight: 1.5,
        fillColor: color, fillOpacity: 0.15,
        map: MAP, center: coords,
        radius,
      });

      const infoWin = new google.maps.InfoWindow({
        content: `<div style="background:#0f1118;border:1px solid #252c3e;border-radius:8px;padding:12px;min-width:180px;font-family:'DM Mono',monospace">
          <div style="color:#e8b84b;font-size:12px;font-weight:700;margin-bottom:8px">${col.nombre}</div>
          <div style="color:#7880a0;font-size:10px">Clientes: <span style="color:#dde2f0">${col.clientes}</span></div>
          <div style="color:#7880a0;font-size:10px">Gasto Prom: <span style="color:#dde2f0">$${Math.round(col.gasto_prom).toLocaleString('es-MX')}</span></div>
          <div style="color:#7880a0;font-size:10px">Saldo Prom: <span style="color:#dde2f0">$${Math.round(col.saldo_prom).toLocaleString('es-MX')}</span></div>
          <div style="color:#7880a0;font-size:10px">Utilización: <span style="color:#dde2f0">${(col.util_prom*100).toFixed(1)}%</span></div>
          <div style="color:#7880a0;font-size:10px">Visitas: <span style="color:#dde2f0">${col.visitas_prom.toFixed(1)}</span></div>
          <div style="color:#7880a0;font-size:10px">Días últ compra: <span style="color:#dde2f0">${Math.round(col.dias_ult_prom)}</span></div>
        </div>`
      });
      circle.addListener('click', () => infoWin.open(MAP, {getPosition:()=>new google.maps.LatLng(coords.lat,coords.lng)}));
      markers.push(circle);
    }
  }

  if ((modo === 'heat' || modo === 'both') && points.length > 0) {
    HEAT_LAYER = new google.maps.visualization.HeatmapLayer({
      data: points,
      map: MAP,
      radius: 40,
      opacity: 0.8,
      gradient: ['rgba(8,9,13,0)','rgba(62,201,160,0.6)','rgba(79,143,255,0.8)','rgba(232,184,75,1)','rgba(224,80,96,1)'],
    });
  }
}

function renderSidebar(sorted, varKey, vInfo, maxVal) {
  document.getElementById('sb-title').textContent = 'Por ' + vInfo.label;
  document.getElementById('sb-sub').textContent = `${sorted.length} colonias · ordenadas de mayor a menor`;
  const list = document.getElementById('sb-list');
  list.innerHTML = '';
  sorted.forEach((col, i) => {
    const val = col[varKey];
    const norm = maxVal > 0 ? val / maxVal : 0;
    const badgeCls = norm > 0.66 ? 'hi' : norm > 0.33 ? 'md' : 'lo';
    const badgeLbl = norm > 0.66 ? 'Alto' : norm > 0.33 ? 'Medio' : 'Bajo';
    const div = document.createElement('div');
    div.className = 'sb-item' + (i === activeIdx ? ' active' : '');
    div.innerHTML = `
      <div class="sb-rank">${i+1}</div>
      <div class="sb-info">
        <div class="sb-name">${col.nombre}</div>
        <div class="sb-val">${vInfo.fmt(val)}</div>
        <div class="sb-meta">${col.clientes} clientes · ${(col.util_prom*100).toFixed(0)}% utiliz.</div>
        <div class="bar-wrap">
          <div class="bar-bg"><div class="bar-fill" style="width:${(norm*100).toFixed(1)}%;background:${vInfo.color}"></div></div>
          <span class="badge ${badgeCls}">${badgeLbl}</span>
        </div>
      </div>`;
    div.onclick = () => showInfo(col, i);
    list.appendChild(div);
  });
}

function showInfo(col, idx) {
  activeIdx = idx;
  const box = document.getElementById('info-box');
  document.getElementById('ib-name').textContent = col.nombre;
  document.getElementById('ib-grid').innerHTML = `
    <div class="ib-cell"><div class="ib-lbl">Clientes</div><div class="ib-val">${col.clientes}</div></div>
    <div class="ib-cell"><div class="ib-lbl">Gasto Prom.</div><div class="ib-val">$${Math.round(col.gasto_prom).toLocaleString('es-MX')}</div></div>
    <div class="ib-cell"><div class="ib-lbl">Saldo Prom.</div><div class="ib-val">$${Math.round(col.saldo_prom).toLocaleString('es-MX')}</div></div>
    <div class="ib-cell"><div class="ib-lbl">Utilización</div><div class="ib-val">${(col.util_prom*100).toFixed(1)}%</div></div>
    <div class="ib-cell"><div class="ib-lbl">Visitas</div><div class="ib-val">${col.visitas_prom.toFixed(1)}</div></div>
    <div class="ib-cell"><div class="ib-lbl">Días Últ.</div><div class="ib-val">${Math.round(col.dias_ult_prom)}</div></div>`;
  box.style.display = 'block';
  document.querySelectorAll('.sb-item').forEach((el,i) => el.classList.toggle('active', i===idx));
}

function setMin(n, btn) {
  minClientes = n;
  document.querySelectorAll('.mfbtn').forEach(b => b.classList.remove('on'));
  btn.classList.add('on');
  updateMap();
}
</script>
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDxHeW3-ufy8iRcC0BXvS0UZatSXxmePoc&libraries=visualization&callback=initMap">
</script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit