100% Free · Radar PNG Export · No Signup
Porter's Five Forces Generator
Rate the intensity of Rivalry, New Entry, Buyer Power, Supplier Power and Substitutes, and export a radar diagram showing each force's strength as a high quality PNG. Pro Mode adds an industry attractiveness meter, a live radar preview and strategy tips.
100% Private — saved only in your browser, never sent to a server
● Pro Version is Free for now
✓ Industry Attractiveness Meter · Radar Diagram Preview ·
Print / PDF · Strategy Tips unlocked
Print / PDF · Strategy Tips unlocked
Day
Night
Industry or company you are analysing
🛒 Supermarket
💻 Tech Industry
✈️ Airline
💊 Pharma
📺 Streaming
⚡ EV Sector
📊 Overall Industry Attractiveness PRO
50%
Moderate
Auto-saved
📖 Quick Reference
⚔️Rivalry how fiercely existing competitors fight.
🚪New Entry how easily new competitors could join.
🛒Buyer Power how much leverage customers hold.
🏭Supplier Power how much leverage suppliers hold.
🔄Substitutes how easily buyers could switch away.
👁️ Radar Diagram Preview PRO
Click to Download
💡 Porter's Five Forces Tips PRO
Scroll for more options
${t}
`).join('');
}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));if(dot)dot.style.background='#10b981';if(lbl)lbl.textContent='Saved';}catch(e){}},1500);
}function clearAll(){
const total=FORCES.reduce((s,f)=>s+data[f.key].items.length,0);
if(!total&&!data.subject)return;
if(confirm("Clear all Five Forces data?")){data.subject='';FORCES.forEach(f=>{data[f.key]={intensity:3,items:[]};});document.getElementById('subjectInput').value='';renderAll();toast('Cleared!');}
}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';
if(isPro){updateOverall();updateCanvas();}
try{localStorage.setItem('sst_p5f_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();