# Model Performance Tracker

> Track Advanced Analytics model performance and inference volumes from ML monitoring tables — accuracy/drift metrics by model and version, plus serving request volumes. Ask me which models are degrading or which endpoints are busiest.

- Skill: `databricks-solutions/model-performance-tracker` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add databricks-solutions/model-performance-tracker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/databricks-solutions/model-performance-tracker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: databricks-solutions (https://skillmd.com/u/databricks-solutions)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/databricks-solutions/model-performance-tracker

---


> **Illustrative example** — demonstrates a well-formed `SKILL.md` for this reference
> implementation. Adapt the content to your own org; do not deploy verbatim.

# model-performance-tracker

## Overview

Surfaces Advanced Analytics ML operational health from **model-monitoring metadata**: it
tracks per-model quality metrics (accuracy, drift) by version, and inference/serving request
volumes over time. It reads aggregate monitoring metrics and request counts — not the scored
records or their features — so it stays a Tier-2 (internal) skill.

## When to use this skill

Reach for this skill when a data-science or MLOps user asks about model health:

- "Which models are degrading in accuracy over the last 30 days?"
- "Show me drift metrics by model version."
- "Which serving endpoints handled the most requests this week?"
- "Is the churn model's performance trending down?"

## Instructions

When the user asks a model-health or inference-volume question:

1. **Identify the model(s) and time window** (default: last 30 days).
2. **Query `greenwood.analytics.model_metrics`** for quality metrics by model, version, and date.
3. **Join `greenwood.analytics.inference_logs`** for request volumes when throughput is asked.
4. **Present results** as a ranked table, then give 2–3 health observations
   (see the Recommendations framework).

## Examples

### Accuracy trend by model (last 30 days)

```sql
SELECT
  model_name,
  model_version,
  metric_date,
  metric_value AS accuracy
FROM greenwood.analytics.model_metrics
WHERE metric_name = 'accuracy'
  AND metric_date >= DATE_SUB(CURRENT_DATE(), 30)
ORDER BY model_name, metric_date
```

### Busiest serving endpoints (last 7 days)

```sql
SELECT
  model_name,
  COUNT(*) AS request_count
FROM greenwood.analytics.inference_logs
WHERE request_date >= DATE_SUB(CURRENT_DATE(), 7)
GROUP BY model_name
ORDER BY request_count DESC
```

## Recommendations framework

After presenting results, always include:

1. **Biggest degradation** — the model/version with the largest accuracy drop or highest drift, named.
2. **Trend signal** — which models are declining vs stable; flag any accuracy drop >5 points over the window.
3. **Quick action** — one MLOps observation (e.g. "drift on model X exceeds threshold — candidate for retraining").

## Edge cases

- **No metric rows** — if a model has inference logs but no monitoring metrics, report it as
  unmonitored rather than implying healthy.
- **Sparse windows** — if the requested window has no rows, say so explicitly.
- **Aggregate metrics only** — this skill reads monitoring metrics and request counts, never
  the individual scored records or their input features.

## Data scope

- `greenwood.analytics.model_metrics` — per-model, per-version quality metrics by date (aggregate)
- `greenwood.analytics.inference_logs` — serving request counts by model and date (aggregate)
- No PII or scored-record contents are accessed — only aggregate monitoring metrics.

