Create a professional PESTLE diagram in minutes. Add Political, Economic, Social, Technological, Legal and Environmental factors — then export as PNG or copy as formatted text.
Your PESTLE analysis is saved only in your browser — nothing is ever sent to any server
What are you analysing?
🏢 Business🛍️ Retail💻 Tech Startup🏥 Healthcare🎓 Education⚡ Energy
🇺🇸 USA🇬🇧 UK🇩🇪 Germany🇮🇳 India🇨🇳 China
Country starters are curated example factors, not a live or real-time data feed — always verify and update figures for your actual analysis.
0
Political
0
Economic
0
Social
0
Tech
0
Legal
0
Environ.
🎨 Theme:Default
Auto-saved
👁️ Live Export Preview — Click to Download
💡 PESTLE Tips
🔗 SWOT & PESTLE Integration
Maps your Technology and Environmental factors toward likely SWOT Opportunities, and your Legal and Economic factors toward likely Threats — a starting point based on category, not a judgment of your specific situation. Review and move items as needed.
Likely Opportunities
Likely Threats
📝 Strategic Summary Builder
Stitches the factors you've already entered into a draft summary paragraph using your own words — a template-based writing aid, not AI-generated analysis. Treat it as a first draft to edit, not a finished conclusion.
📚 Academic Citation Formatter
Formats a source you provide into a reference entry — it doesn't look up or verify sources automatically, so double-check details against your citation style guide.
APAHarvard
`);w.document.close();w.focus();setTimeout(()=>w.print(),500);}// ─── COUNTRY STARTERS (static, honest — NOT live/real-time data) ──
const COUNTRIES={
usa:{subject:'United States Market',P:['Federal vs state regulatory divergence','Trade policy and tariff shifts','Election-cycle policy uncertainty'],E:['Federal Reserve interest rate decisions','Consumer spending strength','Dollar exchange rate fluctuations'],S:['Diverse, large consumer market','Growing remote/hybrid work culture','Widening income inequality'],T:['Major tech hub ecosystem','Strong venture capital availability','Rapid AI adoption in enterprise'],L:['State-by-state data privacy laws','Federal antitrust scrutiny of big tech','Complex multi-state compliance'],EN:['State-level climate regulation variance','Federal clean energy incentives','ESG investor pressure']},
uk:{subject:'United Kingdom Market',P:['Post-Brexit trade relationships','Devolved nation policy differences','Regulatory divergence from EU'],E:['Bank of England interest rate policy','Cost of living pressures','Post-Brexit trade friction costs'],S:['Ageing population demographics','Regional North-South economic divide','Rising ethical consumer expectations'],T:['Strong fintech sector','Growing AI regulation debate','Digital skills gap in workforce'],L:['UK GDPR (post-Brexit data law)','Employment rights reform','Consumer protection updates'],EN:['Net zero 2050 legal target','Extended producer responsibility rules','Green finance disclosure requirements']},
germany:{subject:'Germany Market',P:['EU regulatory alignment','Coalition government policy stability','Strong export-oriented trade policy'],E:['Manufacturing sector strength','Energy cost pressures post-2022','Export dependency on China/US'],S:['Strong vocational training culture','Ageing workforce, skilled labour shortage','High environmental awareness'],T:['Industry 4.0 manufacturing leadership','Slower digital public-sector adoption','Strong automotive R&D base'],L:['Strict EU data protection enforcement','Strong worker co-determination laws','Rigorous product safety standards'],EN:['Energiewende renewable transition','Strict emissions targets','Circular economy legislation']},
india:{subject:'India Market',P:['Central vs state policy complexity','Ongoing economic liberalization','Regional political variation'],E:['High GDP growth trajectory','Large informal economy','Rupee currency volatility'],S:['Large, young population','Rapid urbanization','Widening urban-rural digital divide'],T:['Fast-growing digital payments adoption','Large IT services sector','Expanding startup ecosystem'],L:['Complex multi-state regulatory approval','Evolving data protection law (DPDP Act)','Labour law reform in progress'],EN:['Air quality and pollution regulation','Renewable energy expansion targets','Water scarcity in key regions']},
china:{subject:'China Market',P:['Centralized policy direction','US-China trade tension','Strict regulatory approval processes'],E:['Slowing but still substantial GDP growth','Property sector volatility','Large domestic consumer market'],S:['Large, increasingly affluent middle class','Aging population, one-child policy legacy','High mobile-first consumer behaviour'],T:['World-leading in specific tech sectors (EVs, payments)','Strict domestic tech regulation','Limited access to some global platforms'],L:['State-directed regulatory environment','Data localization requirements','IP enforcement improving but inconsistent'],EN:['Major renewable energy investment','Continuing coal dependency','Strict environmental compliance drives']},
};
function loadCountry(k){
const t=COUNTRIES[k];if(!t)return;
const total=FACTORS.reduce((s,f)=>s+d[f.key].length,0);
if(total&&!confirm('Load country starter? This replaces your current analysis.'))return;
d.subject=t.subject;FACTORS.forEach(f=>{d[f.key]=[...(t[f.key]||[])];});
document.getElementById('subjectInput').value=d.subject;
renderAll();toast('Starter loaded — these are example points, not live data. Verify and customise!');
}// ─── MARKDOWN EXPORT ──────────────────────────────────────────
function getMarkdown(){
const title=d.subject?`# PESTLE Analysis — ${d.subject}`:'# PESTLE Analysis';
const sec=(key,lbl)=>{const items=d[key].filter(Boolean);return `## ${lbl}\n${items.length?items.map(x=>`- ${x}`).join('\n'):'*(none added)*'}\n`;};
return [title,'',sec('P','Political'),sec('E','Economic'),sec('S','Social'),sec('T','Technology'),sec('L','Legal'),sec('EN','Environmental'),'---','*Generated by SmallStudyTools.com*'].join('\n');
}
function dlMarkdown(){
const blob=new Blob([getMarkdown()],{type:'text/markdown'});
const a=document.createElement('a');a.download=`pestle-${(d.subject||'analysis').replace(/\s+/g,'-').toLowerCase()}.md`;a.href=URL.createObjectURL(blob);a.click();
toast('Markdown downloaded!');
}// ─── PRO: SWOT INTEGRATION (category-level heuristic, not per-item judgment) ──
function mapToSwot(){
const opportunities=[...d.T,...d.EN].filter(Boolean);
const threats=[...d.L,...d.E].filter(Boolean);
document.getElementById('swotMiniGrid').style.display='grid';
document.getElementById('swotOppList').innerHTML=opportunities.length?opportunities.map(x=>`
';
toast('SWOT starting point generated!');
}// ─── PRO: STRATEGIC SUMMARY BUILDER (template-based, not AI) ──────
function buildSynthesis(){
const name=d.subject||'the organisation';
const openers={P:'Politically, the key factors affecting',E:'From an economic standpoint, the primary considerations for',S:'Socially, the trends most relevant to',T:'On the technology front, the notable developments impacting',L:'Legally, the compliance factors surrounding',EN:'Environmentally, the key pressures on'};
const paras=[];
FACTORS.forEach(f=>{
const items=d[f.key].filter(Boolean);
if(!items.length)return;
const joined=items.length>1?items.slice(0,-1).join(', ')+' and '+items[items.length-1]:items[0];
paras.push(`${openers[f.key]} ${name} include ${joined}.`);
});
const out=document.getElementById('synthOutput');
if(!paras.length){out.style.display='block';out.innerHTML='Add some factors first, then build a summary.';return;}
out.style.display='block';
out.textContent=paras.join(' ');
toast('Summary built from your entries!');
}// ─── PRO: CITATION FORMATTER (formats what you type — no auto-fetch) ──
let citations=[];
function addCitation(style){
const author=document.getElementById('citeAuthor').value.trim();
const year=document.getElementById('citeYear').value.trim();
const title=document.getElementById('citeTitle').value.trim();
const source=document.getElementById('citeSource').value.trim();
if(!author||!year||!title){toast('Fill in author, year and title first');return;}
let formatted;
if(style==='apa')formatted=`${author} (${year}). ${title}. ${source}.`;
else formatted=`${author}, ${year}. ${title}. ${source}.`;
citations.push(formatted);
document.getElementById('citeList').innerHTML=citations.map(c=>`
${esc(c)}
`).join('');
toast('Citation added!');
}// ─── TIPS ─────────────────────────────────────────────────────
function updateTips(){
const el=document.getElementById('tipsList');if(!el)return;
const total=FACTORS.reduce((s,f)=>s+d[f.key].filter(Boolean).length,0);
const empty=FACTORS.filter(f=>!d[f.key].filter(Boolean).length);
const tips=[];
if(total===0)tips.push('Start by adding 3–5 factors to each section for a meaningful analysis.');
if(empty.length>0&&total>0)tips.push(`No items yet in: ${empty.map(f=>f.label).join(', ')}. A complete PESTLE covers all six factors.`);
if(d.T.filter(Boolean).length>0)tips.push('Technology factors often create Opportunities in a SWOT. Use your PESTLE findings to feed your SWOT analysis.');
if(d.EN.filter(Boolean).length>0)tips.push('Environmental factors are increasingly driving Legal changes — check for overlap between your EN and L sections.');
if(total>=12)tips.push('Good comprehensive analysis. Prioritise the 2–3 most impactful factors in each section for strategic conclusions.');
if(tips.length===0)tips.push('Solid PESTLE. Now use these findings to populate the Opportunities and Threats sections of a SWOT analysis.');
el.innerHTML=tips.map(tip=>`
${tip}
`).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({...d,pal:curPal}));if(dot)dot.style.background='#10b981';if(lbl)lbl.textContent='Saved';}catch(e){}},1200);
}function clearAll(){
const total=FACTORS.reduce((s,f)=>s+d[f.key].length,0);
if(!total&&!d.subject)return;
if(confirm('Clear all PESTLE data?')){d.subject='';FACTORS.forEach(f=>{d[f.key]=[];});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();updateCanvas();}
try{localStorage.setItem('sst_pestle_mode',m);}catch(e){}
}// ─── HELPERS ──────────────────────────────────────────────────
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(){
renderGrid();
try{
const saved=localStorage.getItem(SK);
if(saved){const s=JSON.parse(saved);d.subject=s.subject||'';FACTORS.forEach(f=>{d[f.key]=s[f.key]||[];});document.getElementById('subjectInput').value=d.subject;if(s.pal)curPal=s.pal;}
const m=localStorage.getItem('sst_pestle_mode');if(m==='pro')setAppMode('pro');
}catch(e){}
renderAll();
}
init();