For Developers

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

PropertyTypeDescription
idstringThe UUID for the object.
created_dateDateWhen the object was first seen by Edlink.
updated_dateDateWhen the object was last changed in Edlink.
titlestringThe title of the rubric.
descriptionstringA description of the rubric.
grading_criteriaGradingCriterion[]An array of criteria used for grading.
propertiesobjectNon-standard properties that may be of interest to the developer.

Grading Criterion

A GradingCriterion represents a single criterion within a rubric.

PropertyTypeDescription
namestringThe name of the criterion (e.g., "Grammar and Spelling").
descriptionstringAn optional description of the criterion.
weightnumberThe weight of the criterion in the final grade. Not supported by all LMSs.
performance_levelsPerformanceLevel[]An array of possible performance levels for this criterion.

Performance Level

A PerformanceLevel represents a specific level of achievement for a grading criterion.

PropertyTypeDescription
namestringThe name of the performance level (e.g., "Excellent", "Needs Improvement").
descriptionstringAn optional description of what this level entails.
pointsnumberThe 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

ProviderSupport
canvaslist, get, update
googleget, create
schoologyget