AI First registry

Iedere AI-touchpoint in het dashboard is hier vastgelegd: signature, inputs (PII-stripped per A7), output-type (det. / ml / ai), pagina-scope, cache-strategy en fallback. Numbers worden niet door AI berekend — AI levert uitleg, ranking en patroon-detectie.

Tools actief
16
AI-output (uitleg)
9
Det. + ML
7
Cache-hit avg
81%
Alle 16 Reasoning · 10 Data (ES) · 6 Type: ai Type: det. Type: ml Zoek tool…

Reasoning tools · 10

det. ml ai compute_risk_scores(member_id: str, lookback: int = 90) → RiskScores R-220 / R-225 / R-226 / R-227 P1
Inputs (PII-stripped · A7)
sessionssolo_completionsfreq_30dlast_response_daysacwrnotes_excerpt:90dcohort_baseline:n=181
Output
{
  compliance_pct: float (det.),
  churn_score: int (ml),
  injury_load: float (det.),
  sentiment_90d: float (ai-mean),
  explanations: { [k]: str (ai) }
}
Gebruikt op: atleet-detail cache md_{id}_{day}_{cohort_v} · TTL 24h fallback: laatste cache + warning-banner
det. ai rank_triage(signals: List[Signal], lookback: int = 14) → RankedList R-021 P1
Inputs
members:14signals:32notes_excerpt:90dlast_sessioncohort_baseline
Output
[{
  member_ref: str (PII-stripped),
  score: float (det.),
  weights: { [k]: float },
  reason: str (ai)
}, ...]
Gebruikt op: triage cache triage_{day}_{cohort_v} · TTL 5min fallback: deterministische sort op signal-count
ai summarize_cohort(ranked: RankedList) → str R-022 P1
Inputs
ranked_top:5cohort_sizehistoric_outcomes:n=14
Output
str (max 280 chars · u-vorm · NL)
Gebruikt op: triage · home cache cohort_sum_{day}_{cohort_v} · TTL 5min fallback: hardcoded "Cohort-overzicht niet beschikbaar"
det. ai analyze_cohort_kpis(period: str, filter: dict) → KPISet R-026 P1
Inputs
period:30dmembers_active:181sessions_30dsignals_openprevious_period:30d
Output
{
  active_members: int (det.),
  avg_sessions_per_member: float,
  pct_with_signals: float,
  trend: { delta_pct: float, ai_explain: str }
}
Gebruikt op: home cache kpi_{period}_{day} · TTL 1h fallback: vorige cache · warning-icon
det. ai rank_athletes_by_progress(period: str, cohort: str) → ProgressList R-091 P2
Inputs
period:90dmeasurements_per_memberbaseline:cohortcohort_filter
Output
[{
  member_ref: str,
  delta_pct: float (det.),
  outlier_score: float (det.),
  why_outlier: str (ai)
}, ...]
Gebruikt op: rapporten cache progress_{period}_{cohort}_{week} · TTL 7d fallback: sort op delta_pct, geen uitleg
ai cluster_similar_queries(history: List[Query]) → Clusters R-055 P2
Inputs
queries_30d:per_userembedding:cached
Output
[{
  cluster_id: str,
  query_count: int,
  label: str (ai),
  suggested_save: bool
}, ...]
Gebruikt op: assistent cache clusters_{user_id}_{week} · TTL 7d fallback: chronologisch tonen
det. ai detect_metric_anomalies(form: EvalForm, baseline: Baseline) → Anomalies R-131 P2
Inputs
form_metrics:10baseline:per_membercohort_normal_range
Output
[{
  metric: str,
  z_score: float (det.),
  flag: 'pos' | 'neg' | 'normal',
  explain: str (ai)
}, ...]
Gebruikt op: evaluatie-4w cache: per submit · geen TTL fallback: alleen z-scores · geen ai-explain
det. ai optimize_schedule(openings, waitlist, prefs) → Suggestions A10-conflict · P3/P4 P3
Inputs
open_slotswaitlist:7prefs_per_memberhistoric_attendance
Output
[{
  slot: { day, time, type },
  suggested_member_ref: str,
  match_score: float (det.),
  why: str (ai)
}, ...]
Gebruikt op: sessieplanning demo cache: niet (real-time) fallback: alleen wachttijd-FIFO
ml auto_weight_criteria(completions: List[Outcome]) → Weights R-103 P3
Inputs
checkin_outcomes:90dcriteria:5trainer_feedback
Output
{
  [criterion]: float (0..1),
  confidence: float
}
Gebruikt op: trainer-checkin cache weights_{week} · TTL 7d · retraining wekelijks fallback: handmatig ingestelde weights
det. ai correlate_weather_attendance(period: str) → Correlation R-085 P3
Inputs
attendance_per_dayknmi_observations:per_dayperiod:90d
Output
{
  pearson_r: float (det.),
  p_value: float (det.),
  dominant_factor: str (ai),
  narrative: str (ai)
}
Gebruikt op: analytics cache weather_corr_{period}_{week} · TTL 7d fallback: alleen pearson, geen narratief

Data tools (ES) · 6 · R-052

Geen LLM-output. Pure data-retrieval uit 13 ES-indices. Worden door reasoning-tools gechained.

ToolInputsOutputIndexR-id
search_profile(query: str) data query:str List[ProfileSummary] virtuagym-members R-052.1
get_full_profile(member_ref: str) data member_ref FullProfile (PII-stripped) virtuagym-members + 4 join-indices R-052.2
list_by_signal(signal_id: str, limit: int) data signal_id ∈ R-021limit:25 List[MemberRef + signal_meta] strijdercloud-signals R-052.3
get_overview_stats(period: str) data period:30d CohortStats 3 indices aggregated R-052.4
search_top_bottom(metric: str, n: int) data metric ∈ {bmi, freq, retention,…}n:5 { top: [], bottom: [] } virtuagym-measurements R-052.5
search_chat_history(member_ref, q) data member_refq:str List[ChatExcerpt] virtuagym-ai-history R-052.6
Compliance check

Alle 16 tools voldoen aan A7 (PII-stripping vóór tool-call), A8 (u-vorm in NL-output), A10 (read-only in v1, behalve optimize_schedule dat als demo gemarkeerd is). Geen tool berekent KPI's via AI — numbers zijn altijd det. of ml.

A7 PII-strip · 16/16 A8 u-vorm · 16/16 A10 read-only · 15/16 + 1 demo Cijfers via AI · 0/16