The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hi all!
I work in the Office of Assessment and Evaluation at my institution and we have just started utilizing the Canvas outcomes function. I would like to keep track of how many faculty have linked outcomes in their courses to assignments. Since the outcomes tab has % coverage for alignments, I'm hoping there is a way to see this across all courses at our institution. I am a Canvas admin and have access to our CD2 datalake (as well as support from IT) but I'm not sure where what I'm looking for is stored at scale. If anyone has any other ideas on how to easily track this that I'm not thinking of, I'm all ears!
Solved! Go to Solution.
Hi @DiaelThomas1,
I do not have a specific answer for you but I have a starting point for you.
If you go to the documentation for the Canvas Data Access Platform and "canvas" dataset at https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/dataset-canvas, on the right-side, you can find references in that area (based on alphabetical order) around "learning_outcome" and "outcome".
Hopefully that helps you get started and maybe someone else can provide more assistance.
-Doug
Hi @DiaelThomas1,
I do not have a specific answer for you but I have a starting point for you.
If you go to the documentation for the Canvas Data Access Platform and "canvas" dataset at https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/dataset-canvas, on the right-side, you can find references in that area (based on alphabetical order) around "learning_outcome" and "outcome".
Hopefully that helps you get started and maybe someone else can provide more assistance.
-Doug
Thanks! I appreciate that as a starting point
As an update to this question, I created a dashboard with the numbers that I need from CD2 data. Here is the SQL query I used to calculate aligned outcomes:
WITH total_outcomes_per_course AS (
SELECT
lo.context_id AS course_id,
COUNT(*) AS total_outcomes
FROM learning_outcomes lo
WHERE lo.workflow_state = 'active'
GROUP BY lo.context_id
),
aligned_outcomes_per_course AS (
SELECT
ct.context_id AS course_id,
COUNT(DISTINCT ct.learning_outcome_id) AS aligned_outcomes
FROM content_tags ct
JOIN learning_outcomes lo ON ct.learning_outcome_id = lo.id
WHERE ct.tag_type = 'learning_outcome'
AND lo.workflow_state = 'active'
GROUP BY ct.context_id
),
aligned_outcome_titles AS (
SELECT
ct.context_id AS course_id,
lo.id AS outcome_id,
lo.short_description AS outcome_title
FROM content_tags ct
JOIN learning_outcomes lo ON ct.learning_outcome_id = lo.id
WHERE ct.tag_type = 'learning_outcome'
AND lo.workflow_state = 'active'
)
SELECT
c.id AS course_id,
c.name AS course_name,
t.total_outcomes,
STRING_AGG(DISTINCT oat.outcome_title, '; ') AS aligned_outcome_titles
FROM total_outcomes_per_course t
LEFT JOIN aligned_outcomes_per_course a ON t.course_id = a.course_id
JOIN courses c ON t.course_id = c.id
LEFT JOIN aligned_outcome_titles oat ON oat.course_id = c.id
GROUP BY c.id, c.name, t.total_outcomes, a.aligned_outcomes
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in