Plating Power Optimizer โ€” V3

Built around the verified LES 2026 retail tariff, the 65% summer demand ratchet, and power-factor penalties.

๐Ÿ“– The Story ๐Ÿ“š Learn the math

$โ€”
Combined annual savings vs current state i
Tier 1 ยท Software$โ€”
Tier 2 ยท + Aux loads$โ€”
Tier 3 ยท + Hardware$โ€”

Rate class comparison i

Annual total bill (Tier 3, optimized) for each scenario ร— rate class. Click any cell to switch the active context. โš  flags scenarios that don't meet a rate class's eligibility โ€” shown for comparison only.

Monthly bill โ€” current state vs Tier 3 i

12 months of bills. Note how summer peaks anchor the ratchet floor for the next 11 months โ€” that's why January's billing demand may still be high.

Power factor & excess kVAR i

LLP customers pay $2.60/kVAR above the 0.93 PF threshold. GSD customers don't see this charge.

โ€”
Current PF (SCR baseline)
0.93
LES threshold
โ€”
Excess kVAR / month
$โ€”/mo
Penalty avoided (capacitor bank)

Rectifier upgrade โ€” SCR vs IGBT (per plating line) i

Modern high-frequency IGBT switch-mode rectifiers vs legacy SCR thyristor units. Numbers are per single-line retrofit.

SCR (baseline)

Efficiencyโ€”
AC kW drawnโ€”
Power factorโ€”

IGBT (upgrade)

Efficiencyโ€”
AC kW drawnโ€”
Power factorโ€”

Savings (per line, per year)

Energy savedโ€”
Demand reductionโ€”
PF penalty eliminatedโ€”
Total annual savingsโ€”
Paybackโ€”

LES SEP grants & incentives (2026) i

LES Sustainable Energy Program publishes per-equipment incentives. They reduce net capex on Tiers 2 and 3.

EquipmentIncentiveEstimated offset for this scenario

Sensitivity analysis i

Every key assumption exposed as a slider. The hero number updates instantly. Drag any slider to its worst case to defend the model floor.

Tornado chart โ€” which assumption matters most

Shift breakeven calculator

Would extending the day shift to capture cheap overnight hours pay for itself?

$โ€”
Net annual benefit of extending shift i

How V3 works

Read the full plain-English walkthrough โ†’ explainer.html

Tl;dr: V2's "AI energy arbitrage" premise was wrong โ€” real industrial customers pay flat retail rates. V3 rebuilds the savings story around the demand ratchet, power-factor penalties, and rectifier modernization. All numbers traceable in the Receipts section below.

What's next (V4)

DM me on LinkedIn for V4 updates.

Receipts โ€” every number, every row

Click any of these to see exactly which rows produced the numbers on this page. Each table is straight from the source-of-truth Supabase database. Use the CSV button to pull a copy into Excel and verify the math yourself.

1 ยท Monthly bills (V3 โ€” current model)

โ€”

Source: monthly_bills table. 960 rows = 4 scenarios ร— 5 rate classes ร— 4 tiers ร— 12 months. Each row is a fully-computed LES retail bill including customer charge, demand charge, energy charge, and (LLP only) excess-kVAR penalty.

MonthScenarioRateTierBilling demandRatchet floorkWhPF penaltyTotal bill

2 ยท Annual summaries (V3)

โ€”

Source: annual_summaries table. 80 rows = 4 scenarios ร— 5 rate classes ร— 4 tiers. Each shows annual total bill and savings vs current-state.

ScenarioRateTierAnnual totalvs Current stateEligible?

3 ยท All 5 LES rate classes (verified vs PDF)

โ€”

Source: config/les_rate_schedule.json โ€” copied verbatim from the LES 2026 Rate Schedules Final PDF, sheets for Schedule LLP (Rates 15/16/39) and Schedule GSD (Rates 11/12).

RateCustomer $/moDemand + Fac $/kWSummer ยข/kWhWinter ยข/kWhExcess kVAR

4 ยท Workload definition (current scenario)

โ€”

Source: config/workload_scenarios.json. The plating jobs the scheduler places into the planning window. Each scenario also has continuous loads (chiller, DI/RO, compressed air), default rate class, power factor, and rectifier specs.

Job IDkWh requiredDuration (h)Rated kWDeadline (h)Lights-out eligible

5 ยท SPP LMP archive (V4-parked)

โ€”

Source: hourly_prices table. 12,119 hourly LMPs from gridstatus (SPP North Hub). Used in V1/V2 for arbitrage modeling โ€” now parked for V4 demand-response sizing since retail customers don't see wholesale prices.

Timestamp (UTC)Node$/MWhSource

6 ยท V1/V2 backtest (legacy, kept for transparency)

โ€”

Source: backtest_results table. V1/V2 daily savings rows (363 days ร— 4 scenarios ร— 2 schedulers + 364 continuous-load rows = 2,904 rows total). These numbers are now superseded by V3's monthly_bills table above โ€” kept here only so the V2โ†’V3 correction is verifiable.

DateScenarioSchedulerOptimizedRealistic baselineSavingsEnergyDemandPeak kW

7 ยท Model run history (V1/V2)

โ€”

Source: model_runs table. XGBoost training records from V1/V2. Parked for V4 demand-response sizing.

Trained at (UTC)WMAPERMSETrain windowTest windowArtifact

8 ยท Legacy V1/V2 rate row

โ€”

Source: rate_schedule table (legacy single-row from V1/V2 with the WRONG $15.03 demand charge). Kept for V2โ†’V3 audit trail. V3 uses config/les_rate_schedule.json (table 3 above).

FieldValue