Infrastructure Investment Risk Assessment
Assess potential risks for your infrastructure investment projects.
Project Information
Risk Categories & Assessment
1. Financial Risks
Cost Overruns (Construction/Development):
Revenue Shortfall (Lower than expected demand/usage):
Interest Rate Fluctuations (Increased borrowing costs):
2. Political & Regulatory Risks
Policy/Government Changes (Unfavorable shifts):
Regulatory Delays/Approvals (Permits, licensing):
Expropriation/Nationalization Risk:
3. Construction & Operational Risks
Construction Delays (Unexpected site conditions, labor issues):
Technology/Performance Failure (Asset not performing as expected):
Operational Cost Overruns (Higher than budgeted O&M):
Supply Chain Disruptions:
4. Environmental & Social (E&S) Risks
Environmental Contamination/Pollution:
Community Opposition/Social Unrest:
Land Acquisition/Resettlement Issues:
Climate Change Vulnerability (Physical/Transition risks):
Risk Assessment Summary
High-Rated Risks (Score ≥ 12):
- No high-rated risks identified.
*Risk scores are calculated as Likelihood x Impact (1-5 scale each). Higher scores indicate greater risk.
Date: ${new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}
Project Information
| Field | Value |
|---|---|
| Project Name: | ${projectName} |
| Project Description: | ${projectDescription} |
Overall Risk Summary
| Metric | Value |
|---|---|
| Overall Project Risk Score: | ${overallScore} |
| Overall Project Risk Level: | ${overallLevel} |
Detailed Risk Assessment
| Risk Item | Likelihood | Impact | Score |
|---|
High-Rated Risks Identified
-
${highRisksHtml}
*Risk scores are calculated as Likelihood x Impact (1-5 scale each). Higher scores indicate greater risk.
This assessment provides a qualitative overview and should be supplemented with detailed due diligence.
`; tempPdfContent.innerHTML = pdfHtml; document.body.appendChild(tempPdfContent); // Append to body for rendering context html2canvas(tempPdfContent, { scale: 2, useCORS: true, logging: false }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF('p', 'mm', 'a4'); // 'p' for portrait, 'mm' for millimeters, 'a4' size const imgWidth = 210; // A4 width in mm const pageHeight = 297; // A4 height in mm const imgHeight = canvas.height * imgWidth / canvas.width; let heightLeft = imgHeight; let position = 0; pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); heightLeft -= pageHeight; while (heightLeft >= 0) { position = heightLeft - imgHeight; pdf.addPage(); pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); heightLeft -= pageHeight; } pdf.save("Infrastructure_Risk_Assessment_Report.pdf"); document.body.removeChild(tempPdfContent); // Clean up the temporary div }).catch(error => { console.error("Error generating PDF:", error); }); }; // Initial population of range labels on load // This is handled by the loop at the beginning of the DOMContentLoaded listener. // For example: // const costOverrunsLikelihood = document.getElementById('costOverrunsLikelihood'); // const likelihoodLabel1 = document.getElementById('likelihoodLabel1'); // if (costOverrunsLikelihood && likelihoodLabel1) { // likelihoodLabel1.textContent = likelihoodMap[costOverrunsLikelihood.value]; // } // The above structure for each element is now covered by the `risks.forEach` loop after DOM elements are fetched. });