peopleanalyst

Platform · Building · new here

Schema-first canonical comp-data normalizer (US11829954B2 design-around)

Ingests HETEROGENEOUS compensation records (arbitrary pay-component labels, periods, currencies, FTEs) and maps every component onto a CANONICAL COMP SCHEMA: classified base/variable/commission/allowance, converted to one display currency, annualized, and FTE-normalized -> canonical records + per-class totals. A DATA-QUALITY report (missing currency, missing/mismatched period, unmapped class, unknown FX rate, negative amount) is emitted as a BYPRODUCT of schema conformance -- it never compares against an expected payroll amount and removing it would change no normalized number. Deterministic, stateless, pure compute; static FX snapshot, no live source/API key. IP-clean design-around of in-force US11829954B2: that patent is an ERROR-DETECTION-FIRST pipeline that normalizes commission & performance-pay to FLAG PAYROLL ERRORS; this inverts the posture -- normalization is primary, anomaly/quality flags fall out of canonicalization rules. The missing front-door COMPLEMENT (not a fork) to anycomp.onboarded-roster (which assumes already-normalized rows) and wage-compliance/currency (single-amount FX) -- it produces the single comparable canonical basis those primitives assume, feeding benchmark integrity.

Cluster
Platform
Type
algo
Status
Building
Used by
Not yet integrated into a consumer product

Maturity evidence

Functioning
core/comp-normalizer.ts (component-class inference + period annualization + static-table FX conversion + FTE normalization + quality byproduct) + REST (POST /api/spokes/comp-normalizer/normalize, service-key gated) + MCP (comp-normalizer.normalize) wired from one contract; 17 passing tests (tsx --test src/spokes/comp-normalizer/tests/comp-normalizer.test.ts) incl. messy multi-source canonicalization, monthly->annual + GBP->USD + FTE normalization, byproduct quality flags (missing-currency/period-mismatch/unmapped-class/unknown-FX), determinism, honest clean/empty cases; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green.
Valuable
Schema-first comp-normalization front door routed from the patent-radar sweep; complements anycomp.onboarded-roster (already-normalized rows) + wage-compliance currency (single-amount FX) and feeds benchmark integrity (like-for-like comparison needs one canonical basis). No live consumer yet, and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use.
Understood
spoke README (claim-vs-design-around table, synthesis decision vs anycomp.onboarded-roster + wage-compliance/currency, mermaid of heterogeneous records -> classify -> canonicalize -> canonical records + quality report) + docs/SURFACE.md + CHANGELOG.
Integrated
REST + MCP from one declaration on branch feat/comp-normalizer-us11829954b2 (PR open, NOT merged); registry + discovery + register-tools + health-aggregate + drizzle + db-barrel wired. No live consumer wiring yet.

How to use it

REST
/api/spokes/comp-normalizer/normalize
MCP
comp-normalizer.normalize
Data
src/spokes/comp-normalizer/core/comp-normalizer.ts

Other Platform capabilities

← Every platform capability

Capability detail sourced from the People Analytics Toolbox capability feed (source of truth), snapshot retrieved 2026-07-23.