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:
- Agents through the
agent_rubrics_junction— defines what the agent is scored on - Simulations through
simulation_scenario_rubrics_junction— attaches rubrics to specific scenarios - 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_idsto 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 Group | Standards | Points per Standard |
|---|---|---|
| Active Listening | Paraphrases student concerns, Asks clarifying questions, Acknowledges emotions | 3 each |
| Empathy | Uses supportive language, Validates student experience, Avoids dismissive responses | 4 each |
| Clarity of Explanations | Uses appropriate vocabulary, Provides step-by-step guidance, Confirms understanding | 3 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 rubricstandard_ids— attach individual standardspoint_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:
| Field | Description |
|---|---|
standard_group_id | Group UUID |
rubric_id | Parent rubric UUID |
name | Group name (e.g., “Active Listening”) |
points | Total points for this group |
pass_points | Points required to pass this group |
Each standard includes:
| Field | Description |
|---|---|
standard_id | Standard UUID |
standard_group_id | Parent group UUID |
name | Standard name (e.g., “Paraphrases student concerns”) |
points | Points 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 searchThe response for each rubric entry includes:
| Field | Description |
|---|---|
points | Total points possible |
pass_points | Minimum points to pass |
pass_percentage | Percentage required to pass |
active_simulation_count | Number 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 listThe 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
| Task | CLI | API Endpoint |
|---|---|---|
| List all rubrics | glow rubrics search | POST /rubric/search |
| Get rubric details | glow rubrics get --body '{"rubric_id": "..."}' | POST /rubric/get |
| Create rubric | glow rubrics create --body '{...}' | POST /rubric/create |
| Update rubric | glow rubrics update --body '{"rubric_id": "...", ...}' | POST /rubric/update |
| Duplicate rubric | — | POST /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 CSV | glow rubrics export | POST /rubric/export |
| Stage a draft | glow rubrics draft --body '{...}' | PATCH /rubric/draft |
| List drafts | glow rubrics list | POST /rubric/drafts |
Related
- Rubrics API Reference — full endpoint and type documentation
- Rubrics CLI Reference — all CLI commands
- Evals Guide — use rubrics within automated evaluation runs
- Tools Guide — tools that agents use alongside rubric-scored behavior