California Community Colleges Chancellor's Office

MIS Errors Catalog

Add New Error Details

Comma-separated Banner/Colleague form names relevant to this error

CCC MIS Errors Catalog — Feature Guide

A complete reference of all platform features.


AI MIS Error Assistant

AI-powered chatbot that helps MIS professionals diagnose errors and find solutions.

Floating Chat Button — Available on every page via the navy chat icon in the bottom-right corner. Opens a slide-up panel with a full conversation interface.
Context-Aware Responses — The AI has access to the full MIS knowledge base, all catalog errors, Banner field mappings (from Ellucian Article 000005280), and SCFF metric definitions. It fuzzy-matches the user's query against catalog errors and injects the top 10 matches plus relevant report-specific Banner form mappings.
Banner Form Guidance — For Banner users, the AI cites exact forms, tabs, and fields (e.g., 'SCADETL > Supplemental Data > Taxonomy of Program') using 325 extracted data element-to-form mappings from the MIS Report Values document.
SCFF Funding Impact Warnings — When errors involve SCFF-critical elements (SP02, SP04, SF21, SF22, SX03, SX04, CB03, CB09), the AI warns about which funding metric is affected — ADT, Associate Degree, Credit Certificate, Transfer-Level Math/English, CTE Units, Pell/Promise Grant supplemental counts — and how the error could reduce the district's allocation.
Streaming Responses — Responses stream in real-time via Server-Sent Events for immediate feedback. Powered by Claude Sonnet 4 via OpenRouter.
Three-Layer PII Defense — (1) Client-side real-time detection as user types, (2) Client-side final check before send, (3) Server-side check before reaching the AI API. Plus the AI system prompt instructs it to never ask for or generate PII.
Rate Limiting — IP-based rate limiting at 10 requests per minute to prevent abuse. Returns 429 with retry-after header when exceeded.

Search & Browse Errors

The public-facing error catalog with full-text fuzzy search and filtering.

Fuzzy Search — Powered by Fuse.js — users can search by description, data element, system, file type, or solution text. Tolerates typos and partial matches.
Filter Dropdowns — Filter by Student Information System (Banner, Colleague, PeopleSoft), Error Type (Syntactical, Referential, etc.), and File Type (SB, SX, CB, XB, etc.).
Paginated Results — Results displayed 50 per page with pagination controls. Rich HTML content (bold, italic, links, images) renders inline in the solution and description columns.
Error Detail Pages — Each error has a dedicated page (/errors/:id) showing all fields, community notes, and related errors. Accessible via the detail icon or comment icon in the Solution column of search results.

Related Errors

Automatically computed on each error detail page to help users find similar issues.

Scoring Algorithm — Errors are scored by shared attributes: +2 points for same Data Element, +1 for same File Type, +1 for same Error Type. Top 5 related errors are shown.
Display — Related errors appear as clickable cards with system, file type, and error type badges below the Community Notes section. Clicking navigates to the related error's detail page.

Rich Text Editor

The Description, Solution, and Community Notes fields support rich content formatting.

Formatting Toolbar — Bold, Italic, Hyperlinks, and Images. Available on Add New Error panel, admin Edit Error modal, and Community Notes form.
Image Upload — Click the Image button to open a modal with two options: Upload a file from your computer (or drag and drop), or paste a URL. Uploaded images are stored in Supabase Storage (mis-images bucket).
Resizable Editor — Both the Description and Solution editors can be vertically resized by dragging the bottom-right corner. The Add New Error panel itself can be widened by dragging its left edge.
COCI Auto-Linking — Any mention of 'COCI' in the Related SIS Forms field automatically links to coci2.ccctechcenter.org.

Add New Error (Public Submission)

Any user can submit a new error via the slide-out panel on the main page.

Submission Flow — User fills out the form (System, Error Type, File Type, Description are required) and submits. The error goes into a pending queue — it does NOT appear publicly until an admin approves it.
Related SIS Forms — A field for entering comma-separated Banner/Colleague form names relevant to the error (e.g., SCADETL, SCACRSE, SSASECT). Displayed on the error detail page.
PII Detection — Before submission, the system scans all text fields for SSNs (XXX-XX-XXXX), 9-digit student/employee IDs, CCC-IDs, email addresses, and phone numbers. If detected, the submit button is disabled and a warning is shown. A second server-side check blocks any PII that bypasses the client.

Community Notes

Users can add tips, workarounds, and additional context to any error.

Rich Text Notes — Community notes support bold, italic, hyperlinks, and images via the rich text editor. Notes are rendered as formatted HTML on the error detail page.
College & SIS Identification — Users can identify their college (e.g., College of the Siskiyous) and Student Information System (Banner, Colleague, PeopleSoft) when submitting a note. Displayed as badges on approved notes.
Moderation — All notes require admin approval before appearing publicly. PII detection scans note content before submission. Pending notes appear in the admin Pending Submissions page with college and SIS badges.

Email Notifications

Users can subscribe to be notified when new errors are added to the catalog.

Subscribe — A subscribe form appears in the site footer. Users enter their email and click Subscribe. Emails are stored in the mis_notification_subscribers Supabase table.
Notification Trigger — When an admin approves a pending error, all active subscribers receive an email via Resend with the error details and a link to view it.
Unsubscribe — Every notification email includes an unsubscribe link with a unique token. Clicking it deactivates the subscription and shows a confirmation page.

PII Detection & Safeguards

Three-layer defense system to prevent personally identifiable information from being stored or sent to cloud services.

Layer 1: Client-Side (Real-Time) — Runs entirely in the browser as the user types. Detects SSNs (XXX-XX-XXXX format), 9-digit numeric sequences (student/employee IDs), CCC-ID patterns, email addresses, and phone numbers. Shows a red warning and disables the submit button.
Layer 2: Server-Side (API) — The same detection algorithm runs on the server before writing to the database or calling the AI API. If PII is found, the request is rejected with a 400 error.
Layer 3: AI System Prompt — The AI chatbot's system prompt explicitly instructs it to never ask for or generate PII. If a user appears to share personal information, the AI reminds them to remove it.
Coverage — PII detection is active on: Add New Error form, Community Notes, and AI Chatbot input. All three layers apply to each.

MIS Knowledge Base & AI Context

Structured domain knowledge that powers the AI chatbot and enriches the platform.

MIS Report Types — All 26 MIS file types (SB, SX, CB, XB, XF, XE, SF, FA, SP, SS, SG, SD, SE, SC, etc.) with descriptions, record lengths, and submission requirements.
Cross-File Relationships — 18 documented referential rules (e.g., every SX must have a matching SB, enrollment units must be within section min-max range). The #1 source of MIS errors.
Data Quality Thresholds — 12 submission-level rules that trigger FULL rejection (e.g., > 25% unknown education status, > 5% unknown zip codes, missing SS or VR file).
Banner Field Mappings — 325 data elements mapped to their exact Banner forms, tables, columns, and crosswalk configurations (GVATRMP, SOAXREF, GTVSDAX). Extracted from Ellucian Article 000005280 (MIS Report Values, July 2024).
SCFF Metric Definitions — Complete Student Centered Funding Formula metrics from CCCCO — 3 Supplemental metrics (AB540, Pell, Promise Grant), 8 Student Success metrics (ADT, Associate Degree, Baccalaureate, Certificate, Transfer-Level Math/English, Transfer, CTE Units, Living Wage), 16 Equity sub-metrics, cascading exclusion rules, and funding impact analysis for each critical MIS element.
Common Failure Modes — 6 categories: missing crosswalks, missing Banner data, cascading dependencies, complex calculations, positional fields, SVAIMIS defaults — each with affected elements and resolution steps.

Data Architecture

How data flows through the system.

Supabase (Single Source of Truth) — All error data lives in the mis_errors table in Supabase. The public site, admin panel, and API all read from and write to the same table. Changes are reflected immediately.
Tables — mis_errors (approved errors with relatedForms field), mis_pending (submitted errors awaiting approval), mis_error_comments (community notes with college, SIS, and is_approved flag), mis_notification_subscribers (email subscribers), mis_settings (AI provider config, budget), mis_usage_log (AI token usage tracking).
Image Storage — Uploaded images are stored in the mis-images Supabase Storage bucket (public). URLs are embedded directly in the HTML content of Description, Solution, and Community Notes fields.
Knowledge Base Files — mis-knowledge-base.json (report types, relationships, thresholds, failure modes), banner-field-mappings.json (325 Banner form mappings), scff-metrics.json (SCFF funding formula definitions). All in /public/ and loaded into AI context on each chat request.

Tech Stack

Technologies powering the platform.

Framework — Next.js 15 (App Router) with React 19 and TypeScript
Styling — Tailwind CSS 4 with @tailwindcss/typography for rich HTML content
Search — Fuse.js 7 for client-side fuzzy search (also used server-side for AI context matching)
Database — Supabase (PostgreSQL) with service role key for server-side access
File Storage — Supabase Storage (mis-images bucket)
Rich Text — Tiptap editor with StarterKit, Link, and Image extensions
AI — Claude Sonnet 4 via OpenRouter API with streaming responses. Supports Cloud AI (OpenRouter) and Local AI (Ollama, LM Studio, vLLM).
Email — Resend API for transactional email notifications
Hosting — Vercel (auto-deploy from GitHub on push to main)