This release brings a major round of grid and search performance improvements, the foundation of Kansas's Cross-Agency Tracking (CAT) overhaul, four accessibility fixes from our ongoing WCAG audit, and a wide set of state-specific updates.
Student Portal Application History (LA-19649) — LACES now keeps a full history of Student Portal applications instead of only the most recent one. This matters for programs that ask returning students to reapply (for example, annually) and for students who are later merged — all of their submitted applications are preserved and shown on the Student Portal Application report, rather than only the latest one.
Workshop Attendance Import (LA-22705) — Added an import for workshop attendance records, so agencies can load attendance data in bulk instead of entering it manually, with row-level error reporting for any records that fail to import.
Run Date on NRS Tables (LA-18640) — NRS tables now display the date they were generated. When you print or save an NRS table as a PDF, you'll be able to tell at a glance when it was run, making it easier to compare figures across quarters or fiscal years without having to hand-write the date.
Audit History Now Includes Import-Created Records (LA-21245) — Records created through data imports are now attributed to the importing user (and agency) in Audit History, the same way manually entered records are. Previously, several import paths saved records under a placeholder user ID, which caused the Audit History UI to silently drop those entries — imported changes did not have the same audit trail as manually entered data. This is now fixed across affected import paths.
Class Schedule Days Now Print in Calendar Order (LA-22798) — Aggregated class schedule text (for example, on the Daily Sign-In Sheet report) now always lists meeting days in calendar order (Sunday through Saturday). Previously the order could shuffle unpredictably — a class meeting Friday, Monday, and Tuesday/Wednesday/Thursday could print as "Friday; Mon; Tue Wed Thu" instead of the expected order.
Four fixes from our ongoing accessibility audit with Iterators, our third-party accessibility contractor:
License Agreement Modal Focus Trapping (LA-22529) — The License Agreement overlay shown at first sign-in is now a proper modal dialog: focus moves into it automatically when it opens, stays trapped inside it while it's open, and the page content behind it is no longer reachable until it's dismissed.
Keyboard Access for Date Pickers and Masked Fields (LA-22454) — The calendar button next to date fields (including Birthday and Intake Date) can now be reached and activated by keyboard. Tabbing through date and phone-number fields now advances normally, without getting stuck.
Tables Now Announced Correctly to Screen Readers (LA-22453) — Grids and tables now expose a proper accessible name and table role to assistive technology like VoiceOver, instead of appearing unnamed or being misidentified as a form control.
Form Fields Now Have Proper Accessible Names (LA-22452) — Form controls on Add Student, Add Staff, and the Student grid now each have a unique, descriptive accessible name, and required fields announce their required state to assistive technology.
Grid Filters Failing on Certain Filter Combinations (LA-22870) — Fixed a bug where applying a grid filter could cause the grid to fail to load with a SQL error, if the first filter in the set had an empty value (for example, a blank related-view filter column). This affected Students, Class Sections, Tutors, and other grids across many agencies.
"In the List" ID Filter Crashing Grid Loads (LA-22808) — Fixed an issue where using the "In the list" filter option on an ID column (Student ID, Class Section ID, Staff Member ID, etc.) could crash the grid instead of filtering to the selected records.
Performance: Grid Load and Search Optimization (LA-22830, LA-22685, LA-17628, LA-22775) — Several related performance improvements to the Students grid and other high-volume search paths: covering indexes for employment-history columns, sargable name-search matching (previously the single largest source of full-table scans on the Students grid), cached grid paging so repeat page turns and re-sorts no longer re-run the full query, and materialized search-criteria evaluation for NRS-related searches that previously took several minutes to run. No user-facing behavior changes; grid and search response times are meaningfully faster, especially on larger tenants.
Performance: Import and Save Path Caching (LA-22776) — Data imports (partner integrations and CSV) now cache several lookups that previously repeated on every row, reducing unnecessary database round-trips during bulk imports. No output changes — import results are identical, just faster.
Central Report Performance Data Collection (LA-22522) — Report run-time data is now collected centrally in a queryable table instead of living only in each client's own database. No user-facing behavior changes; this is internal telemetry that supports faster performance investigations going forward.
Audit Logging Hardening (LA-22696) — Hardened error handling in the record save/delete path to prevent a rare crash class related to self-joined reporting views, matching a fix already shipped for the audit logger itself. No user-facing behavior changes expected.
Somerton Adult Education — Second Essential Education Configuration (LA-22829) — Added a second Essential Education integration configuration for Somerton Adult Education (Agency ID 19120022), so hours from their second Essential Education account now import into LACES alongside their existing configuration.
IELCE/Workplace Literacy Program Categorization on NRS Tables 3 & 9 (LA-22738) — Fixed an issue affecting Arizona and Tennessee where students in a combined "IELCE/Workplace Literacy" secondary program were not being counted as IELCE on NRS Table 3 or Table 9 — they were counted only as Workplace Literacy. These students are now correctly categorized as both.
AELA Met EFL Gain Goals Not Counting Correctly (LA-22880) — Fixed a bug in the CO AELA reporting engine where students with a legitimate current-year EFL Gain could be intermittently excluded from the AELA Counts By Goals and Performance Target Rates searches. The issue affected any CO agency with assessments dated in the current year but tagged to the next fiscal year. A deterministic tie-breaker and corrected fiscal-year handling now ensure gain counts are accurate and stable across repeated report runs.
Blackboard Enrollment File and Course-Date Filtering (LA-22818) — Fixed an issue where students could appear in the Blackboard enrollment file without a matching entry in the user file, causing enrollment errors. User, course, and enrollment records sent to Blackboard are now filtered so only currently active courses (whose end date is on or after the file's pull date) generate records, avoiding errors from data on already-ended courses.
Secondary Instruction Indicators, Teacher Role, and Program Display Cleanup (LA-22817) — Restored the "Instruction at 9th Grade Level or Above" menu options at the class and student level. Added a new read-only Teacher user role, scoped to a teacher's own students, with full access retained for comments. Also hid the Program column from the Student Enrollments grid, searches, and views, since Program is no longer manually set for Georgia and its continued display was causing confusion.
Workshop Attendance Import (LA-22705) — Added an import for workshop attendance records, so Georgia agencies can load attendance data in bulk instead of entering it manually, with row-level error reporting for any records that fail to import. This was made available for all clients.
Cross-Agency Tracking: Deduplication and CAT Alignment (LA-22566) — Improved how deduplication and Cross-Agency Tracking (CAT) work together: running deduplication now automatically creates the matching CAT link, and establishing a CAT link now marks the students as deduplicated. Deduplication also runs faster and with better visibility into which students are affected. This is the foundation for further CAT improvements.
Cross-Agency Tracking: Auto-Link at Portal Application (LA-22567) — When a student applies to multiple agencies through the Student Portal — including when a returning student reapplies to additional agencies — LACES now automatically creates the Cross-Agency Tracking link between those records.
Student Merge Failing on Waitlist → Prospective Transitions (LA-22872) — Fixed a bug where merging two students would fail with an error whenever the surviving record's status changed from "Waitlist (Partial Intake)" to "Waitlist (Full Intake)" — a common transition for Massachusetts agencies running the two-stage intake workflow. The merge now completes successfully.
Custom Report Timestamp and Agency Name Display (LA-22467) — Fixed the timestamp shown on Missouri's Class-area custom reports (MO MSG by Class, MO Student Assessments By Class, MO Student HSE Attainment By Class, MO Student Progress By Class, and MO Student Ready to Post-Test Over 40 Hours by Class), which was previously displaying an incorrect time. Also addressed an intermittent issue where the MO Student Progress By Class report could show the wrong agency name in its header.
Dashboard Widget Reverted to Standard Logic (LA-22681) — The "Students Post Tested Percentage – Early vs Within Rec Hours" dashboard widget for Missouri now uses the same standard logic as all other clients, following confirmation that Missouri's previous custom posttesting rule was not permitted under federal guidelines.
Zip Code Required for Student Records (LA-22883) — Zip Code is now a required field on the Student Portal and in LACES for Ohio non-DEW agencies, helping ensure this data is consistently captured for student tracking and reporting. (Ohio DEW agencies, which already require Zip Code and don't use the Portal, are unaffected.)
DEW Adult Workforce Diploma Program: Payment File Export (LA-22137) — Added a monthly payment-file export for Ohio DEW's Adult Workforce Diploma Program (ADP). State-approved payment requests are now packaged into a batch file and delivered via SFTP to DEW's fiscal system for processing.
Additional Required Class Fields (LA-22819) — Referral Email and Referral Phone Number are now required fields on Class Intake and Class Details for all Rhode Island agencies, supporting the state's expanded Class data tracking requirements.
OpenTimeClock Integration for Instruction Hours (LA-19666) — Added an integration that imports student attendance hours tracked in OpenTimeClock directly into LACES as Instruction Hours, reducing manual data entry for agencies with large student populations. Imported hours are rounded to the nearest quarter hour and apply only to students enrolled in a class.
Region 21 Essential Education Site Mapping (LA-22752) — Updated Virginia Region 21's Essential Education configuration so that hours from the Newport News Adult Education account are now imported by Site (Poquoson City, Hampton City, Newport News City, Williamsburg-James City County, and York County Public Schools) rather than all landing under a single catch-all site.
Student Import No Longer Requires County/State (LA-22863) — Fixed an issue where Student Import (including the CTC-Link integration) rejected files that omitted County or State, even though those fields aren't required on the Student Intake screen. Import validation now matches what's actually required on the intake screen.