One thing I'd probe in the JSONB blueprint approach is versioning: if a tenant edits its rubric mid-term, previously validated scores could be silently reinterpreted against the new rules. Storing a blueprint version (or a snapshot of the rules) alongside each score payload would keep historical report cards reproducible. Also, with JSONB you lose DB-level constraints, so have you considered a CHECK constraint or GIN index on the keys you filter/rank by most often?