Purpose
Automate generation of OCDE ACCESS S1S bulk-import roster files while keeping sheet-driven operator review, verification, and timestamp controls intact.
Current state
This workflow is now in production use. The `bousd-ocde-s1s-export` implementation follows the district transfer-tracking operating pattern (`run.sh` plus Python helper scripts plus `mssql_to_csv` and `google-sheet-sync`) and currently runs under an operator-run model; no standing scheduler is documented for this pass.
Next step
Document the active production spreadsheet ID, confirm the operational owner handoff and seasonal cadence, and decide whether the current operator-run model should remain the production pattern or gain scheduler support.
Interfaces
Inputs- Google Sheets `Data Entry` operator fields
- Aeries `STU` and `IDN` demographics plus related parent-program fields
- Vendor template requirements from `S1S_BulkImport_BOUSD.xlsx` and `BulkImport_Definitions_BOUSD.xlsx`
Outputs- Run-specific `OCDE-S1S-Export-YYYYMMDD-HHMMSS` tabs in the same spreadsheet
- Verified vendor-import-ready roster rows
- `export.timestamp` writebacks for verified source rows
- Per-run logs and `run-manifest-<run_id>.json` artifacts
Reality to Action trace
Reality IngestionContributes in this stage.
Canonical StorageNot in scope.
Automation EnginesContributes in this stage.
Human InterfacesContributes in this stage.
Operational AdoptionContributes in this stage.
Core workflow
TBD. Document the 5-10 steps that define the core workflow.
Data integrity and contracts
Source of truth rules
- The `Data Entry` sheet governs which rows are eligible for export through `export.ready` and `export.timestamp`.
- Aeries is canonical for the student demographic and related source fields used in the vendor template mapping.
- Run-specific output tabs and manifests are operational artifacts, not authoring records.
Safe handling
- Keep service-account credentials and SQL access controlled.
- Treat output tabs, logs, and manifests as restricted student data artifacts.
- Do not write `export.timestamp` until verification confirms expected student IDs are present.
Operational notes
Reliability posture
Per-run logs and JSON manifest artifacts provide strong execution evidence. Verification occurs before timestamp writeback, which reduces accidental acknowledgement of incomplete exports. The current production model is operator-run rather than scheduler-backed.
Observability
- Per-run logs
- `run-manifest-<run_id>.json` artifacts
- ready, merge, verify, and timestamp summaries
Security and privacy
Restricted student operational and contact data; FERPA-relevant roster and family contact fields remain inside the same spreadsheet ACL boundary and controlled Aeries or Sheets credentials.
Dependencies
Upstream- Stable `Data Entry` headers (`student_id`, `export.ready`, `export.timestamp`)
- Aeries field availability
- Vendor template stability
- Service-account Google Sheets access
Downstream- Operator export handoff to OCDE ACCESS S1S bulk import
Ownership
OwnersTechnology Services, Josh Barton
UsersTechnology Services, summer school operations and counseling stakeholders [validate]
OCDE S1S Summer School Roster Export Automation
Operational Notes
- Implementation:
bousd-ocde-s1s-export/run.sh, scripts/pipeline.py, scripts/sheets_api_ops.py, sql/aeries-ocde-s1s-template.sql, docs/field-mapping-matrix.csv, docs/template-requirements.md, and docs/runbook.md. - Method: controlled sheet download, eligibility filtering, student-ID-scoped SQL enrichment, deterministic field mapping, tab-per-run output, verification, and row-index writeback.
- The workflow selects only rows where
export.ready is true-like and export.timestamp is blank, maps sheet and Aeries data to the exact vendor template contract, creates a new output tab in the same spreadsheet for each run, verifies expected student IDs are present, then writes export.timestamp only for rows that passed verification. - Current production posture is operator-run. A standing scheduler has not yet been documented.
Registry Alignment
- Mapped registry entry:
INT-085 - Registry clarified: this workflow is now in production use and should be represented in Atlas as a first-class BOUSD integration record.
- Validation gaps: active production spreadsheet ID
[placeholder pending review], operational owner handoff, exact seasonal run cadence, and whether a standing scheduler will be added.