{"id":93883,"date":"2026-04-24T16:03:17","date_gmt":"2026-04-24T13:03:17","guid":{"rendered":"https:\/\/www.bluepoint.bg\/?page_id=93883"},"modified":"2026-04-27T09:49:12","modified_gmt":"2026-04-27T06:49:12","slug":"balkan-ecommerce-comparison-2025","status":"publish","type":"page","link":"https:\/\/www.bluepoint.bg\/en\/balkan-ecommerce-comparison-2025\/","title":{"rendered":"Balkan eCommerce Comparison 2025"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"93883\" class=\"elementor elementor-93883\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4cc7f3c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4cc7f3c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3db00aa\" data-id=\"3db00aa\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-73d26b2 elementor-widget elementor-widget-html\" data-id=\"73d26b2\" 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<!-- ===== BALKAN E-COMMERCE DASHBOARD \u2014 WordPress-safe widget ===== -->\n<!-- Paste this whole block into a Custom HTML block in WordPress. -->\n<div class=\"balkan-dashboard\" id=\"balkanDashboard\">\n  <div class=\"bd-wrap\">\n    <h1 class=\"bd-title\">Balkan E-commerce Dashboard<\/h1>\n    <div class=\"bd-sub\">\u0418\u0437\u0431\u0435\u0440\u0438 \u0434\u044a\u0440\u0436\u0430\u0432\u0438 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0448 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438\u0442\u0435.<\/div>\n\n    <div class=\"bd-controls\">\n      <span class=\"bd-label\">Metric<\/span>\n      <select id=\"bd-metric\" class=\"bd-select\"><\/select>\n      <button class=\"bd-btn\" id=\"bd-allBtn\" type=\"button\">\u0412\u0441\u0438\u0447\u043a\u0438<\/button>\n      <button class=\"bd-btn\" id=\"bd-noneBtn\" type=\"button\">\u041d\u0438\u0442\u043e \u0435\u0434\u043d\u0430<\/button>\n    <\/div>\n\n    <div class=\"bd-chips\" id=\"bd-chips\"><\/div>\n\n    <div class=\"bd-kpis\" id=\"bd-kpis\"><\/div>\n\n    <div class=\"bd-grid\">\n      <div class=\"bd-card\">\n        <h3 class=\"bd-card-h\" id=\"bd-tableTitle\">Sum of Value<\/h3>\n        <table class=\"bd-table\" id=\"bd-pivot\">\n          <thead><tr><th>Country<\/th><th class=\"bd-num\" id=\"bd-valHeader\">Value<\/th><\/tr><\/thead>\n          <tbody><\/tbody>\n        <\/table>\n      <\/div>\n      <div class=\"bd-card\">\n        <h3 class=\"bd-card-h\">Chart<\/h3>\n        <div class=\"bd-chart-box\"><canvas id=\"bd-chart\"><\/canvas><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"bd-footer\">Source: Eurostat \/ national statistics \u2014 BES Balkan Comparison<\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* All styles scoped to .balkan-dashboard to avoid conflicts with WP theme.\n   !important is used on color\/background rules because many WP themes\n   aggressively override h1\/h3\/table\/td colors. *\/\n.balkan-dashboard, .balkan-dashboard *{box-sizing:border-box}\n.balkan-dashboard{\n  --bd-bg:#0f172a;\n  --bd-panel:#111c33;\n  --bd-panel-2:#1a253f;\n  --bd-border:#253150;\n  --bd-text:#e5ecf7;\n  --bd-muted:#8ea2c6;\n  --bd-accent:#4f8cff;\n  --bd-chip:#1f2b47;\n  --bd-chip-active:#2b5fff;\n  --bd-shadow:0 10px 30px rgba(0,0,0,.25);\n\n  display:block !important;\n  background:var(--bd-bg) !important;\n  color:var(--bd-text) !important;\n  border-radius:16px;\n  font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif !important;\n  line-height:1.4 !important;\n  padding:8px 0;\n  overflow:hidden;\n}\n.balkan-dashboard .bd-wrap{max-width:1200px;margin:0 auto;padding:28px 24px 36px}\n.balkan-dashboard .bd-title{\n  font-size:26px !important;margin:0 0 4px !important;letter-spacing:.2px !important;\n  color:var(--bd-text) !important;font-weight:700 !important;background:transparent !important;\n}\n.balkan-dashboard .bd-sub{color:var(--bd-muted) !important;margin-bottom:22px;font-size:14px}\n.balkan-dashboard .bd-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}\n.balkan-dashboard .bd-label{font-size:12px;color:var(--bd-muted) !important;text-transform:uppercase;letter-spacing:.12em;margin-right:6px}\n.balkan-dashboard .bd-select{\n  background:var(--bd-panel) !important;color:var(--bd-text) !important;\n  border:1px solid var(--bd-border) !important;padding:10px 14px !important;\n  border-radius:10px !important;font-size:14px !important;cursor:pointer;min-width:280px;\n  appearance:auto;max-width:100%;\n}\n.balkan-dashboard .bd-select option{background:var(--bd-panel) !important;color:var(--bd-text) !important}\n.balkan-dashboard .bd-select:focus{outline:2px solid var(--bd-accent)}\n.balkan-dashboard .bd-btn{\n  background:var(--bd-panel) !important;color:var(--bd-text) !important;\n  border:1px solid var(--bd-border) !important;padding:8px 12px !important;\n  border-radius:8px !important;font-size:12px !important;cursor:pointer;\n  font-family:inherit;line-height:1.2;\n}\n.balkan-dashboard .bd-btn:hover{background:var(--bd-panel-2) !important}\n.balkan-dashboard .bd-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 22px}\n.balkan-dashboard .bd-chip{\n  display:inline-flex;align-items:center;gap:8px;\n  background:var(--bd-chip) !important;color:var(--bd-text) !important;\n  border:1px solid var(--bd-border) !important;\n  padding:8px 14px;border-radius:999px;cursor:pointer;user-select:none;\n  font-size:14px;transition:all .15s ease;\n}\n.balkan-dashboard .bd-chip .bd-flag{font-size:18px;line-height:1}\n.balkan-dashboard .bd-chip:hover{transform:translateY(-1px)}\n.balkan-dashboard .bd-chip.bd-active{\n  background:var(--bd-chip-active) !important;border-color:var(--bd-chip-active) !important;\n  color:#fff !important;box-shadow:0 6px 16px rgba(43,95,255,.35);\n}\n.balkan-dashboard .bd-chip.bd-inactive{opacity:.55;filter:grayscale(.3)}\n.balkan-dashboard .bd-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}\n@media (max-width:900px){.balkan-dashboard .bd-grid{grid-template-columns:1fr}}\n.balkan-dashboard .bd-card{\n  background:var(--bd-panel) !important;border:1px solid var(--bd-border) !important;\n  border-radius:14px;padding:18px;box-shadow:var(--bd-shadow);\n}\n.balkan-dashboard .bd-card-h{\n  margin:0 0 10px !important;font-size:14px !important;\n  color:var(--bd-muted) !important;font-weight:600 !important;\n  letter-spacing:.08em;text-transform:uppercase;background:transparent !important;\n}\n.balkan-dashboard .bd-table{width:100%;border-collapse:collapse;font-size:14px;color:var(--bd-text) !important;background:transparent !important}\n.balkan-dashboard .bd-table th, .balkan-dashboard .bd-table td{\n  padding:10px 12px !important;text-align:left !important;\n  border-bottom:1px solid var(--bd-border) !important;\n  color:var(--bd-text) !important;background:transparent !important;\n}\n.balkan-dashboard .bd-table th{color:var(--bd-muted) !important;font-weight:600 !important;font-size:12px !important;text-transform:uppercase;letter-spacing:.08em}\n.balkan-dashboard .bd-table td.bd-num, .balkan-dashboard .bd-table th.bd-num{text-align:right !important;font-variant-numeric:tabular-nums}\n.balkan-dashboard .bd-table td.bd-na{color:var(--bd-muted) !important;font-style:italic}\n.balkan-dashboard .bd-table tr:last-child td{border-bottom:none !important}\n.balkan-dashboard .bd-table tr.bd-total td{background:var(--bd-panel-2) !important;font-weight:600 !important;border-top:2px solid var(--bd-border) !important}\n.balkan-dashboard .bd-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}\n@media (max-width:600px){.balkan-dashboard .bd-kpis{grid-template-columns:1fr}}\n.balkan-dashboard .bd-kpi{\n  background:var(--bd-panel) !important;border:1px solid var(--bd-border) !important;\n  border-radius:12px;padding:16px;color:var(--bd-text) !important;\n}\n.balkan-dashboard .bd-kpi .bd-k-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--bd-muted) !important}\n.balkan-dashboard .bd-kpi .bd-k-val{font-size:24px;font-weight:700;margin-top:6px;color:var(--bd-text) !important}\n.balkan-dashboard .bd-kpi .bd-k-sub{font-size:12px;color:var(--bd-muted) !important;margin-top:2px}\n.balkan-dashboard .bd-chart-box{position:relative;height:360px}\n.balkan-dashboard .bd-footer{color:var(--bd-muted) !important;font-size:12px;margin-top:22px;text-align:center}\n<\/style>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.1\/dist\/chart.umd.min.js\"><\/script>\n<script>\n(function(){\n  var root = document.getElementById('balkanDashboard');\n  if(!root || root.dataset.bdInit) return;\n  root.dataset.bdInit = '1';\n\n  \/\/ ---- Data (from \"Total\" sheet). \"N\/A\" = missing, \"low reliability\" also treated as N\/A. ----\n  var NA = \"N\/A\";\n  var DATA = [\n    {country:\"Bulgaria\", flag:\"\ud83c\udde7\ud83c\uddec\", metrics:{\n      \"Level of internet access - households\":92.82,\n      \"Frequency of internet access: daily (All individuals)\":82.7,\n      \"Frequency of internet access: daily (16\u201329 years old)\":97.69,\n      \"Enterprises having received orders online (\u22651%)\":14.17,\n      \"Share of enterprises' turnover on e-commerce\":7.63,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":4192.06,\n      \"Use of generative AI tools: in the last 3 months\":22.5,\n      \"Use of generative AI tools: for private purposes\":20.15,\n      \"Use of generative AI tools: for professional (work) purposes\":8.43,\n      \"Use of generative AI tools: for formal education\":5.17\n    }},\n    {country:\"Greece\", flag:\"\ud83c\uddec\ud83c\uddf7\", metrics:{\n      \"Level of internet access - households\":88.73,\n      \"Frequency of internet access: daily (All individuals)\":87.18,\n      \"Frequency of internet access: daily (16\u201329 years old)\":99.7,\n      \"Enterprises having received orders online (\u22651%)\":23.48,\n      \"Share of enterprises' turnover on e-commerce\":9.49,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":7622.96,\n      \"Use of generative AI tools: in the last 3 months\":44.09,\n      \"Use of generative AI tools: for private purposes\":40.91,\n      \"Use of generative AI tools: for professional (work) purposes\":16.07,\n      \"Use of generative AI tools: for formal education\":11.22\n    }},\n    {country:\"Croatia\", flag:\"\ud83c\udded\ud83c\uddf7\", metrics:{\n      \"Level of internet access - households\":87.91,\n      \"Frequency of internet access: daily (All individuals)\":82.63,\n      \"Frequency of internet access: daily (16\u201329 years old)\":99.07,\n      \"Enterprises having received orders online (\u22651%)\":23.39,\n      \"Share of enterprises' turnover on e-commerce\":18.48,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":8535.14,\n      \"Use of generative AI tools: in the last 3 months\":27.52,\n      \"Use of generative AI tools: for private purposes\":24.73,\n      \"Use of generative AI tools: for professional (work) purposes\":9.01,\n      \"Use of generative AI tools: for formal education\":13.37\n    }},\n    {country:\"Hungary\", flag:\"\ud83c\udded\ud83c\uddfa\", metrics:{\n      \"Level of internet access - households\":93.06,\n      \"Frequency of internet access: daily (All individuals)\":86.51,\n      \"Frequency of internet access: daily (16\u201329 years old)\":95.94,\n      \"Enterprises having received orders online (\u22651%)\":18,\n      \"Share of enterprises' turnover on e-commerce\":21.35,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":51503.06,\n      \"Use of generative AI tools: in the last 3 months\":29.56,\n      \"Use of generative AI tools: for private purposes\":NA,\n      \"Use of generative AI tools: for professional (work) purposes\":NA,\n      \"Use of generative AI tools: for formal education\":NA\n    }},\n    {country:\"Romania\", flag:\"\ud83c\uddf7\ud83c\uddf4\", metrics:{\n      \"Level of internet access - households\":95.47,\n      \"Frequency of internet access: daily (All individuals)\":88.18,\n      \"Frequency of internet access: daily (16\u201329 years old)\":97.38,\n      \"Enterprises having received orders online (\u22651%)\":14.01,\n      \"Share of enterprises' turnover on e-commerce\":13.24,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":19944.03,\n      \"Use of generative AI tools: in the last 3 months\":17.76,\n      \"Use of generative AI tools: for private purposes\":14.85,\n      \"Use of generative AI tools: for professional (work) purposes\":5.24,\n      \"Use of generative AI tools: for formal education\":3.37\n    }},\n    {country:\"Slovenia\", flag:\"\ud83c\uddf8\ud83c\uddee\", metrics:{\n      \"Level of internet access - households\":93.53,\n      \"Frequency of internet access: daily (All individuals)\":87.97,\n      \"Frequency of internet access: daily (16\u201329 years old)\":98.82,\n      \"Enterprises having received orders online (\u22651%)\":21.59,\n      \"Share of enterprises' turnover on e-commerce\":16.78,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":10275.4,\n      \"Use of generative AI tools: in the last 3 months\":37.56,\n      \"Use of generative AI tools: for private purposes\":31.17,\n      \"Use of generative AI tools: for professional (work) purposes\":15.24,\n      \"Use of generative AI tools: for formal education\":9.17\n    }},\n    {country:\"Montenegro\", flag:\"\ud83c\uddf2\ud83c\uddea\", metrics:{\n      \"Level of internet access - households\":88.07,\n      \"Frequency of internet access: daily (All individuals)\":92.81,\n      \"Frequency of internet access: daily (16\u201329 years old)\":97.08,\n      \"Enterprises having received orders online (\u22651%)\":34.51,\n      \"Share of enterprises' turnover on e-commerce\":NA,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":NA,\n      \"Use of generative AI tools: in the last 3 months\":NA,\n      \"Use of generative AI tools: for private purposes\":NA,\n      \"Use of generative AI tools: for professional (work) purposes\":NA,\n      \"Use of generative AI tools: for formal education\":NA\n    }},\n    {country:\"North Macedonia\", flag:\"\ud83c\uddf2\ud83c\uddf0\", metrics:{\n      \"Level of internet access - households\":91.21,\n      \"Frequency of internet access: daily (All individuals)\":89.24,\n      \"Frequency of internet access: daily (16\u201329 years old)\":99.41,\n      \"Enterprises having received orders online (\u22651%)\":NA,\n      \"Share of enterprises' turnover on e-commerce\":NA,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":NA,\n      \"Use of generative AI tools: in the last 3 months\":22.03,\n      \"Use of generative AI tools: for private purposes\":15.76,\n      \"Use of generative AI tools: for professional (work) purposes\":8.55,\n      \"Use of generative AI tools: for formal education\":4.21\n    }},\n    {country:\"Serbia\", flag:\"\ud83c\uddf7\ud83c\uddf8\", metrics:{\n      \"Level of internet access - households\":90.09,\n      \"Frequency of internet access: daily (All individuals)\":87.14,\n      \"Frequency of internet access: daily (16\u201329 years old)\":99.41,\n      \"Enterprises having received orders online (\u22651%)\":28.58,\n      \"Share of enterprises' turnover on e-commerce\":13.34,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":2963.71,\n      \"Use of generative AI tools: in the last 3 months\":18.64,\n      \"Use of generative AI tools: for private purposes\":12.67,\n      \"Use of generative AI tools: for professional (work) purposes\":5.84,\n      \"Use of generative AI tools: for formal education\":5.33\n    }},\n    {country:\"T\u00fcrkiye\", flag:\"\ud83c\uddf9\ud83c\uddf7\", metrics:{\n      \"Level of internet access - households\":96.18,\n      \"Frequency of internet access: daily (All individuals)\":87.13,\n      \"Frequency of internet access: daily (16\u201329 years old)\":97.04,\n      \"Enterprises having received orders online (\u22651%)\":8.45,\n      \"Share of enterprises' turnover on e-commerce\":NA,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":NA,\n      \"Use of generative AI tools: in the last 3 months\":17.19,\n      \"Use of generative AI tools: for private purposes\":13.71,\n      \"Use of generative AI tools: for professional (work) purposes\":5.81,\n      \"Use of generative AI tools: for formal education\":5.41\n    }},\n    {country:\"Bosnia and Herzegovina\", flag:\"\ud83c\udde7\ud83c\udde6\", metrics:{\n      \"Level of internet access - households\":88.22,\n      \"Frequency of internet access: daily (All individuals)\":88.24,\n      \"Frequency of internet access: daily (16\u201329 years old)\":98.76,\n      \"Enterprises having received orders online (\u22651%)\":23.19,\n      \"Share of enterprises' turnover on e-commerce\":10.75,\n      \"Monetary value of e-commerce sales by NACE (\u20acm)\":1045.11,\n      \"Use of generative AI tools: in the last 3 months\":NA,\n      \"Use of generative AI tools: for private purposes\":NA,\n      \"Use of generative AI tools: for professional (work) purposes\":NA,\n      \"Use of generative AI tools: for formal education\":NA\n    }}\n  ];\n\n  \/\/ Each metric: unit + aggregation mode (\"avg\" for %-style, \"sum\" for monetary totals)\n  var METRICS = [\n    {name:\"Level of internet access - households\",                              unit:\"%\",  mode:\"avg\"},\n    {name:\"Frequency of internet access: daily (All individuals)\",              unit:\"%\",  mode:\"avg\"},\n    {name:\"Frequency of internet access: daily (16\u201329 years old)\",              unit:\"%\",  mode:\"avg\"},\n    {name:\"Enterprises having received orders online (\u22651%)\",                    unit:\"%\",  mode:\"avg\"},\n    {name:\"Share of enterprises' turnover on e-commerce\",                       unit:\"%\",  mode:\"avg\"},\n    {name:\"Monetary value of e-commerce sales by NACE (\u20acm)\",                    unit:\"\u20acm\", mode:\"sum\"},\n    {name:\"Use of generative AI tools: in the last 3 months\",                   unit:\"%\",  mode:\"avg\"},\n    {name:\"Use of generative AI tools: for private purposes\",                   unit:\"%\",  mode:\"avg\"},\n    {name:\"Use of generative AI tools: for professional (work) purposes\",       unit:\"%\",  mode:\"avg\"},\n    {name:\"Use of generative AI tools: for formal education\",                   unit:\"%\",  mode:\"avg\"}\n  ];\n\n  var currentMetric = \"Level of internet access - households\";\n  var selected = new Set(DATA.map(function(d){return d.country;})); \/\/ select all by default\n\n  function metricMeta(name){\n    for(var i=0;i<METRICS.length;i++) if(METRICS[i].name===name) return METRICS[i];\n    return {name:name, unit:\"\", mode:\"sum\"};\n  }\n  function isNum(v){ return typeof v === \"number\" && !isNaN(v); }\n  function fmt(v, meta){\n    if(!isNum(v)) return NA;\n    if(meta.unit === \"%\") return v.toFixed(2) + \"%\";\n    if(meta.unit === \"\u20acm\") return new Intl.NumberFormat(\"en-US\",{maximumFractionDigits:2}).format(v) + \" \u20acm\";\n    return new Intl.NumberFormat(\"en-US\",{maximumFractionDigits:2}).format(v);\n  }\n\n  var chipsEl = root.querySelector('#bd-chips');\n  var metricEl = root.querySelector('#bd-metric');\n\n  METRICS.forEach(function(m){\n    var o = document.createElement(\"option\");\n    o.value = m.name; o.textContent = m.name;\n    if(m.name === currentMetric) o.selected = true;\n    metricEl.appendChild(o);\n  });\n  metricEl.addEventListener(\"change\", function(e){ currentMetric = e.target.value; render(); });\n  root.querySelector('#bd-allBtn').onclick = function(){ selected = new Set(DATA.map(function(d){return d.country;})); render(); };\n  root.querySelector('#bd-noneBtn').onclick = function(){ selected = new Set(); render(); };\n\n  function buildChips(){\n    chipsEl.innerHTML = \"\";\n    DATA.forEach(function(d){\n      var c = document.createElement(\"div\");\n      c.className = \"bd-chip \" + (selected.has(d.country) ? \"bd-active\" : \"bd-inactive\");\n      c.innerHTML = '<span class=\"bd-flag\">'+d.flag+'<\/span><span>'+d.country+'<\/span>';\n      c.onclick = function(){\n        if(selected.has(d.country)) selected.delete(d.country);\n        else selected.add(d.country);\n        render();\n      };\n      chipsEl.appendChild(c);\n    });\n  }\n\n  var chart;\n  function initChart(){\n    if(typeof Chart === 'undefined'){ setTimeout(initChart, 100); return; }\n    var ctx = root.querySelector('#bd-chart').getContext('2d');\n    chart = new Chart(ctx, {\n      type:\"bar\",\n      data:{labels:[], datasets:[{label:currentMetric, data:[], backgroundColor:\"#4f8cff\", borderRadius:8}]},\n      options:{\n        responsive:true, maintainAspectRatio:false,\n        plugins:{legend:{display:false}, tooltip:{callbacks:{label:function(c){ return ' ' + fmt(c.parsed.y, metricMeta(currentMetric)); }}}},\n        scales:{\n          x:{ticks:{color:\"#cbd5f0\", maxRotation:45, minRotation:0}, grid:{color:\"rgba(255,255,255,.05)\"}},\n          y:{beginAtZero:true, ticks:{color:\"#cbd5f0\"}, grid:{color:\"rgba(255,255,255,.05)\"}}\n        }\n      }\n    });\n    render();\n  }\n\n  function render(){\n    buildChips();\n    var meta = metricMeta(currentMetric);\n    var rows = DATA.filter(function(d){ return selected.has(d.country); });\n\n    \/\/ Build table\n    var tbody = root.querySelector('#bd-pivot tbody');\n    tbody.innerHTML = \"\";\n    var validVals = [];\n    var validRows = [];\n    rows.forEach(function(r){\n      var raw = r.metrics[currentMetric];\n      var tr = document.createElement(\"tr\");\n      var valCell;\n      if(isNum(raw)){\n        valCell = '<td class=\"bd-num\">'+fmt(raw, meta)+'<\/td>';\n        validVals.push(raw);\n        validRows.push(r);\n      } else {\n        valCell = '<td class=\"bd-num bd-na\">N\/A<\/td>';\n      }\n      tr.innerHTML = '<td>'+r.flag+' '+r.country+'<\/td>'+valCell;\n      tbody.appendChild(tr);\n    });\n\n    var sum = validVals.reduce(function(a,b){return a+b;},0);\n    var avg = validVals.length ? sum\/validVals.length : null;\n    var aggVal = meta.mode === \"avg\" ? avg : sum;\n    var aggLabel = meta.mode === \"avg\" ? \"Average\" : \"Grand Total\";\n\n    var totalTr = document.createElement(\"tr\");\n    totalTr.className = \"bd-total\";\n    totalTr.innerHTML = '<td>'+aggLabel+'<\/td><td class=\"bd-num\">'+(validVals.length ? fmt(aggVal, meta) : NA)+'<\/td>';\n    tbody.appendChild(totalTr);\n\n    root.querySelector('#bd-tableTitle').textContent = (meta.mode === \"avg\" ? \"Average of Value \u2014 \" : \"Sum of Value \u2014 \") + currentMetric;\n    root.querySelector('#bd-valHeader').textContent = currentMetric;\n\n    \/\/ Leader = max of valid rows\n    var leaderName = \"-\", leaderVal = null;\n    if(validVals.length){\n      var maxIdx = 0;\n      for(var i=1;i<validVals.length;i++) if(validVals[i] > validVals[maxIdx]) maxIdx = i;\n      leaderName = validRows[maxIdx].country;\n      leaderVal = validVals[maxIdx];\n    }\n\n    root.querySelector('#bd-kpis').innerHTML =\n      '<div class=\"bd-kpi\"><div class=\"bd-k-label\">Selected Countries<\/div><div class=\"bd-k-val\">'+rows.length+'<\/div><div class=\"bd-k-sub\">of '+DATA.length+(rows.length - validVals.length > 0 ? ' \u00b7 '+(rows.length - validVals.length)+' N\/A' : '')+'<\/div><\/div>' +\n      '<div class=\"bd-kpi\"><div class=\"bd-k-label\">'+aggLabel+'<\/div><div class=\"bd-k-val\">'+(validVals.length ? fmt(aggVal, meta) : NA)+'<\/div><div class=\"bd-k-sub\">'+currentMetric+'<\/div><\/div>' +\n      '<div class=\"bd-kpi\"><div class=\"bd-k-label\">Leader<\/div><div class=\"bd-k-val\">'+leaderName+'<\/div><div class=\"bd-k-sub\">'+(leaderVal!==null ? fmt(leaderVal, meta) : NA)+'<\/div><\/div>';\n\n    \/\/ Chart \u2014 only valid (numeric) rows\n    if(chart){\n      chart.data.labels = validRows.map(function(r){return r.flag+\" \"+r.country;});\n      chart.data.datasets[0].data = validVals;\n      chart.data.datasets[0].label = currentMetric;\n      chart.update();\n    }\n  }\n\n  initChart();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Balkan E-commerce Dashboard \u0418\u0437\u0431\u0435\u0440\u0438 \u0434\u044a\u0440\u0436\u0430\u0432\u0438 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0448 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438\u0442\u0435. Metric \u0412\u0441\u0438\u0447\u043a\u0438 \u041d\u0438\u0442\u043e \u0435\u0434\u043d\u0430 Sum of Value Country Value Chart Source: Eurostat \/ national statistics \u2014 BES Balkan Comparison<\/p>","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-93883","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Balkan eCommerce Comparison 2025 - BluePoint<\/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:\/\/www.bluepoint.bg\/en\/balkan-ecommerce-comparison-2025\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Balkan eCommerce Comparison 2025 - BluePoint\" \/>\n<meta property=\"og:description\" content=\"Balkan E-commerce Dashboard \u0418\u0437\u0431\u0435\u0440\u0438 \u0434\u044a\u0440\u0436\u0430\u0432\u0438 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0448 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438\u0442\u0435. Metric \u0412\u0441\u0438\u0447\u043a\u0438 \u041d\u0438\u0442\u043e \u0435\u0434\u043d\u0430 Sum of Value Country Value Chart Source: Eurostat \/ national statistics \u2014 BES Balkan Comparison\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bluepoint.bg\/en\/balkan-ecommerce-comparison-2025\/\" \/>\n<meta property=\"og:site_name\" content=\"BluePoint\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-27T06:49:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/balkan-ecommerce-comparison-2025\\\/\",\"url\":\"https:\\\/\\\/www.bluepoint.bg\\\/balkan-ecommerce-comparison-2025\\\/\",\"name\":\"Balkan eCommerce Comparison 2025 - BluePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#website\"},\"datePublished\":\"2026-04-24T13:03:17+00:00\",\"dateModified\":\"2026-04-27T06:49:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/balkan-ecommerce-comparison-2025\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bluepoint.bg\\\/balkan-ecommerce-comparison-2025\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/balkan-ecommerce-comparison-2025\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u041d\u0430\u0447\u0430\u043b\u043e\",\"item\":\"https:\\\/\\\/www.bluepoint.bg\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Balkan eCommerce Comparison 2025\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#website\",\"url\":\"https:\\\/\\\/www.bluepoint.bg\\\/\",\"name\":\"BluePoint\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bluepoint.bg\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#organization\",\"name\":\"BluePoint\",\"url\":\"https:\\\/\\\/www.bluepoint.bg\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.bluepoint.bg\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/BluePoint.svg\",\"contentUrl\":\"https:\\\/\\\/www.bluepoint.bg\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/BluePoint.svg\",\"width\":1,\"height\":1,\"caption\":\"BluePoint\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluepoint.bg\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Balkan eCommerce Comparison 2025 - BluePoint","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:\/\/www.bluepoint.bg\/en\/balkan-ecommerce-comparison-2025\/","og_locale":"en_GB","og_type":"article","og_title":"Balkan eCommerce Comparison 2025 - BluePoint","og_description":"Balkan E-commerce Dashboard \u0418\u0437\u0431\u0435\u0440\u0438 \u0434\u044a\u0440\u0436\u0430\u0432\u0438 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0448 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438\u0442\u0435. Metric \u0412\u0441\u0438\u0447\u043a\u0438 \u041d\u0438\u0442\u043e \u0435\u0434\u043d\u0430 Sum of Value Country Value Chart Source: Eurostat \/ national statistics \u2014 BES Balkan Comparison","og_url":"https:\/\/www.bluepoint.bg\/en\/balkan-ecommerce-comparison-2025\/","og_site_name":"BluePoint","article_modified_time":"2026-04-27T06:49:12+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bluepoint.bg\/balkan-ecommerce-comparison-2025\/","url":"https:\/\/www.bluepoint.bg\/balkan-ecommerce-comparison-2025\/","name":"Balkan eCommerce Comparison 2025 - BluePoint","isPartOf":{"@id":"https:\/\/www.bluepoint.bg\/#website"},"datePublished":"2026-04-24T13:03:17+00:00","dateModified":"2026-04-27T06:49:12+00:00","breadcrumb":{"@id":"https:\/\/www.bluepoint.bg\/balkan-ecommerce-comparison-2025\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bluepoint.bg\/balkan-ecommerce-comparison-2025\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bluepoint.bg\/balkan-ecommerce-comparison-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u041d\u0430\u0447\u0430\u043b\u043e","item":"https:\/\/www.bluepoint.bg\/"},{"@type":"ListItem","position":2,"name":"Balkan eCommerce Comparison 2025"}]},{"@type":"WebSite","@id":"https:\/\/www.bluepoint.bg\/#website","url":"https:\/\/www.bluepoint.bg\/","name":"BluePoint","description":"","publisher":{"@id":"https:\/\/www.bluepoint.bg\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bluepoint.bg\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.bluepoint.bg\/#organization","name":"BluePoint","url":"https:\/\/www.bluepoint.bg\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.bluepoint.bg\/#\/schema\/logo\/image\/","url":"https:\/\/www.bluepoint.bg\/wp-content\/uploads\/2023\/07\/BluePoint.svg","contentUrl":"https:\/\/www.bluepoint.bg\/wp-content\/uploads\/2023\/07\/BluePoint.svg","width":1,"height":1,"caption":"BluePoint"},"image":{"@id":"https:\/\/www.bluepoint.bg\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/pages\/93883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/comments?post=93883"}],"version-history":[{"count":11,"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/pages\/93883\/revisions"}],"predecessor-version":[{"id":93927,"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/pages\/93883\/revisions\/93927"}],"wp:attachment":[{"href":"https:\/\/www.bluepoint.bg\/en\/wp-json\/wp\/v2\/media?parent=93883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}