Define SANY's organizational reality. Changes are partitioned by academic year, so historical rosters stay intact when buildings or grade splits change.
Academic Years
Schools (Clever)
Buildings & Grades
App Catalog
Launchpad Layout
Staff Placement
Sync & Logs
Person Access
Grade Coverage
Feedback
⏰
Year
Range
Status
Actions
Roll over to a new year
Copies all buildings and their grid layouts from one year into another so deans don't start from a blank slate. Mark the target year as a draft so they can plan before it goes live.
Annual rollover checklist
The full year-to-year steps. No data migration is needed — history is preserved automatically. See docs/14-annual-rollover.md for detail.
Create the next academic year (above) and mark it a planning draft.
Roll over — copy buildings + grid layouts into the new year (optionally staff assignments).
Review structure — grade→building mappings and a default building per school (Buildings & Grades tab).
(Optional)Pre-plan staff for the draft year in the Staff Assignment app.
Make the new year current — this retargets the directory, ingestion, and login claims.
Keep Clever/Paylocity drops flowing — they auto-ingest into whatever year is current.
Housekeeping — suspend graduated cohorts (Directory → “Suspend old students”), review the Unassigned filter.
Schools are usually created automatically when you ingest a Clever schools.csv. You can also link them manually here.
Name
Clever ID
Number
Building
Code
School
Grades
Duplicate buildings
Finds buildings in the same year that are really the same place (created twice with different ids). Merge moves all assignments, layouts and staff onto the one you keep, then deletes the extra.
Merge two buildings (manual)
For buildings that are the same place but have different codes (so the scanner won't group them, e.g. "SAS MS" duplicated). Everything on the "from" building — assignments, layout, staff and building-admin grants — moves to the "keep" building, then the "from" building is deleted.
App
URL
Roles
Buildings
Status
Launchpad layout
Drag apps between categories and reorder them. This is the global layout every user sees (scoped to the apps they can open).
Reports
Downloads every user — all sources merged (Directory, Clever, Paylocity, Staff app) — as an .xlsx to your computer.
Building Admins
Grant a staff member admin access limited to specific building(s): they can view that building's directory, edit its staffing, and see its Navigator compliance — but nothing district-wide.
The table lists everyone who administers a building, from either source. An
explicit grant is made here and can be revoked here. A position —
Dean of School or Operations Manager — confers the same powers from the person's staffing
assignment and deliberately leaves their role alone, so it can only be changed in Staff
Assignment. Filtering this list by role used to hide the second kind entirely.
Ctrl/Cmd-click for multiple
Person
Buildings
Where it comes from
Super Admins
Full district-wide access — all buildings, configuration, role-granting, and every spoke's admin console. Grant sparingly. (For read-only, network-wide reports instead, use the District Admin grant in SANY Assessments → Settings.)
Super Admin
Edit a person's placement
Look up any staff member by email to change or remove their building/position assignments.
Active staff & teachers with no building. Assign each to one or more buildings + a position — multi-building staff (e.g. an Operations Manager) can be placed in all at once.
Name
Role
Title / HR location
Building
Position
Excluded ("not a person") accounts
Name
Email
Upload data files
Upload export CSVs straight from your computer — they land in the drop bucket and auto-ingest, no manual bucket access needed. Select all files for a feed at once; the anchor file (Clever enrollments, SIS student_details) is uploaded last so the whole set is present before ingestion fires. CSV only, 15 MB per file.
PeriodYearSubject is auto-detected — leave Year on auto for a multi-year historical file.
WindowYear
Year
Frequent between-benchmark probes. Flows into SANY Interventions → PM Report as trend lines — not the benchmark reports.
Year
External assessment imports
STAR, mCLASS, and Eureka results blend into SANY Assessments → Reports as benchmark windows (District Comparison, Growth, Equity). Rows that can't be matched to a student are parked below — map them to a student and future imports auto-match.
Unmatched rows
Clever drops to the storage bucket auto-ingest when the enrollments file lands. Use this to re-run a folder manually.
Repair placements: recompute every staff member's building from their actual Staff‑App assignments. Use this if assigned people show as "unassigned" in the directory.
Recent runs
When
Status
Results
Source
Directory syncs
Pulls staff & students from Google Workspace (the identity master). Runs automatically nightly at 03:00 ET.
When
Status
Results
Paylocity (HR) syncs
Upload the Paylocity CSV export to paylocity-incoming/ in the bucket (auto-ingests), or run a folder manually. Sets job titles, employment status, and roles for staff.
When
Status
Results
SIS import (students & designations)
The SIS pushes its nightly export to the SFTP relay, which lands each batch in
sis-incoming/<date>/. Ingest fires by itself when the student_details file arrives.
Read-only mirror: builds sis_students + sis_designations (equity subgroups). Never imports SSN.
Nothing to do here by hand. If a batch needs re-running, use the
runSisIngest callable with an explicit prefix — deliberately not a button, because pointing this at the
wrong folder re-ingests the wrong night over the current roster.
When
Status
Results
Folder
SIS reconciliation (dual-run)
Compares the latest SIS export drop against Orbit's sis_* mirror without writing, and reports what would change (added / changed / removed). A module is safe to promote to source-of-truth only after it stays clean for 3 consecutive runs. Runs nightly (4:00 AM ET) + on demand.
Entity
Added
Changed
Removed
Clean streak
Status
Recent runs
When
Result
Folder
State reporting (NYSED)
Pre-submission data-quality check + NYSED-shaped extracts from the Orbit canonical data (active enrollments). Fix flagged records before exporting to Level 0 / L2RPT.
Data-quality issue
Severity
Records
Run the readiness check to see flagged records.
SIS program dictionary
Give each SIS program-service code a friendly name (e.g. ENL, SWD / IEP, 504, Title I). Labeled codes become subgroups in the Assessments equity report immediately — no re-import needed. Leave a label blank to ignore that code. Codes and counts come from the last SIS import.
Code
Students
Label (subgroup name)
Onboarding (future employees)
Pulls the onboarding Google Sheet nightly and flags those staff as upcoming hires (with start date & campus) so they appear in Staff Assignment's "Unplaced new hires" and can be pre-placed. Sensitive columns (SSN, resume, phone) are never imported.
Undo last import removes the onboarding flags/dates from every record this sync touched (and deletes records it created). Real staff identity data is left untouched. Use it to clear bad records before re-running.
Find a person
Any staff member or student. Shows their role and every app in the catalog, with whether they can see it and why.
App access
Inherit follows the App Catalog rules for their role, building and grade.
Allow grants the app regardless. Deny removes it even if
their role would allow it. Takes effect on their next sign-in or refresh.
App
By catalog rules
Override
Result
Students with no grade on file
App grade rules match current_grade exactly, so a student with no grade
matches nothing and the app quietly disappears for them — the Person Access screen can
only report “cannot see”, which looks identical to the rule working as intended.
Anyone listed here is excluded from every grade-restricted app, whichever grades it allows.
Student
Email
Building
Year
Why it is missing
User feedback
Feature requests, improvement ideas, and issues submitted from any Orbit app via the 💬 Feedback button. Follow up, then mark resolved.