People Analytics Toolbox

A consolidated monorepo of independent service spokes that downstream tools (Performix, vela, future apps) consume as services. Each spoke owns a Postgres schema, an API namespace, and a versioned contract — but they ship as one Next.js app, one deploy, one Supabase project.

They’re designed to be both independent (each spoke is invokable on its own contract) and combinable (their contracts compose into cross-spoke surfaces like the metric × segment factory).

overall: down45 live · 0 reserved · 5 coming soon

Service catalog

Each card is one spoke. Reads are public; writes require a service-key header. Click a sample to see a runnable request.

people-graph

ok · v0.2.0

schema: people_graphcontracts: 2latency: 57ms

prediction

ok · v0.1.0

schema: predictioncontracts: 1latency: 60ms

reincarnation

ok · v1.4.0

Adaptive psychometric diagnostic engine — universal items (RIDs), study items (SIDs), pool lifecycle (D/C/B/A/PURGATORY/INFINITY), information-gain item selection.

schema: reincarnationcontracts: 5latency: 58ms

List psychometric statistics across all galaxies.

GET /api/spokes/reincarnation/psychometric-feed · public read

curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/reincarnation/psychometric-feed"

diagnostic-coaching

ok · v0.1.0

schema: diagnostic_coachingcontracts: 4latency: 59ms

performance-calibration

ok · v1.0.0

schema: performance_calibrationcontracts: 4latency: 59ms

performance-validity

ok · v1.4.0

schema: performance_validitycontracts: 11latency: 58ms

preference-modeler

ok · v1.6.0

Survey response collection + preference modeling. Anonymity-gated aggregation across maxdiff, penny-allocation, paired-comparison, conjoint (MNL).

schema: preference_modelercontracts: 8latency: 60ms

Aggregated preferences for the seed survey, with per-segment breakdown.

GET /api/spokes/preference-modeler/surveys/pat3-survey-seed/preferences?bySegment=true · public read

curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/preference-modeler/surveys/pat3-survey-seed/preferences?bySegment=true"

program-evaluation

ok · v0.2.0

schema: program_evaluationcontracts: 6latency: 61ms

talent-value

ok · v0.5.0

schema: talent_valuecontracts: 5latency: 62ms

assessment-library

ok · v0.1.0

schema: assessment_librarycontracts: 5latency: 62ms

career-development

ok · v0.1.0

schema: career_developmentcontracts: 8latency: 63ms

leadership-quality

ok · v0.2.0

schema: leadership_qualitycontracts: 5latency: 63ms

linkage-models

ok · v0.1.0

schema: linkage_modelscontracts: 11latency: 63ms

forecast-strength

ok · v0.1.0

schema: forecast_strengthcontracts: 7latency: 65ms

survey-orchestrator

ok · v0.15.0

schema: survey_orchestratorcontracts: 29latency: 66ms

network-analysis

ok · v0.3.0

schema: network_analysiscontracts: 5latency: 66ms

research-methods

ok · v0.4.0

schema: research_methodscontracts: 8latency: 66ms

career-pathing

down · v0.1.0

schema: career_pathingcontracts: 2latency: 67ms

causal-discovery

down · v0.1.0

schema: causal_discoverycontracts: 2latency: 68ms

comp-normalizer

down · v0.1.0

schema: comp_normalizercontracts: 2latency: 70ms

pay-structure-retention

down · v0.1.0

schema: pay_structure_retentioncontracts: 2latency: 69ms

job-similarity

down · v0.1.0

schema: job_similaritycontracts: 3latency: 70ms

data-anonymizer

ok · v1.2.0

PII detection (24-rule catalog, risk-prioritized overlap resolution), HMAC-keyed deterministic tokenization, redaction-with-spans, min-N privacy gate, 20-strategy transform.

schema: data_anonymizercontracts: 6latency: 92ms

List the 24 default PII detection rules.

GET /api/spokes/data-anonymizer/pii-rules · public read

curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/data-anonymizer/pii-rules"

segmentation-studio

ok · v2.13.0

HRIS canonical-field normalization + multi-membership cohort resolution + identity dedup (union-find) + recipe-derived dimensions + versioned pack publishing.

schema: segmentation_studiocontracts: 44latency: 96ms

Resolve the engineering-and-west cohort (returns memberIds).

POST /api/spokes/segmentation-studio/cohorts/resolve · requires service key

curl -sS -X POST "https://people-analytics-toolbox.vercel.app/api/spokes/segmentation-studio/cohorts/resolve" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOOLBOX_SERVICE_KEY" \
  -d '{
  "criteria": {
    "include": [
      { "dimensionKey": "department", "operator": "in", "values": ["engineering"] },
      { "dimensionKey": "region",     "operator": "in", "values": ["west"] }
    ]
  }
}'

calculus

ok · v1.17.0

Statistical enrichment (Wilson / normal / t / bootstrap CIs), trend classification, MetricEnvelope shape, metric × segment combinatorial factory, time-series imputation, anomaly detection.

schema: calculuscontracts: 17latency: 95ms

Classify a periods array as rising / stable / falling with OLS slope.

POST /api/spokes/calculus/stats/trend · requires service key

curl -sS -X POST "https://people-analytics-toolbox.vercel.app/api/spokes/calculus/stats/trend" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOOLBOX_SERVICE_KEY" \
  -d '{
  "periods": [
    { "period": "2025-Q1", "value": 70 },
    { "period": "2025-Q2", "value": 75 },
    { "period": "2025-Q3", "value": 80 }
  ]
}'

factor-models

ok · v0.6.0

schema: factor_modelscontracts: 11latency: 92ms

forecasting

ok · v1.4.0

Monte Carlo simulation + VOI / EVPI / EVSI decision-tree analysis. Deterministic seeded PRNG.

schema: forecastingcontracts: 8latency: 95ms

Run a 1,000-trial Monte Carlo over a single normal-distributed variable.

POST /api/spokes/forecasting/monte-carlo/run · requires service key

curl -sS -X POST "https://people-analytics-toolbox.vercel.app/api/spokes/forecasting/monte-carlo/run" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOOLBOX_SERVICE_KEY" \
  -d '{
  "tenantId": "__operator_demo__",
  "trials": 1000,
  "model": {
    "variables": { "x": { "shape": "normal", "mean": 100, "sd": 15 } },
    "expression": "x"
  }
}'

workforce-planning

ok · v0.6.0

schema: workforce_planningcontracts: 18latency: 95ms

anycomp

ok · v1.61.0

Compensation models, band placement, percentile-based recommendation engine, audit-trailed comp cycles.

schema: anycompcontracts: 25latency: 95ms

Evaluate one employee against the seeded compensation model.

POST /api/spokes/anycomp/evaluate · requires service key

curl -sS -X POST "https://people-analytics-toolbox.vercel.app/api/spokes/anycomp/evaluate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOOLBOX_SERVICE_KEY" \
  -d '{
  "modelId": "<seed-model-id>",
  "employees": [
    { "employeeId": "E1", "dimensionValues": { "job_level": "L4" }, "currentPay": { "base": 150000 } }
  ]
}'

metrics-catalog

ok · v1.1.0

schema: metrics_catalogcontracts: 4latency: 98ms

org-graph

ok · v1.1.0

schema: org_graphcontracts: 9latency: 98ms

persona-library

ok · v0.2.0

schema: persona_librarycontracts: 3latency: 99ms

gtm-studio

ok · v0.4.0

schema: gtm_studiocontracts: 10latency: 98ms

job-family-agent

ok · v1.21.0

Reserved namespace. Canonical home is meta-factory-prod; toolbox is a consumer, not a co-owner.

schema: job_family_agentcontracts: 17latency: 99ms

Health-only — canonical home for this capability is meta-factory-prod.

GET /api/spokes/job-family-agent/health · public read

curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/job-family-agent/health"

manager-effectiveness

ok · v1.2.0

schema: manager_effectivenesscontracts: 6latency: 101ms

company-intelligence

ok · v0.2.0

schema: company_intelligencecontracts: 6latency: 101ms

knowledge-graph

ok · v0.1.0

schema: knowledge_graphcontracts: 6latency: 101ms

seo

ok · v0.1.0

schema: seocontracts: 9latency: 102ms

marketing-analytics

ok · v0.4.0

schema: marketing_analyticscontracts: 10latency: 102ms

competitive-intelligence

ok · v0.1.0

schema: competitive_intelligencecontracts: 7latency: 104ms

ai-inbound

ok · v0.1.0

schema: ai_inboundcontracts: 8latency: 104ms

content-development

ok · v0.1.0

schema: content_developmentcontracts: 8latency: 104ms

wage-benchmark

ok · v0.5.0

schema: wage_benchmarkcontracts: 5latency: 104ms

wage-compliance

ok · v0.21.0

schema: wage_compliancecontracts: 31latency: 105ms

worker-resolution

ok · v1.0.0

schema: worker_resolutioncontracts: 2latency: 107ms

principia-connector

ok · v0.12.0

schema: principia_connectorcontracts: 11latency: 107ms

glass-ox

ok · v1.0.0

schema: glass_oxcontracts: 5latency: 107ms

enterprise-jobframe

ok · v0.3.0

schema: enterprise_jobframecontracts: 30latency: 108ms

hris-mapper

ok · v0.1.0

schema: hris_mappercontracts: 9latency: 108ms

jobframe-analytics

ok · v0.1.0

schema: jobframe_analyticscontracts: 6latency: 110ms

Composable in practice

Composable example: metric × segment grid

calculus's factory composes envelopes from multiple spokes in one POST. Each cell of the grid joins a metric, a segment ID from segmentation-studio, and a period; calculus enriches with CI / z-score / percentile / change-rate; the ranked list is metadata-driven (impact, significance, change, recency, sample-size).

curl -sS -X POST https://people-analytics-toolbox.vercel.app/api/spokes/calculus/factory/build \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOOLBOX_SERVICE_KEY" \
  -d '{
    "metricKeys": ["engagement_score","completion_rate"],
    "segmentIds": ["pat5-node-engineering","pat5-node-sales"],
    "periods":    ["2026-Q1"],
    "valuesProvider": [
      {"metricKey":"engagement_score","segmentId":"pat5-node-engineering","period":"2026-Q1","value":82,"sampleSize":120,"previousValue":78},
      {"metricKey":"engagement_score","segmentId":"pat5-node-sales",       "period":"2026-Q1","value":74,"sampleSize":80, "previousValue":76},
      {"metricKey":"completion_rate", "segmentId":"pat5-node-engineering","period":"2026-Q1","value":0.62,"sampleSize":120,"previousValue":0.55},
      {"metricKey":"completion_rate", "segmentId":"pat5-node-sales",       "period":"2026-Q1","value":0.58,"sampleSize":80, "previousValue":0.60}
    ],
    "rankingStrategy": "impact"
  }'

Access & discovery

Live contract registry
/api/registryJSON inventory of every spoke and contract.
Aggregate health
/api/healthRoll-up status + per-spoke latency.
Per-spoke health
/api/spokes/<slug>/healthSchema reachability + contract version.
MCP gateway
POST /api/mcpJSON-RPC transport for AI-native consumers. Auth: TOOLBOX_MCP_KEY_<consumer>.
Service-key header
x-toolbox-service-key: $TOOLBOX_SERVICE_KEYRequired on POST endpoints. Authorization: Bearer also accepted (backwards-compat).
Metric-market surface
/metric-marketCard workbench composing calculus + segmentation-studio (PAT-21).
Comp range builder
/anycomp-range-builderBand simulation + governance flags + Monte Carlo budget (PAT-21-FU).
Decision-wizard surface
/decision-wizardKepner-Tregoe + VOI flow composing forecasting + calculus (PAT-22).
Insight Player surface
/feedPaced, gestural mobile feed sequencing Insight Cards across all spokes (PAT-35).