INFRAIMPACT — Methodology Note (v1.0)

INFRAIMPACT — Methodology Note (v1.0)

Authoritative reference for the scoring engine implemented in assets/js/scoring.js and assets/js/aggregation.js.

1. Conceptual Framework

INFRAIMPACT decomposes the performance of a sanitation asset into two ortho­gonal blocks:

  • Blok CAUSE / Origin Stage — prasyarat sebelum/saat aset dibangun.
    • Institusi (C-I*): status hukum UPTD/BUMD, struktur organisasi, SDM, koordinasi lintas sektor.
    • Regulasi (C-R*): Perda ALD, SOP LLTT, mandatory connection, konsistensi RISPALD–RPJMD.
    • Finansial (C-F*): earmark APBD O&M, rasio terhadap kebutuhan normatif, cost-recovery, subsidi silang.
  • Blok IMPACT / Runtime Stage — kinerja pasca-konstruksi.
    • Layanan/Proses (I-S*): idle capacity ratio, LLTT coverage, off-taker activity, service continuity, response time.
    • Fisik/Teknis (I-T*): structural integrity, MTBF, effluent compliance, sludge compliance, energy efficiency.

Output utama bukan satu skor tunggal, melainkan pasangan (S_CAUSE, S_IMPACT) yang ditempatkan di matriks 2×2:

 IMPACT < 0.5IMPACT ≥ 0.5
CAUSE ≥ 0.5Operational DecayResilient Asset
CAUSE < 0.5Investment-in-FailureCompensated Failure

2. Normalization

For each indicator $i$ with raw value $v$:

\[x_i = \begin{cases} (v - v_{\min}) / (v_{\max} - v_{\min}) & \text{min-max} \\ \mathrm{map}[v] & \text{categorical ordinal} \\ [v=\text{true}] & \text{boolean} \end{cases}\]

Then clip $x_i$ to $[0, 1]$, and if indicator orientation is negative (e.g., idle capacity ratio), invert: $x_i \leftarrow 1 - x_i$.

3. Aggregation

  • Dimension score (weighted arithmetic mean within available indicators):
\[S_d = \frac{\sum_{i \in d} w_i \cdot x_i}{\sum_{i \in d} w_i}\]
  • Block score (weighted geometric mean — non-compensatory partial):
\[S_b = \exp\!\left(\frac{\sum_{d \in b} w_d \cdot \ln S_d}{\sum_{d \in b} w_d}\right)\]

The geometric mean penalises any dimension that collapses to zero, preventing institusi-strong/finansial-zero assets from looking healthy on arithmetic mean.

4. Bobot (Best-Worst Method)

Weights derive from a three-tier BWM (Rezaei, 2015, 2016):

  1. Block weights (CAUSE vs IMPACT) — MVP default 0.5 / 0.5.
  2. Dimension weights within block.
  3. Indicator weights within dimension.

The MVP 1 weights in weights.json are placeholders (panel PANEL-SIM-A). The consistency ratio (CR) of the placeholder panel is 0.18, marginally acceptable (< 0.25). For publication, the panel must be replaced with a documented expert elicitation.

5. Quadrant Classification

function classifyQuadrant(sCause, sImpact, threshold = 0.5) {
  if (sCause >= threshold && sImpact >= threshold) return 'resilient';
  if (sCause >= threshold && sImpact <  threshold) return 'operational_decay';
  if (sCause <  threshold && sImpact >= threshold) return 'compensated_failure';
  return 'investment_in_failure';
}

6. Risk Zone (with absolute override)

The composite zone uses the average of the block scores:

  • Composite < 0.33 → red
  • 0.33 ≤ Composite < 0.66 → yellow
  • Composite ≥ 0.66 → green

Absolute compliance override: if effluent_compliance_rate < 0.50 (proxy for pelanggaran baku mutu), the zone is forced to red regardless of composite. This avoids the situation where institusi-strong assets mask serious environmental non-compliance.

7. Trajectory Classification

Given a series of yearly observations for one asset, the trajectory class is:

  • recovered: zone[start] = red ∧ zone[end] ≠ red.
  • relapse: zone[start] ≠ red ∧ zone[end] = red.
  • volatile: stddev of composite > 0.15 across the series.
  • improving: mean OLS slope (cause, impact) > +0.015 / year.
  • declining: mean OLS slope < −0.015 / year.
  • stagnant: otherwise.

8. Treatment of Missing Data and Left-Censoring

  • An asset with construction_year > selected_year is rendered as not_yet_constructed (hatch pattern) and excluded from idle/failed metrics for that year.
  • An observation with data_quality_flag = "missing" is excluded from all aggregations; it is not imputed as zero.
  • If a series has fewer than 2 observations, trajectory class defaults to stagnant.

9. Aggregation Across Assets (Spatial)

Province/district aggregation uses median + IQR for $(S_{CAUSE}, S_{IMPACT})$ to be robust against outlier assets. Dominant quadrant is computed by majority count. Tooltips display dispersion to mitigate ecological fallacy (Robinson, 1950).

10. Sensitivity Considerations (advisory for MVP 2)

  • BWM weights are uncertain. Future versions should support perturbation ±20% with on-the-fly reclassification.
  • The threshold 0.5 is conventional; consider quantile-based thresholds when working with the empirical distribution rather than the normative.

11. Versioning

Every observation carries:

  • scoring_method_version (e.g., v1.0)
  • data_quality_flag (observed | estimated | imputed | missing)
  • data_source
  • last_updated

When weights.json or the aggregation rule changes, bump the version and add an entry to scoring_versions.json. Do not silently overwrite scores from older versions.

12. References

  • Rezaei, J. (2015). Best-worst multi-criteria decision-making method. Omega, 53, 49–57.
  • Rezaei, J. (2016). Best-worst multi-criteria decision-making method: Some properties and a linear model. Omega, 64, 126–130.
  • Robinson, W. S. (1950). Ecological correlations and the behavior of individuals. American Sociological Review, 15(3), 351–357.
  • Hart, O., Shleifer, A., & Vishny, R. W. (1997). The proper scope of government: Theory and an application to prisons. Quarterly Journal of Economics, 112(4), 1127–1161.
  • Williamson, O. E. (2000). The new institutional economics. Journal of Economic Literature, 38(3), 595–613.