Rubrics Overview
A Rubric is a set of criteria used for assessing an Assignment.
It is composed of one or more grading_criteria
.
Each grading_criteria
contains a set of performance_levels
that describe the possible scores for that criterion.
Thus the grading_criteria
is an array of somewhat complex objects, each containing an array of performance_levels
.
Properties
Property | Type | Description |
---|---|---|
id | string | The UUID for the object. |
created_date | Date | When the object was first seen by Edlink. |
updated_date | Date | When the object was last changed in Edlink. |
title | string | The title of the rubric. |
description | string | A description of the rubric. |
grading_criteria | GradingCriterion[] | An array of criteria used for grading. |
properties | object | Non-standard properties that may be of interest to the developer. |
Grading Criterion
A GradingCriterion
represents a single criterion within a rubric.
Property | Type | Description |
---|---|---|
name | string | The name of the criterion (e.g., "Grammar and Spelling"). |
description | string | An optional description of the criterion. |
weight | number | The weight of the criterion in the final grade. Not supported by all LMSs. |
performance_levels | PerformanceLevel[] | An array of possible performance levels for this criterion. |
Performance Level
A PerformanceLevel represents a specific level of achievement for a grading criterion.
Property | Type | Description |
---|---|---|
name | string | The name of the performance level (e.g., "Excellent", "Needs Improvement"). |
description | string | An optional description of what this level entails. |
points | number | The point value associated with this performance level. |
JSON Example
{
"id": "00000000-0000-0000-0000-000000000000",
"created_date": "2025-07-31T16:21:44.876Z",
"updated_date": "2025-07-31T16:21:44.876Z",
"title": "Essay Grading Rubric",
"description": "Standard rubric for all written essays in English 101.",
"properties": {},
"grading_criteria": [
{
"name": "Thesis Statement",
"description": "Clarity and strength of the main argument.",
"weight": 0.4,
"performance_levels": [
{
"name": "Excellent",
"description": "Clear, insightful, and well-defined thesis.",
"points": 10
},
{
"name": "Good",
"description": "Thesis is present but could be more focused.",
"points": 7
},
{
"name": "Needs Improvement",
"description": "Thesis is unclear or missing.",
"points": 3
}
]
},
{
"name": "Grammar and Spelling",
"description": "Correctness of grammar, spelling, and punctuation.",
"weight": 0.6,
"performance_levels": [
{
"name": "Excellent",
"description": "Fewer than 2 errors.",
"points": 5
},
{
"name": "Good",
"description": "3-5 errors.",
"points": 3
},
{
"name": "Needs Improvement",
"description": "More than 5 errors.",
"points": 1
}
]
}
]
}
Notes
When grading a Submission for an Assignment which has an attached Rubric, you'll pass the rubric_grade
property. This property will consist of a map of GradingCriterion.name
to PerformanceLevel.name
, indicating which level the student scored on each criterion. An example based on the above Rubric would be:
{
//... other fields
"rubric_grade": {
"Thesis Statement": "Good",
"Grammar and Spelling": "Excellent"
}
}
If you'd like to see how this works in action, check out our cookbook demonstrating grading with a rubric.
Supported Providers
Provider | Support |
---|---|
canvas | list, get, update |
get, create | |
schoology | get |