The download buttons never told the server which institution they were for, so it answered "Page context is required" and the browser saved that message as the file. Fixed in all three download buttons. The PDF itself was also unreadable (26 columns squeezed until every cell read "St.."): it now wraps text, uses A3 for wide reports and splits into column bands that repeat Student ID and name. US institutions now get MM/DD dates; the PDF used to print Indian D/M dates.
Where: Data Exports → pick a report → Save & Generate, or download again from Recent Reports.
If the profile read failed for a moment during sign-in, CampusOS treated a complete profile as incomplete. It now retries, keeps the user signed in, and shows a small "couldn't load your profile" banner instead. The wizard itself is now one screen: US copy (ZIP code), no dead "Billing" step, and it no longer wipes a saved location.
No outage: the API ran without a restart from 20 Sep, with no errors in that window. One UMF user's live connection kept dropping, and the chat badge then reads "Offline mode." It now reads "Live updates paused."
If it happens again, ask for a screenshot and the time.
The server counted more students than it returned, so the list kept asking for pages that did not exist. Totals now match the rows. The list stops at the real end, a slow filter times out with a plain message, and the spinner has Cancel, Retry and Clear filters. Several filters that were silently ignored (Activity State, Risk, custom fields) now work.
Bands now sort themselves and can be dragged. Save says why it is disabled. W / I / IP / AU are refused in the scheme, as agreed, because they belong on the transcript. A new "Graduate scale (C- floor)" preset matches UMF's own policy (A+ 97–100 = 4.0 … C- 70–72 = 1.7, F below 70). We also found that band order could give a 90% student B+ instead of A-; that is fixed.
Fixed on 27 Aug (plus the 29 Aug fix that kept typed zeros). Nothing new needed.
The registrar picks any code per course: A+ … F, W, I, IP, AU, P, NP, TR, AW. Status codes clear grade points and stay out of GPA automatically. Minus grades (A-, B-, C-, D-) were impossible to record before and now work. The transcript and its PDF gain a readable legend, the original start date and the entry term (the 9 May asks).
Where: Students → a student → Transcripts.
A read-only "Institution Tickets" view: status, category, who raised it and role, the conversation, top reporters, CSV export. It never shows internal engineering notes.
Where: Help (top bar) → Institution Tickets, for SuperAdmin and Admin. 25 older tickets were linked to their institution after the deploy; 2 from people in more than one institution were left alone.
View as Staff joins View as Student. It is read-only and audited, and never shows the person's payslips or other personal pages. Closing it also closed a hole where an admin in student preview could still save changes.
Where: Avatar menu → View as Staff… (SuperAdmin).
True on the build side (RR-01 to RR-15, built 14 Sep, live 15 Sep), but unusable until this deploy because of A1. They now download, and RR-16 has been added.
Not recorded. Recording needs a browser session, which CampusOS stopped because it was eating the machine's memory.
All fourteen are live under Data Exports and now download. They show the new status labels and, after a program change, the program each course was taken in. Two of David's own specs contradict UMF's live SOPs (WF/R codes, a 4-level SAP); the reports follow the live policies, as his own notes suggest.
Live since 14 Sep, and required when a US student is withdrawn.
UMF's list is the default: 19 statuses in four groups, holds as separate flags (Financial, Registration, Transcript; Graduated with Balance is Graduated plus a hold), a from→to rules grid, full history, and an MSCHE rollup (Enrolled / Not enrolled / Graduated). Institutions can edit the list. SAP evaluations move the status automatically, and Make Alumni marks students Graduated. A new report, RR-16 "Active Students by Term," is one row per student per term, exportable.
Where: Students → Student Statuses, and each student's Status tab.
View the original request — Student Status Management Request
"Change Program" on the student profile: new program and section, effective date, a reason, which earlier courses count toward the new program (shared course codes are pre-ticked), and optional enrolment in current classes. Nothing is deleted. The transcript groups terms under each program and shows a program GPA next to the institutional GPA.
Where: Students → a student → Change Program (Registrar, Admin, SuperAdmin).
Replaced by the 12 Sep taxonomy above, which covers every value on this older list. The "lead (applied / not applied)" stages stay in the CRM.
Tier 1 (Eligible / Not Eligible / Exempt) and a new "employed out of field" outcome. The rate is (placed in field + related) ÷ (graduates − exempt − not eligible − not available − continuing education), per program, with the formula printed in words. Out-of-field jobs now stay in the denominator instead of quietly inflating the rate.
All three done (see B1 and RR-16).
Classrooms can switch to Weighted mode, starting from a "US Standard" template. A course with no quizzes gives that 10% to Assignments. Discussions file into their category automatically. Transcripts and reports use the same numbers as the gradebook.
Where: Classroom → Gradebook → setup; templates under Settings → Gradebook Templates.
Tag any assignment, quiz or discussion to course or program outcomes. Each student gets a rating on the outcome's scale, taken from the rubric, quiz tags or grade, with instructor override. Course and program reports can be exported to CSV, and standard outcomes can be imported by CSV.
Where: Classroom → Outcomes, and Accreditation → Learning Outcomes.
A Grading Policy page for admins. Instructors only get a Yes/No for the late penalty, and penalised grades are flagged ("Late 2 days: −20%") with a waiver. Everything is off until an institution turns it on.
Where: Academics → Teaching → Grading Policy.
Four starter templates (Discussion Participation, Written Assignment, Group Project, Case Analysis). Grading with a rubric in SpeedGrader now actually saves; before, nothing ever recorded it.
"Graded discussion" is now an assignment type. SpeedGrader shows a student's posts beside the rubric. Ratings mode supports average, count, max, min or sum. Peer rating can be switched on per institution, and the grading mode can be locked. Also fixed: a student's first post after the deadline was lost and scored as a zero.
Still waiting for the Google Voice number David said he would get.
It says 11 of 14 MSCHE fields are "Captured" in CampusOS. None of the field names it lists (CFI ratios, Title IV flag, licensure pass rate, FTE) exist in the product. Graduation, retention and placement rates do exist as reports.
Already in the product.
Hi David, here's the full update on everything from our chat and your portal. It's all live on campusos.co now.
1. Data Exports: the reports couldn't be downloaded, and that's fixed. The files were broken for everyone since May (a bug on our side, not the reports). PDF, Excel and CSV now open properly. The PDF is also much more readable now: wide reports print on larger pages with full values, and dates are MM/DD. All 14 registrar reports are there (RR-01 to RR-14), plus a new RR-16 "Active Students by Term."
2. Nate's screen: fixed. An existing student will no longer be sent to the "Complete Profile" page if the connection blips during login.
3. "Offline": there was no outage. The server was up the whole time. That user's connection kept dropping, so the chat badge said "Offline mode." If it happens again, please send a screenshot and the time.
4. Grading scheme: you can now reorder bands (they also sort automatically), and Save tells you what's missing. W and I now live on the transcript, as we agreed. Please open "UMF Graduate Letter Grade Scheme," click Load preset → "Graduate scale (C- floor)" (A+ 97–100 = 4.0 down to C- 70–72 = 1.7, F below 70), remove the W and I rows, and save. The saved scheme still has A = 3.75 and B+ = 3.5, which doesn't match UMF's policy.
5. Transcripts: the registrar can mark any course W, I, IP, AU, P, NP, TR or AW, and those never count in GPA. Minus grades (A-, B-, C-) now work. The transcript shows a code legend, the original start date and the entry term. Heads up: a few transcripts will change, because some courses that were missing now appear and a few W/I courses stop counting in GPA. That's the correct US rule.
6. Changing a student's program (MBA → CIS): open the student, then "Change Program." Nothing from the old program is lost. You choose which earlier courses count, and the transcript shows both programs.
7. Student statuses: UMF's full list is in, with holds (Financial, Registration, Transcript), rules for which status can follow which, history, and the MSCHE rollup. It's under Students → Student Statuses. From current records, 70 students would be Active (Good Standing) and 11 Withdrawn. Once the registrar says that looks right, it will be saved; students can be adjusted individually afterwards.
8. Support tickets: Help → Institution Tickets shows every ticket UMF's users have raised, with status and history, so you can see the patterns.
9. View as: you can now "View as Staff" (avatar menu) and see exactly what an instructor sees. It's read-only.
10. Your LMS recommendations are all built: weighted categories (the 50/30/10/10 template is ready), learning outcomes with course and program reports, grading policy (point limits, Pass/Fail and I/W/AU scales, a central late penalty), rubric templates including Discussion Participation, and graded discussions (whole-forum with rubric, or ratings, with optional peer rating). Most of this is switched off until UMF turns it on, so nothing changes in live courses by surprise. Happy to walk the team through it.
11. Placement rate: Tier 1 eligibility and the new "employed out of field" outcome are in, and the formula is printed on the report. Could you send Dr. Matos's formula so we can confirm it matches?
Two small asks: the Google Voice number for the website, and whether the team would like a live walkthrough instead of videos. Happy to do a call this weekend in your evening.
feat/umf-requests, merged to main as 2338b6c8e2.