Merge pull request #150 from Hestia-Homes/new-reporting

Added new metrics to scenario ui
This commit is contained in:
KhalimCK 2025-12-11 21:49:55 +08:00 committed by GitHub
commit fde932115b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 43 additions and 5 deletions

View file

@ -80,7 +80,6 @@ export function ReportingClientArea({
// ----------------------------------------
// Build overlay for Dashboard Summary cards
// ----------------------------------------
console.log("scenarioData", scenarioData);
const scenarioOverlay = scenarioData
? {
@ -107,16 +106,17 @@ export function ReportingClientArea({
: null;
// ----------------------------------------
// Financial drawer values (from API)
// Scenario specific metrics that appear in the drawer (from API) and cannot be overlayed on baseline
// ----------------------------------------
const scenarioFinancial = scenarioData
const scenarioSpecific = scenarioData
? {
totalCost: scenarioData.total_cost,
contingency: scenarioData.contingency,
funding: scenarioData.total_funding,
costPerSap:
scenarioData.total_cost > 0
? scenarioData.total_cost / scenarioData.avg_sap
? scenarioData.gross_per_unit /
(scenarioData.avg_sap - (baseline.averages.avg_sap ?? 0))
: 0,
costPerCo2:
scenarioData.total_cost > 0
@ -125,6 +125,16 @@ export function ReportingClientArea({
netCost: scenarioData.net_cost,
grossPerUnit: scenarioData.gross_per_unit,
nUnits: scenarioData.n_units_upgraded,
totalCarbonSaved:
(baseline.totals.total_carbon ?? 0) - scenarioData.total_carbon,
totalBillsSaved:
(baseline.totals.total_bills ?? 0) - scenarioData.total_bills,
averageCaribonSaved:
((baseline.totals.total_carbon ?? 0) - scenarioData.total_carbon) /
scenarioData.n_units_upgraded,
averageBillsSaved:
((baseline.totals.total_bills ?? 0) - scenarioData.total_bills) /
scenarioData.n_units_upgraded,
}
: null;
@ -156,7 +166,7 @@ export function ReportingClientArea({
subtitle="High-level insights on performance, energy, and EPC quality."
/>
<ScenarioFinancialDrawer open={drawerOpen} metrics={scenarioFinancial} />
<ScenarioFinancialDrawer open={drawerOpen} metrics={scenarioSpecific} />
<div className="grid grid-cols-1 lg:grid-cols-[60%_40%] gap-6 p-2">
<DashboardSummaryCards

View file

@ -95,6 +95,34 @@ export function ScenarioFinancialDrawer({
color="text-brandblue"
bg="bg-brandblue/20"
/>
<Metric
label="Total Carbon Saved (tonnes) per year"
value={formatNumber(metrics.totalCarbonSaved)}
icon={Users}
color="text-brandblue"
bg="bg-brandblue/20"
/>
<Metric
label="Total Bills Saved (£) per year"
value={`£${formatNumber(metrics.totalBillsSaved)}`}
icon={Users}
color="text-brandblue"
bg="bg-brandblue/20"
/>
<Metric
label="Average Carbon Saved (tonnes) per unit per year"
value={formatNumber(metrics.averageCaribonSaved)}
icon={Users}
color="text-brandblue"
bg="bg-brandblue/20"
/>
<Metric
label="Average Bills Saved (£) per unit per year"
value={`£${formatNumber(metrics.averageBillsSaved)}`}
icon={Users}
color="text-brandblue"
bg="bg-brandblue/20"
/>
</div>
</div>
</motion.div>