React 19 TypeScript Fastify Prisma + PostgreSQL Decimal.js NetSuite OAuth 2.0 M2M Azure Container Apps Entra ID (SSO)

What It Does

Pennywise gives finance and operations leadership a drill-down view of profitability at every level of the business: company, region, area, and individual compressor unit. It answers the question "where are we making money and where are we losing it?" with penny-exact precision.

This is the highest-sensitivity application in the SC ecosystem โ€” all financial math uses Decimal.js (never floats), row-level access control is enforced everywhere, and reconciliation is automated to the cent.

๐Ÿ“ธ Screenshot needed: Pennywise P&L drill-down
The Pennywise P&L view showing drill-down from company level to region, area, and individual unit profitability.

Key Features

P&L Drill-Down

  • Company โ†’ Region โ†’ Area โ†’ Unit hierarchy
  • Revenue, cost, and margin at every level
  • Margin layers: Direct Margin and Contribution Margin
  • Per-unit waterfall by report group (Revenue โ†’ COGS โ†’ Overhead)
  • Unit detail modal with GL-line attribution
  • Period picker + run selector (default, pro-forma, restatement)

Budgeting & Forecasting

  • Controllable opex flex budget: Account x Region/Area x Month
  • Budget vs. actual with pacing analysis
  • Margin analysis and scenario forecasting
  • Monthly financial close support

Cost Allocation Engine

Not all costs are directly attributable to a specific compressor unit. Pennywise includes a sophisticated allocation engine that spreads untagged cost pools to units using configurable drivers:

Cap Review

Monthly capitalization review workflow where parts and labor costs are reclassified from OpEx to CapEx:

๐Ÿ“ธ Screenshot needed: Allocation rules viewer or Cap Review workflow
The allocation rules viewer showing account-level treatment (direct, spread, exclude) with driver assignments.

Data Integrity

Reconciliation to the Cent

Pennywise syncs 615,000+ GL lines across 18 periods from NetSuite. Automated reconciliation verifies 2,806 period-by-account cells against NetSuite โ€” with $0.00 variance. Income is ~97% attributed to specific units (49K of 51K lines via asset FK cascade). Financial math never uses floating point โ€” Decimal.js and Postgres numeric types throughout.

GL Sync

A nightly sync job pulls general ledger data from NetSuite via OAuth 2.0 Machine-to-Machine (JWT bearer, PS256):

NetSuite (GL, assets, contracts)
โ†’
Nightly sync job
โ†’
Pennywise PostgreSQL
โ†’
Allocation engine
โ†’
P&L views

Security & Access Control

Pennywise enforces the strictest access controls in the SC ecosystem, building on the platform's permissions and scoping model with additional row-level financial RBAC.

Pennywise has the strictest access controls in the SC ecosystem:

Reporting

Who Uses It

On the Roadmap โ€” Data Hub Integration

The next major milestone for Pennywise is integrating its data through the Data Hub instead of reading directly from NetSuite. This is a critical enabler for the broader platform vision:

โ†’ โ†’
Pennywise
Why This Matters

Pennywise is the financial half of the proactive intelligence vision. When its data shares a pipeline with operational data from the Data Hub, background agents can correlate "battery replacements are trending high" with "this will reduce area margin by 2.4%" โ€” and surface that to the right area manager before month-end close.