nodes.viz_decision

nodes.viz_decision

Decision Support Visualizations

Visualizations for investment, operations, and compliance decision support. All charts use data from the decision_metrics layer created in Phase 2.

Functions

Name Description
viz_efficiency_frontier_png Generate scatter plot of scale vs intensity with efficiency contours.
viz_mac_curve_png Generate MAC curve with cumulative reduction potential on X-axis.
viz_opportunity_vs_realized_reduction_png Generate scatter plot of opportunity_score vs realized emissions reduction.
viz_reduction_heatmap_png Generate heatmap showing vent+flare reduction potential as share of operator emissions.
viz_regulatory_threshold_png Generate bar chart of operators near regulatory reporting threshold.
viz_risk_return_scatter_png Generate scatter plot of NPV vs regulatory risk with bubble size by reduction potential.
viz_scenario_rank_shift_png Generate heatmap of rank changes from baseline across scenarios.
viz_top10_investment_opportunities_png Generate bar chart of top investment opportunities ranked by NPV.

viz_efficiency_frontier_png

nodes.viz_decision.viz_efficiency_frontier_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
)

Generate scatter plot of scale vs intensity with efficiency contours.

Args: operator_viz_view: Pre-filtered operator view docs_assets_dir: Output directory for PNG

Returns: Path to saved PNG file

viz_mac_curve_png

nodes.viz_decision.viz_mac_curve_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
    _top_n: int = 20,
)

Generate MAC curve with cumulative reduction potential on X-axis.

Args: operator_viz_view: Pre-filtered operator view docs_assets_dir: Output directory for PNG _top_n: Number of top operators to show (unused, kept for API compatibility)

Returns: Path to saved PNG file

viz_opportunity_vs_realized_reduction_png

nodes.viz_decision.viz_opportunity_vs_realized_reduction_png(
    operator_panel_multiyear: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
)

Generate scatter plot of opportunity_score vs realized emissions reduction.

This visualization compares heuristic opportunity scores against actual year-over-year emission changes, identifying: - Prime targets: High opportunity + actual reduction - “All talk”: High opportunity + emission increases - Hidden gems: Low opportunity + actual reduction

Data is loaded from the multi-year panel and realized reductions are computed directly (no ML training required). This is a purely descriptive analysis of 2022→2023 changes.

Args: operator_panel_multiyear: Multi-year operator panel (operator_baid, year) docs_assets_dir: Output directory for PNG

Returns: Path to saved PNG file

viz_reduction_heatmap_png

nodes.viz_decision.viz_reduction_heatmap_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
    top_n: int = 20,
)

Generate heatmap showing vent+flare reduction potential as share of operator emissions.

Operators are sorted by absolute reduction potential (kt) rather than percentage, and only operators with E_total_kt > 10 are included to focus on material opportunities.

Args: operator_viz_view: Pre-filtered operator view docs_assets_dir: Output directory for PNG top_n: Number of top operators to show

Returns: Path to saved PNG file

viz_regulatory_threshold_png

nodes.viz_decision.viz_regulatory_threshold_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
    threshold_kt: float = 100.0,
)

Generate bar chart of operators near regulatory reporting threshold.

Args: operator_viz_view: Pre-filtered operator view docs_assets_dir: Output directory for PNG threshold_kt: Regulatory threshold (kt CO2e)

Returns: Path to saved PNG file

viz_risk_return_scatter_png

nodes.viz_decision.viz_risk_return_scatter_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
)

Generate scatter plot of NPV vs regulatory risk with bubble size by reduction potential.

Args: operator_viz_view: Pre-filtered operator view docs_assets_dir: Output directory for PNG

Returns: Path to saved PNG file

viz_scenario_rank_shift_png

nodes.viz_decision.viz_scenario_rank_shift_png(
    operator_viz_view: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
    top_n: int = 20,
)

Generate heatmap of rank changes from baseline across scenarios.

Args: operator_viz_view: Pre-filtered operator view with scenario ranks docs_assets_dir: Output directory for PNG top_n: Number of top operators to show

Returns: Path to generated PNG file

viz_top10_investment_opportunities_png

nodes.viz_decision.viz_top10_investment_opportunities_png(
    investment_opportunities: pd.DataFrame,
    docs_assets_dir: str = 'docs/assets/figures',
    top_n: int = 10,
)

Generate bar chart of top investment opportunities ranked by NPV.

Args: investment_opportunities: Pre-filtered opportunities DataFrame docs_assets_dir: Output directory for PNG top_n: Number of top opportunities to show

Returns: Path to saved PNG file