Hmm I made some progress, but still would like to get some help here if possible.
I decided to focus on #3 "Outcomes by Course" first, since at each course, there is a "outcome report" already...
I also found that in /grade/report/outcomes/index.php, at around line 73, there is a sql query:
$sql = "SELECT itemid, AVG(finalgrade) AS avg, COUNT(finalgrade) AS count
FROM {grade_grades}
WHERE itemid = ?".
$hidesuspendedsql.
" GROUP BY itemid";
$info = $DB->get_records_sql($sql, $params);
Under the mdl_grade_items table, I believe that if the gradetype=2, then those are the "outcome" grades? Can someone give me some pointers about this? Thanks!