---
name: score_distribution
lang: py
domain: datascience
version: "1.0.0"
algebraic: product
definition: |
  @dataclass
  class ScoreDistribution:
      scores: list[tuple[str, float]]
      min_score: float = 0.0
      max_score: float = 0.0
      mean_score: float = 0.0
      threshold: float = 0.0
description: "Estadisticas de distribucion de scores para visualizacion y debugging de retrieval. Incluye classmethod from_scores() que calcula stats automaticamente y to_dict() con count y above_threshold."
tags: [retrieval, score, distribution, statistics, debugging, rag]
uses_types: []
file_path: "python/types/datascience/score_distribution.py"
---

## Notas

`from_scores(uri_scores, threshold)` es el constructor principal. Ordena los scores de mayor a menor y calcula min, max y mean automaticamente. El parametro `threshold` solo se almacena en el campo del mismo nombre — el filtrado real lo aplica el retriever.

`to_dict()` incluye `count` (total de items) y `above_threshold` (items con score >= threshold). Estos campos adicionales facilitan el logging y la observabilidad sin necesidad de recalcular en el consumidor.

Los scores estan en rango 0.0-1.0 tipicamente, aunque el tipo no lo valida — la responsabilidad de normalizacion es del retriever.
