Skip to content
DataCourt AI
Sign inAudit a dataset

Algorithm versions

Versioned algorithms and the versioning policy.

Every score in DataCourt comes from a named, versioned algorithm. Each audit stores:

  • algorithm_versions: the version of every stage that ran;
  • config and config_hash: the fully resolved configuration and its SHA-256;
  • the embedding backend identifier, including its model revision.

The same registry is served live at GET /api/v1/algorithms and shown on the Models & algorithms page. It is defined in services/api/datacourt/registry.py, which imports each version constant from its implementing module, so the registry cannot drift from the code.

Current versions

AreaVersionOutput typeSummary
Configurationaudit-config-v1measuredVersioned default thresholds; project overrides are validated and stored with each audit
Ingestionphash-dct32-v1measuredSHA-256 identity; 64-bit DCT perceptual hash and dHash
Ingestionpixel-sha256-rgb8-v1measuredSHA-256 of the decoded, normalised pixels: the same picture in any file format
Qualityattributes-v1measuredPer-image brightness, contrast, normalised sharpness, entropy, edges, colour, border, aspect
Qualityquality-rules-v1heuristicAbsolute and dataset-relative rules for potential blur, exposure, contrast, near-empty, resolution, aspect, extension mismatch
Embeddingsdc-descriptor-v1measured2,588-d CPU descriptor (default)
Embeddingsdinov2-small (facebook/dinov2-small@<revision>)measuredOptional self-supervised ViT-S/14
Duplicatesdup-families-v2measuredCandidates from hashes and kNN, structural verification, families, lineage
Leakageleakage-v1measuredCross-split families and adaptive similar-subject clusters
Baselinebaseline-logreg-v2model predictionClass-balanced logistic head; OOF probabilities; temperature scaling
Training dynamicscartography-v1model estimateConfidence, variability, correctness, forgetting
Influencetracin-linear-v1model estimateTracIn on the linear head
Labelslabel-forensics-v1heuristicReliability-weighted witness evidence score
Labelsrare-or-wrong-v1heuristicCompeting hypothesis scores
Shortcutsshortcut-detective-v1measuredCramér's V, lift, cue-only accuracy, perturbation tests
Coveragecoverage-v1measuredMap, regions, gaps, collection planner
Privacyprivacy-scan-v1heuristicHaar face and MSER text-region detectors
Courtjury-v1heuristicReason codes, ordered rules R1–R10, uncertainty, priority
Reviewreview-budget-v1heuristicGreedy budgeted selection with diminishing returns
Reviewcounterfactual-proxy-v1model estimateFirst-order action effect estimates from the TracIn basis
Experimentswhat-if-v1model estimatePaired retraining with training and evaluation bootstraps
Governancedebt-v1heuristicEight debt dimensions with published formulas
Governancepreflight-v1heuristicBlocking and warning rules
Governancecontract-v1measuredDeclarative contract rules over 15 metrics
Versionsdna-v1measuredDescriptive profile and JS-divergence drift
Versionsversion-diff-v1measuredSHA-matched version comparison
Versionscontamination-v2measuredExact and verified near-duplicate overlap with a reference version
Exportexport-v1measuredDeterministic clean export with manifest and checksums
Retentionretention-v1measuredTime-based purge of redundant archives

Versioning policy

  • Patch-level changes (bug fixes that do not change outputs on valid input) keep the version string.
  • Any change to outputs, including thresholds, formulas, features or ordering, bumps the version: jury-v1 → jury-v2. The previous version is documented here with the reason for the change.
  • Old audits keep their stored versions and configuration. Comparing a new audit with an old one shows both versions, so differences caused by algorithm upgrades are not mistaken for data changes.
  • Default configuration changes bump audit-config-vN.

History

VersionReplaced byReason
dup-families-v1dup-families-v2Files with identical decoded pixels in different formats (a HEIC and a lossless PNG of it) were near duplicates; v2 makes them exact duplicates. Families otherwise unchanged.
contamination-v1contamination-v2Exact overlap also matches identical decoded pixels, as in dup-families-v2.
baseline-logreg-v1 (SGD for everything)baseline-logreg-v2SGD optimiser noise made What-if deltas unstable between seeds. v2 uses converged L-BFGS for evidence, metrics and experiments, and keeps SGD only where the training trajectory is itself the evidence (dynamics, TracIn).