Understand how your learners are working towards their goals
For ideas on how to use adaptive assignment analytics in your product, start here
In this section:
The Status and Progress analytic is only available for scoped goals. See Building Goals for more about building scoped goals.
POST /learning-instances/{li_id}/metrics/status-and-progress
Retrieve the status and progress analytic for all registrations in the specified learning instance, for each of the specified goals. The response can be conceptualized as a table whose columns correspond to the specified goals, and whose rows correspond to the registrations of the specified learning instance. The endpoint utilizes paging to ensure that the cost of the query and the size of the response is reasonably bounded. The registrations_per_page and registration_offset directives control the number of rows (registrations) in each page, and the start of the next page to be retrieved, respectively.
This endpoint must be called by the partner admin user or a user registered as the instructor of the specified learning instance.
Parameter | Type | Optional | Description |
---|---|---|---|
li_id | uuid | No | The ID of a learning instance for whose registrations to fetch the status and progress analytic |
Parameter | Type | Optional | Description |
---|---|---|---|
goal_ids | uuid[] | No | A list of goal IDs for which to fetch the status and progress analytic. |
registration_offset | int | Yes | The offset of the next registration to be retrieved. Should be set to the next.registration_offset field from the response payload of the query for the previous page. Default is 0. |
registrations_per_page | int | Yes | The number of registrations to include in the next page of status and progress to fetch. Default is 100. Maximum is 100. |
Sample Request Body
{
"goal_ids": ["99660e1d-e88e-44d2-94d3-251f4861d889"],
"registrations_per_page": "2"
}
Parameter | Type | Optional | Description |
---|---|---|---|
query | object | No | The request body from the query. |
column_headers | uuid[] | No | A list of the goal IDs for which status and progress is returned. |
data | object[] | No | A list of the page of “rows” of the response, each containing the status and progress analytic values for a single registration. |
data[].registration_id | uuid | No | The registration ID associated with the status and progress values in this row. |
data[].status_and_progress | object[] | No | A list of the status and progress analytic values for each requested goal, for the registration associated with this row. The order of this list matches the order of the goal IDs in column_headers . |
data[].status_and_progress[].goal_id | uuid | No | The goal ID associated with the status and progress value for this row (registration) and goal (column). |
data[].status_and_progress[].status | string | No | The status of the registration in the goal. One of: complete , complete_max_work , in_progress , struggling , or no_work . |
data[].status_and_progress[].progress | float | No | A value between 0 and 1 that indicates the registration’s progress towards completion of the goal. |
data[].status_and_progress[].work_remaining | integer | No | A value between 0 and 30 (inclusive) that predicts the number of additional items that the registration will need to complete before the goal is completed, or -1 if not enough data has been captured to make a reasonable estimate. |
data[].status_and_progress[].targets | object[] | No | A list of status and progress values for each individual target of the goal. |
data[].status_and_progress[].targets[]. target_id |
string | Yes | The ID of the target learning objective associated with this status and progress information. This field is mutually exclusive with module_id . Present if the goal in question utilizes target learning objectives. Otherwise absent. |
data[].status_and_progress[].targets[]. module_id |
string | Yes | The ID of the target module associated with this status and progress information. This field is mutually exclusive with target_id . Present if the goal in question utilizes target modules. Otherwise absent. |
data[].status_and_progress[].targets[]. status |
string | No | The status of the registration in the target learning objective or module. One of: complete , in_progress , struggling , or no_work . |
data[].status_and_progress[].targets[]. progress |
float | No | A value between 0 and 1 that indicates the registration’s progress towards completion of the target learning objective or module. |
data[].status_and_progress[]. topic_work_remaining |
object[] | Yes | A list of the work-remaining predictions for each topic defined on the goal. Absent if the goal does not define any topics. |
data[].status_and_progress[]. topic_work_remaining[].topic_id |
string | Yes | The partner ID for the topic defined on the goal. |
data[].status_and_progress[]. topic_work_remaining[].min_work_remaining |
integer | Yes | Not yet implemented. Always -1. |
data[].status_and_progress[]. topic_work_remaining[].average_work_remaining |
integer | Yes | A value between 0 and 30 (inclusive) that predicts the number of additional items that the registration will need to complete before the targets of the topic are completed, or -1 if not enough data has been captured to make a reasonable estimate. |
next | object | Yes | Present if there are additional pages of registration status and progress to be retrieved. Absent if this response represents the final page. |
next.registration_offset | int | Yes | Indicates the offset of the first registration of the next page of results. |
next.registrations_per_page | int | Yes | Identical to query.registrations_per_page |
Sample Response Body: Second Page Of Registrations (2 registrations per page)
{
"query": {
"goal_ids": ["99660e1d-e88e-44d2-94d3-251f4861d889"]
},
"column_headers": ["99660e1d-e88e-44d2-94d3-251f4861d889"],
"data": [
{
"registration_id": "6add6ab2-9f4a-4ecc-9969-0272c8ad051a",
"status_and_progress": [
{
"goal_id": "99660e1d-e88e-44d2-94d3-251f4861d889",
"status": "in_progress",
"progress": 0.4,
"work_remaining": 9,
"targets": [
{
"target_id": "lref-1a387a89-91f9-4a97-b393-e7f788029597",
"status": "in_progress",
"progress": 0.4
}
]
}
]
},
{
"registration_id": "e82e32b0-9ff4-46bc-964f-52ee6fd6714e",
"status_and_progress": [
{
"goal_id": "99660e1d-e88e-44d2-94d3-251f4861d889",
"status": "in_progress",
"progress": 0.6,
"work_remaining": 8,
"targets": [
{
"target_id": "lref-1a387a89-91f9-4a97-b393-e7f788029597",
"status": "struggling",
"progress": 0.2
}
]
}
]
}
],
"next": {
"registration_offset": 4,
"registrations_per_page": 2
}
}
POST /registrations/{reg_id}/metrics/status-and-progress
Retrieve the status and progress analytic for the specified registration, for each of
the specified goals. The response has the same tabular structure as that of the
POST /learning-instances/{li_id}/metrics/status-and-progress
endpoint, but with a
single row, corresponding to the specified registration.
This endpoint must be called by the partner admin user, or a user registered as the instructor of the learning instance of the specified registration, or the user associated with the specified registration.
Parameter | Type | Optional | Description |
---|---|---|---|
reg_id | UUID | No | registration ID |
Parameter | Type | Optional | Description |
---|---|---|---|
goal_ids | uuid[] | No | A list of goal IDs for which to fetch the status and progress analytic. |
Sample Request Body
{
"goal_ids": ["50d7d4fc-476d-45eb-8e8c-97c91d5d7c74"]
}
Parameter | Type | Optional | Description |
---|---|---|---|
query | object | No | The request body from the query. |
column_headers | uuid[] | No | A list of the goal IDs for which status and progress is returned. |
data | object[] | No | A single-item list whose item containins the status and progress analytic values for the specified registration. |
data[].registration_id | uuid | No | The registration ID associated with the status and progress values. |
data[].status_and_progress | object[] | No | A list of the status and progress analytic values for each requested goal. The order of this list matches the order of the goal IDs in column_headers . |
data[].status_and_progress[].goal_id | uuid | No | The goal ID associated with the status and progress value for this goal (column). |
data[].status_and_progress[].status | string | No | The status of the registration in the goal. One of: complete , complete_max_work , in_progress , struggling , or no_work . |
data[].status_and_progress[].progress | float | No | A value between 0 and 1 that indicates the registration’s progress towards completion of the goal. |
data[].status_and_progress[].work_remaining | integer | No | A value between 0 and 30 (inclusive) that predicts the number of additional items that the registration will need to complete before the goal is completed, or -1 if not enough data has been captured to make a reasonable estimate. |
data[].status_and_progress[].targets | object[] | No | A list of status and progress values for each individual target of the goal. |
data[].status_and_progress[].targets[]. target_id |
string | Yes | The ID of the target learning objective associated with this status and progress information. This field is mutually exclusive with module_id . Present if the goal in question utilizes target learning objectives. Otherwise absent. |
data[].status_and_progress[].targets[]. module_id |
string | Yes | The ID of the target module associated with this status and progress information. This field is mutually exclusive with target_id . Present if the goal in question utilizes target modules. Otherwise absent. |
data[].status_and_progress[].targets[]. status |
string | No | The status of the registration in the target learning objective or module. One of: complete , in_progress , struggling , or no_work . |
data[].status_and_progress[].targets[]. progress |
float | No | A value between 0 and 1 that indicates the registration’s progress towards completion of the target learning objective or module. |
data[].status_and_progress[]. topic_work_remaining |
object[] | Yes | A list of the work-remaining predictions for each topic defined on the goal. Absent if the goal does not define any topics. |
data[].status_and_progress[]. topic_work_remaining[].topic_id |
string | Yes | The partner ID for the topic defined on the goal. |
data[].status_and_progress[]. topic_work_remaining[].min_work_remaining |
integer | Yes | Not yet implemented. Always -1. |
data[].status_and_progress[]. topic_work_remaining[].average_work_remaining |
integer | Yes | A value between 0 and 30 (inclusive) that predicts the number of additional items that the registration will need to complete before the targets of the topic are completed, or -1 if not enough data has been captured to make a reasonable estimate. |
Sample Response Body: Single Goal, Single Target
{
"query": {
"goal_ids": ["50d7d4fc-476d-45eb-8e8c-97c91d5d7c74"]
},
"column_headers": ["50d7d4fc-476d-45eb-8e8c-97c91d5d7c74"],
"data": [
{
"registration_id": "104f4efc-62f0-4f4a-a577-c880ff7acc31",
"status_and_progress": [
{
"goal_id": "50d7d4fc-476d-45eb-8e8c-97c91d5d7c74",
"status": "in_progress",
"progress": 0.4,
"work_remaining": 9,
"targets": [
{
"target_id": "5d56b449-56be-4bb1-afd2-b3e281a66a42",
"status": "in_progress",
"progress": 0.8
}
]
}
]
}
]
}
Sample Response Body: Single Goal with Topics
{
"query": {
"goal_ids": ["99660e1d-e88e-44d2-94d3-251f4861d889"]
},
"column_headers": ["99660e1d-e88e-44d2-94d3-251f4861d889"],
"data": [
{
"registration_id": "6add6ab2-9f4a-4ecc-9969-0272c8ad051a",
"status_and_progress": [
{
"goal_id": "99660e1d-e88e-44d2-94d3-251f4861d889",
"status": "in_progress",
"progress": 0.6,
"work_remaining": 8,
"targets": [
{
"target_id": "lref-1a387a89-91f9-4a97-b393-e7f788029597",
"status": "struggling",
"progress": 0.2
},
{
"target_id": "lref-9d24c929-2781-41b0-982a-fce1e8684ac5",
"status": "completed",
"progress": 1.0
},
{
"target_id": "lref-e900ba90-9449-4634-9da1-c65fb3ac08f9",
"status": "in_progress",
"progress": 0.6
}
],
"topic_work_remaining": [
{
"topic_id": "topic-12.1.3",
"min_work_remaining": -1,
"average_work_remaining": 3
},
{
"topic_id": "topic-12.1.4",
"min_work_remaining": -1,
"average_work_remaining": 2
}
]
}
]
}
]
}