Skip to Content
Rubrics

Rubrics

Rubrics define the scoring criteria used to evaluate TA performance during office hour simulations. Each rubric organizes standards into groups, assigns point values, and sets passing thresholds — giving evaluators a structured framework to assess how well a TA handled a student interaction.


What is a Rubric?

A rubric in Glow is a hierarchical scoring instrument composed of:

  • Standard Groups — categories of competency (e.g., “Communication Skills”, “Policy Knowledge”, “De-escalation”)
  • Standards — individual criteria within each group (e.g., “Active Listening”, “Empathy”, “Clarity of Explanations”)
  • Points — the total point value and passing threshold for the rubric

Rubrics connect to three parts of the platform:

  1. Agents through the agent_rubrics_junction — defines what the agent is scored on
  2. Simulations through simulation_scenario_rubrics_junction — attaches rubrics to specific scenarios
  3. Evals through eval_model_rubrics_junction — applies rubrics during automated evaluation runs

How it Connects

Rubric | +-- Standard Groups | +-- Standards (with point values) | +-- Agent (via agent_rubrics_junction) +-- Simulation Scenario (via simulation_scenario_rubrics_junction) +-- Eval (via eval_model_rubrics_junction)
  • Agents are scored against rubrics attached through the junction table. The rubric defines what is measured; the agent’s behavior during the simulation provides the data.
  • Simulation Scenarios can have per-scenario rubrics, allowing different scenarios to emphasize different competencies (e.g., a grade dispute scenario uses the “De-escalation” rubric while a conceptual question uses “Clarity of Explanations”).
  • Evals reference rubrics through model_rubric_ids to apply scoring criteria during automated evaluation runs.

Create a rubric

Via the CLI

Calls below use $GLOW_INSTANCE_URL + $GLOW_TOKEN — see Authentication to export them once.

glow rubrics create --body '{ "rubrics": [{ "name": "Communication Skills", "description": "Evaluates TA ability to communicate clearly and empathetically during student interactions" }] }'

Via the API

curl -X POST $GLOW_INSTANCE_URL/rubric/create \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "rubrics": [{ "name": "De-escalation", "description": "Measures TA effectiveness at calming frustrated students and redirecting conversations productively" }] }'

Each entry returns the new rubric_id, a generated draft_id, and the initial version.


Standard groups and standards

A well-structured rubric organizes standards into logical groups. Here is an example for a TA training program:

Rubric: “Communication Skills” (Total: 30 points, Pass: 21 points / 70%)

Standard GroupStandardsPoints per Standard
Active ListeningParaphrases student concerns, Asks clarifying questions, Acknowledges emotions3 each
EmpathyUses supportive language, Validates student experience, Avoids dismissive responses4 each
Clarity of ExplanationsUses appropriate vocabulary, Provides step-by-step guidance, Confirms understanding3 each

Managing standards via API

Standards and standard groups are managed through their respective resource IDs on the rubric:

  • standard_group_ids — attach standard groups to the rubric
  • standard_ids — attach individual standards
  • point_ids — configure point values and passing thresholds

The search response includes denormalized standard_groups and standards arrays alongside the rubric list, so you can display the full rubric structure without additional API calls.

Each standard group in the response includes:

FieldDescription
standard_group_idGroup UUID
rubric_idParent rubric UUID
nameGroup name (e.g., “Active Listening”)
pointsTotal points for this group
pass_pointsPoints required to pass this group

Each standard includes:

FieldDescription
standard_idStandard UUID
standard_group_idParent group UUID
nameStandard name (e.g., “Paraphrases student concerns”)
pointsPoints for this standard

Points and passing thresholds

Rubrics define scoring at multiple levels. The rubric list response includes points, pass_points, and pass_percentage for each rubric.

# Search rubrics and inspect scoring glow rubrics search

The response for each rubric entry includes:

FieldDescription
pointsTotal points possible
pass_pointsMinimum points to pass
pass_percentagePercentage required to pass
active_simulation_countNumber of active simulations using this rubric

The draft cycle

Rubrics support a draft workflow for staging changes. This is especially important because modifying a rubric can affect scoring across active simulations and evaluations.

# Create or update a rubric draft glow rubrics draft --body '{ "name": "Communication Skills v2", "description": "Added empathy standards for improved scoring", "standard_group_ids": ["ACTIVE_LISTENING_UUID", "EMPATHY_UUID", "CLARITY_UUID"], "standard_ids": ["PARAPHRASE_UUID", "CLARIFY_UUID", "ACKNOWLEDGE_UUID"], "point_ids": ["POINTS_CONFIG_UUID"] }' # List your drafts glow rubrics list

The draft endpoint uses PATCH semantics with expected_version for optimistic concurrency. The response includes draft_id, new_version, and a form_state containing the resolved standard_group_ids, standard_ids, point_ids, and other fields.


Search & filter

glow rubrics search --body '{"search": "communication"}' glow rubrics search --body '{ "filter_department_ids": ["CS_DEPT_UUID"], "page_size": 25 }'

Bulk operations

Bulk delete and update follow the canonical all-matching shape — explicit IDs, or all: true with flat filter fields plus optional excluded_ids and a patch body. The persona surface is the prove-out; rubrics follow the same shape.

Delete by explicit IDs:

glow rubrics delete --body '{"rubric_ids": ["rubric-1", "rubric-2"]}'

Delete all matching a filter (with exclusions):

glow rubrics delete --body '{ "all": true, "search": "v1-deprecated", "excluded_ids": ["rubric-still-in-use"] }'

Bulk update via patch:

glow rubrics update --body '{ "all": true, "filter_department_ids": ["dept-retired"], "patch": { "archived": true } }'

Common Operations

TaskCLIAPI Endpoint
List all rubricsglow rubrics searchPOST /rubric/search
Get rubric detailsglow rubrics get --body '{"rubric_id": "..."}'POST /rubric/get
Create rubricglow rubrics create --body '{...}'POST /rubric/create
Update rubricglow rubrics update --body '{"rubric_id": "...", ...}'POST /rubric/update
Duplicate rubricPOST /rubric/duplicate
Delete rubric(s)glow rubrics delete --body '{"rubric_id": "..."}'POST /rubric/delete
Bulk delete (filter)glow rubrics delete --body '{"all": true, "filter_…": "…"}'POST /rubric/delete
Export to CSVglow rubrics exportPOST /rubric/export
Stage a draftglow rubrics draft --body '{...}'PATCH /rubric/draft
List draftsglow rubrics listPOST /rubric/drafts

Last updated on