Skip to content

Performance Metrics & Classification

The performance metrics system is the primary analytical surface of the platform. It retrieves Measurement Data (IAO) derived from the daily sync pipeline, applies Nominal Classification (CCO) based on configurable Objective Specifications (IAO), and serves a rich dashboard with multi-dimensional filtering.

Goal: Enable Ops and Creative teams (Persons bearing Roles) to quickly identify which MaterialArtifacts are performing (winners, top risers) and which need action (bananas, archive candidates).

ActorOntological typeRole
Staff user (Ops/Creative)Person (CCO) bearing RoleBrowses Measurement Data, adjusts Objective Specifications, triggers sync
Dashboard API WorkerEngineeredSystem (IOF)Serves CRUD endpoints, summary stats, Objective Specification management
Mart refresh jobProcedureExecution (PKO)Rebuilds performance_measurement_dataset with fresh Nominal Classifications
Daily syncProcedureExecution (PKO)Feeds raw sales data that powers the Measurement Dataset

[CCO: Nominal Measurement derived from Objective Specification thresholds | REA: Typification — policy layer governs instance layer]

MaterialArtifacts are auto-classified during mart refresh based on configurable thresholds stored in objective_specification:

Nominal ClassificationRule
top_risersales_first_7_days >= top_riser_7_day_threshold OR sales_first_14_days >= top_riser_14_day_threshold
winnersales_last_30_days >= winner_30_day_threshold
bananaMaterialArtifact is in the bottom N by aggregate_measurement_value (where N = banana_count)
archive_candidateis_active = false AND sales_last_30_days = 0
noneDoes not match any rule

MaterialArtifacts can carry multiple classification flags simultaneously (is_banana, is_winner, is_top_riser, is_archive) in addition to the primary nominal_classification column.

MethodPathDescription
GET/api/performance-metricsList ArtifactMeasurementDatum with filters, pagination, sorting
GET/api/performance-metrics/:idSingle datum by artifact_identifier
POST/api/performance-metricsCreate (rare — typically populated by sync ProcedureExecution)
PUT/api/performance-metrics/:idUpdate datum
DELETE/api/performance-metrics/:idDelete datum
ParamTypeDescription
classificationstringFilter by Nominal Classification: top_riser, winner, banana, archive_candidate, all
searchstringCase-insensitive search on product name and artifact_identifier
pagenumberPage number (default: 1)
pageSizenumberItems per page (default: 50)

Default sort: nominal_classification DESC, then aggregate_measurement_value DESC.

MethodPathDescription
GET/api/performance-metrics/stats/summaryAggregate counts by Nominal Classification + total Measurement Data
GET/api/performance-metrics/settings/classificationCurrent Objective Specification thresholds
PUT/api/performance-metrics/settings/classificationUpdate Objective Specification (triggers reclassification on next mart refresh)
interface MeasurementDataSummary {
total_artifacts: number; // MaterialArtifact count
top_risers: number; // Nominal Classification counts
winners: number;
bananas: number;
aggregate_measurement_total: number; // sum of aggregate_measurement_value
sales_last_30_days: number;
}

The performance tracking page provides:

  • Stat cards — clickable cards filtering by Nominal Classification
  • Multi-dimensional filters — classification, search, product type, vendor, tags (by category), date range, active status
  • Sortable columns — click column headers to toggle sort direction
  • Pagination — first/prev/page-input/next/last controls
  • Classification badges — color-coded: banana (yellow), winner (blue), top riser (green), archive (red)
  • Objective Specification dialog — edit thresholds for top_riser_7_day_threshold, top_riser_14_day_threshold, winner_30_day_threshold, banana_count
  • ProcedureExecution history — collapsible table showing last 10 procedure execution records with duration and counts
TableOntological typeRole
performance_measurement_datasetDataset (IAO) of Measurement DataRead-optimized serving table (rebuilt by mart refresh ProcedureExecution)
objective_specificationObjective Specification (IAO)Configurable thresholds governing Nominal Classification
procedure_execution_recordProcedureExecution (PKO)Audit trail for sync procedure execution history
  • List endpoint returns paginated ArtifactMeasurementDatum with correct filter application
  • Objective Specification update persists and takes effect on next mart refresh ProcedureExecution
  • Summary Measurement Data matches actual data (counts and sums are consistent)
  • Search works case-insensitively across product name and artifact_identifier
  • Multiple Nominal Classification badges display correctly when a MaterialArtifact matches multiple rules