From 285a010a3bf0c58e5c81571148f8df883884b74f Mon Sep 17 00:00:00 2001 From: Bryon Lewis Date: Tue, 20 Oct 2026 12:25:15 -0400 Subject: [PATCH 1/3] stats reference info --- .../web-girder/views/Admin/AdminStats.vue | 389 +++++++++++++++++- 1 file changed, 388 insertions(+), 1 deletion(-) diff --git a/client/platform/web-girder/views/Admin/AdminStats.vue b/client/platform/web-girder/views/Admin/AdminStats.vue index 18e9ebdc3..361d254d2 100644 --- a/client/platform/web-girder/views/Admin/AdminStats.vue +++ b/client/platform/web-girder/views/Admin/AdminStats.vue @@ -42,6 +42,7 @@ export default defineComponent({ const annotationStatsJobId = ref(null); const annotationStatsError = ref(null); const annotationStatsReport = ref(null); + const showAnnotationStatsInfo = ref(false); const totalJobs = computed(() => { if (statsTableData.value) { @@ -257,6 +258,7 @@ export default defineComponent({ annotationStatsReport, runAnnotationStats, downloadAnnotationStats, + showAnnotationStatsInfo, }; }, }); @@ -429,7 +431,26 @@ export default defineComponent({ - Annotation inventory + + Annotation inventory + + + + How these stats are calculated + +

Run a background job that counts datasets, tracks, confidence ≥ 1, @@ -445,6 +466,17 @@ export default defineComponent({ > Generate annotation report + + + mdi-information-outline + + How are these calculated? + + + + + + + mdi-information-outline + + How annotation stats are calculated + + + mdi-close + + + + + + This is a point-in-time inventory of every dataset folder, counting only + live tracks (deleted revisions are excluded). Generating a + report re-runs the counts and saves the result to your Stats + folder; the numbers shown are from the report’s + generatedAt timestamp, not a live query. + + +

Manual vs. corrected — the key difference

+

+ These two signals describe different things and are counted from different + fields, so a track is never counted as both: +

+ + + +
+ + mdi-pencil-plus-outline + + Manual — created by a person +
+

+ The track was originally drawn / created by a user in + the annotator. It is identified directly from provenance: + attributes.userCreated === true. +

+

+ A manual track stays “manual” no matter how much it is + edited afterwards, and regardless of its confidence value. +

+
+
+ + +
+ + mdi-robot-outline + + Corrected — computed, then endorsed +
+

+ The track was created by a pipeline / import + (userCreated is not true), but its first + confidence pair is now ≥ 1 — the state left + behind when a reviewer accepts the track or sets its type, which + stores a single pair at confidence 1. +

+

+ Unlike “manual”, this is an inferred proxy for + human correction, not a recorded edit history (see limitations below). +

+
+
+
+

+ In short: manual = a human made the track; + corrected = a machine made the track and a human (probably) + signed off on it. A dataset can contain a mixture of both. +

+ +

Per-track signals

+

+ For each dataset the job tallies its live tracks into the counters below. + The classification that follows is built entirely from these four numbers. +

+ + + + +

Dataset classification

+

+ Each dataset with at least one live track is placed in exactly one + category. Rules are evaluated in this order — + “mostly manual” wins if a dataset somehow matches both rules: +

+ + + +

+ Worked examples +

+ + + + +

Totals and labels

+
    +
  • + Datasets counts every dataset folder, including empty + ones; the four category chips always sum to this total. +
  • +
  • + Tracks counts live tracks across all datasets. +
  • +
  • + Labels (in the downloaded JSON) group live tracks by + the type name of their highest-scoring confidence pair. +
  • +
+ +

Limitations — read the corrected numbers with care

+
    +
  • + Corrected is inferred, not audited. The job deliberately + does not scan per-detection edit history (userModified), + which keeps it fast on very large collections but means the proxy can be + wrong in both directions. +
  • +
  • + Possible false positives: a pipeline or import that + already emits confidence 1.0 counts as + “corrected” even if nobody ever reviewed it. +
  • +
  • + Possible false negatives: geometry-only edits, + deletions, attribute edits, type changes left below confidence + 1, and corrections that are not the first confidence pair + are invisible to this count. +
  • +
  • + Thresholds are heuristics. A dataset just under a cutoff + (e.g. 14 corrected tracks, or 24% corrected) lands in + “mostly computed”, so small datasets in particular can sit in + a category that understates the human effort involved. +
  • +
+
+ + + + + Close + + +
+