100% Free · PNG Export · No Signup
Ansoff Matrix Generator
Build a professional Ansoff Growth Matrix with risk ratings per quadrant. Choose from four growth strategies, Market Penetration, Product Development, Market Development and Diversification, then export as a high quality PNG. Pro Mode adds 8 colour themes, a risk overview, a live preview and strategy tips.
100% Private — saved only in your browser, never sent to a server
● Pro Version is Free for now
✓ 8 Colour Themes · Monochrome · Risk Overview ·
Live Preview · Print · .txt Download · Tips unlocked
Live Preview · Print · .txt Download · Tips unlocked
Day
Night
Company or organisation you are analysing
🛒 Retail Brand
💻 Tech Company
🚀 Startup
🧴 FMCG Brand
🏦 Bank / Finance
🎓 University
Low Risk
Market Penetration
0 strategies
Med Risk
Product Dev.
0 strategies
Med Risk
Market Dev.
0 strategies
High Risk
Diversification
0 strategies
Ansoff Growth Matrix — Your Organisation
Products →
🎯
Market Penetration
Existing Product · Existing Market
Risk Level
Very LowLowMediumHighVery High
Grow sales of existing products in existing markets, price cuts, promotions, loyalty programmes, better distribution...
🔬
Product Development
New Product · Existing Market
Risk Level
Very LowLowMediumHighVery High
Develop new products for existing customers, product extensions, new features, innovation, R&D investment...
🌍
Market Development
Existing Product · New Market
Risk Level
Very LowLowMediumHighVery High
Expand existing products into new markets, geographic expansion, new segments, new distribution channels...
💡
Diversification
New Product · New Market
Risk Level
Very LowLowMediumHighVery High
Launch new products into new markets, highest risk, highest potential reward. Related or unrelated diversification...
Existing Markets
New Markets
Auto-saved
📖 Quick Reference
🎯Market Penetration existing product, existing market. Lowest risk.
🔬Product Development new product, existing market.
🌍Market Development existing product, new market.
💡Diversification new product, new market. Highest risk.
🎨 Colour Theme PRO
Default👁️ Live Export Preview PRO
Click to Download
💡 Ansoff Matrix Tips PRO
Scroll for more options
${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({...data,pal:curPal}));if(dot)dot.style.background='#10b981';if(lbl)lbl.textContent='Saved';}catch(e){}},1200);
}function clearAll(){
const total=QUADS.reduce((s,q)=>s+data[q.key].items.length,0);
if(!total&&!data.subject)return;
if(confirm('Clear all Ansoff Matrix data?')){data.subject='';QUADS.forEach(q=>{data[q.key]={risk:q.key==='MP'?2:q.key==='DV'?4:3,items:[]};});document.getElementById('subjectInput').value='';syncSliders();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);
widget().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();updateCanvas();}
try{localStorage.setItem('sst_ansoff_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);}// ─── INIT ─────────────────────────────────────────────────────
function init(){
try{
const saved=localStorage.getItem(SK);
if(saved){const s=JSON.parse(saved);data.subject=s.subject||'';QUADS.forEach(q=>{if(s[q.key]){data[q.key].risk=s[q.key].risk??3;data[q.key].items=s[q.key].items||[];}});document.getElementById('subjectInput').value=data.subject;if(s.pal)curPal=s.pal;}
const m=localStorage.getItem('sst_ansoff_mode');if(m==='pro')setAppMode('pro');
}catch(e){}
syncSliders();renderAll();
}
init();