Policy Impact Analysis Generator

Policy Impact Analysis Generator

Impact Dashboard

Your generated analysis will appear here. Start by entering policy details in the 'Generate New Analysis' tab.

Generate New Analysis

Define the policy you want to analyze. Analysis settings are applied from the 'Data Configuration' tab.

Data Configuration

Customize the framework for the analysis. Your selections here will shape the generated report.

Stakeholders to Analyze
Impact Dimensions

Scope: ${settings.scope} | Timeframe: ${settings.timeframe}

`; settings.stakeholders.forEach(stakeholder => { html += `

Impact on ${stakeholder}

`; settings.dimensions.forEach(dimension => { const snippets = (impactSnippets[policyArea] && impactSnippets[policyArea][stakeholder]) || (impactSnippets.Economic[stakeholder]) || // Fallback to economic { pros: ["General positive outcomes expected."], cons: ["General negative risks to consider."] }; html += `

${dimension} Impact

`; html += `
    `; if (snippets.pros) snippets.pros.forEach(pro => html += `
  • ${pro}
  • `); if (snippets.cons) snippets.cons.forEach(con => html += `
  • ${con}
  • `); html += `
`; }); html += `
`; }); dashboardResults.innerHTML = html; dashboardPlaceholder.style.display = 'none'; dashboardResults.style.display = 'block'; pdfDownloadBtn.style.display = 'block'; }, saveSettings(e) { e.preventDefault(); const originalText = saveSettingsBtn.textContent; saveSettingsBtn.textContent = 'Configuration Saved!'; saveSettingsBtn.disabled = true; setTimeout(() => { saveSettingsBtn.textContent = originalText; saveSettingsBtn.disabled = false; }, 2000); }, navigateTabs(direction) { let newIndex = currentTabIndex + direction; if (newIndex < 0) newIndex = 0; if (newIndex >= tabs.length) newIndex = tabs.length - 1; if (newIndex !== currentTabIndex) tabs[newIndex].click(); }, downloadPDF() { const printContainer = document.createElement('div'); printContainer.className = 'pia-print-container'; const toolContainer = document.getElementById('pia-container'); if (!toolContainer) return; document.body.appendChild(printContainer); printContainer.appendChild(toolContainer); document.body.classList.add('pia-printing'); window.print(); window.onafterprint = () => { document.body.classList.remove('pia-printing'); const scriptTag = document.currentScript || document.querySelector('script[src=""]'); if (scriptTag && scriptTag.parentNode) { scriptTag.parentNode.insertBefore(toolContainer, scriptTag); } else { document.body.appendChild(toolContainer); } if (printContainer.parentNode) printContainer.parentNode.removeChild(printContainer); window.onafterprint = null; }; setTimeout(() => { if (document.body.classList.contains('pia-printing')) window.onafterprint(); }, 1000); } }; window.updatePiaNavButtons = () => { if (!prevBtn || !nextBtn || tabs.length === 0) return; tabs.forEach((tab, index) => { if (tab.classList.contains('active')) currentTabIndex = index; }); prevBtn.disabled = (currentTabIndex === 0); nextBtn.disabled = (currentTabIndex === tabs.length - 1); }; window.piaApp.init(); });
Scroll to Top