Product architecture

How Judgified turns videos into reports.

A streamlined pipeline that takes a YouTube link, assigns certified reviewers based on workload and certification rules, captures structured scores, and exports a polished report — every step traceable.

End-to-end flow
From intake to delivered report
1. Intake
Admin records team, video URL, package
2. Assign
Rules engine matches reviewers
3. Score
Reviewers complete dynamic scoresheets
4. Compile
Scores merged, comments summarized
5. Deliver
Report exported as PDF & web view
Assignment rules engine
Decision tree the system runs on every new submission
submission.created
  ├─ certification.active = true
  │   ├─ workload.current < workload.limit
  │   │   ├─ specialization ∋ submission.division
  │   │   │   └─ ELIGIBLE  → score by (rating × availability)
  │   │   └─ else → ELIGIBLE (lower priority)
  │   └─ else → DEFER (over capacity)
  └─ else → BLOCK (renew cert)

package.tier
  ├─ Essentials → 1 reviewer
  ├─ Pro        → 2 reviewers
  └─ Elite      → 3 reviewers + senior judge

report.publish ⇐ all(reviews.status = "Completed")
Data model
Core entities & relationships
User ──┬─ Reviewer (1) ─┐
       └─ Admin                │
                               ▼
Submission ─── ScoresheetRef ─── Scoresheet
     │                            │
     ├── Assignment(*) ── Reviewer
     │       │
     │       └─ Review ── Scores[]
     │
     └── Report (1)
Role & permission matrix
CapabilityAdminReviewer
Create submission
Assign reviewers
Build / edit scoresheetsview
Submit scores & feedback
Generate payroll reports
Manage certifications
Trust, security & compliance
Row-level isolation

Reviewers only see their own assignments; admins see workspace-wide data.

Audit logging

Every assignment, score, and status change is journaled with actor + timestamp.

Encrypted at rest

All scoresheets, reports and PII encrypted with managed keys.