BCG Matrix · Bubble Plot · PNG Export · 100% Free
Free BCG Matrix Generator — Portfolio Analysis Tool
Add your products or business units, set market share and growth rate, and watch them plot as bubbles on the BCG Matrix. Stars, Cash Cows, Question Marks and Dogs — identified instantly.
● Pro Version is Free for now
✓ 6 colour themes · Full HD export · Quadrant legend · Print / PDF · Strategy tips unlocked
Your analysis is saved only in your browser — nothing is ever sent to any server
Company or portfolio you are analysing
🍎 Tech Giant
🧴 FMCG Portfolio
📺 Media Company
🛒 Retail Group
💊 Pharma Portfolio
🚗 Auto Manufacturer
🎨 Theme:
Default
Products / Business Units (0)
Click "Add Product" or load a template above to get started.
BCG Matrix — Live Preview
Updates as you type
⭐ Star — High share, high growth
🐄 Cash Cow — High share, low growth
❓ Question Mark — Low share, high growth
🐕 Dog — Low share, low growth
Auto-saved
👁️ Full Export Preview — Click to Download
💡 BCG Matrix Strategy Tips
${t}
`).join('');
}// ─── SAVE ─────────────────────────────────────────────────────
function schedSave(){
const dot=document.getElementById('saveDot'),lbl=document.getElementById('saveLbl');
if(dot)dot.style.background='#f59e0b';if(lbl)lbl.textContent='Saving…';
clearTimeout(saveTimer);
saveTimer=setTimeout(()=>{try{localStorage.setItem(SK,JSON.stringify({subject,products,pal:curPal}));if(dot)dot.style.background='#10b981';if(lbl)lbl.textContent='Saved';}catch(e){}},1200);
}function clearAll(){
if(!products.length&&!subject)return;
if(confirm('Clear all BCG Matrix data?')){products=[];subject='';colorIdx=0;document.getElementById('subjectInput').value='';renderAll();toast('Cleared!');}
}// ─── APP MODE ─────────────────────────────────────────────────
function setAppMode(m){
isPro=m==='pro';
document.getElementById('btnSimple').classList.toggle('active',!isPro);
document.getElementById('btnPro').classList.toggle('active',isPro);
document.body.classList.toggle('pro-mode',isPro);
const pb=document.getElementById('proBar');if(pb)pb.style.display=isPro?'flex':'none';
const pr=document.getElementById('paletteRow');if(pr)pr.style.display=isPro?'flex':'none';
if(isPro){buildPaletteBar();drawFullCanvas();}
try{localStorage.setItem('sst_bcg_mode',m);}catch(e){}
}function esc(s){return(s||'').replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"');}
function toast(msg){const t=document.getElementById('toast');t.textContent=msg;t.classList.add('show');setTimeout(()=>t.classList.remove('show'),2400);}window.addEventListener('resize',()=>drawPreview());// ─── INIT ─────────────────────────────────────────────────────
function init(){
try{
const saved=localStorage.getItem(SK);
if(saved){const d=JSON.parse(saved);subject=d.subject||'';products=d.products||[];colorIdx=products.length;document.getElementById('subjectInput').value=subject;if(d.pal)curPal=d.pal;}
const m=localStorage.getItem('sst_bcg_mode');if(m==='pro')setAppMode('pro');
}catch(e){}
renderAll();
}
init();