Every field, permission and safeguard in one place
What a Progress Grove export contains, what the school’s Sheet asks Google for, how records are protected on the phone and what happens if the school stops. Print it for your review file.
What an export contains
A teacher’s summary export has one row per session and 40 columns. None of them is a name.
Student and classroom7 fields
The classroom number and badge the teacher uses, the school ID from the Sheet and a random ID the phone makes. The school ID only means something next to the Sheet’s restricted Roster.
student_codelocal_badgeschool_student_idstudent_uuidclassroomgrade_at_incidentschool_year
When and how long16 fields
Times in UTC and local time, the length of each phase in seconds, and how the session ended.
local_datetimezone_idalerted_at_utcalerted_at_localreported_onset_at_utconset_sourceended_at_utcended_at_localend_reasonincident_statustotal_elapsed_secondsunclassified_secondsescalating_secondscalming_secondstransition_countsafety_event_count
Notes, checked for names8 fields
The only free text. The phone warns when a note may name someone, and the Sheet replaces every Roster name and nickname it finds with [name removed].
locationactivityantecedentobserved_behaviorssupports_usedskills_practicedoutcomenarrative
Review and bookkeeping9 fields
Flags for sessions that need checking, plus IDs and timestamps so the Sheet keeps only the latest copy of each session.
review_flagduration_is_provisionalduration_confirmed_at_utcdocumentation_statusincident_iddataset_idupdated_at_utcexport_as_of_utcexport_schema_version
Event export
One row per tap, including corrections. Its only free text is the reason for a correction, which is checked for names the same way.
Full JSON backup
Everything in the app, for restoring onto a new phone. It includes the notes, so treat it like the records themselves and store it somewhere the school approves.
What the Sheet asks Google for
The script runs inside the school’s Google account, as whoever installs it. Google lists these permissions the first time it runs.
- Google Sheets
- Build the Data, summary, weekly and MTSS tabs in the Progress Grove Sheet.
- Google Drive files
- Read teachers’ exports, remove Roster names from them, and create the exports and restricted reports folders.
- Google Docs
- Write MTSS meeting reports and family-report drafts into the reports folder.
- Send email as you
- Send fix lists, name alerts and summaries to the teachers listed on the Teachers tab.
- Run when you’re not present
- The hourly import and the scheduled teacher emails.
- Show content inside Google apps
- The Progress Grove menu and the prompts in the Sheet.
The script makes no web requests of its own. What it reads stays in the school’s Google account, apart from the emails it sends to staff on the Teachers tab.
On the phone
- No server, no network
- The app has no accounts, no analytics and makes no network connections. Data leaves only when a teacher exports a file and picks where it goes.
- Encrypted storage
- Records live in the app’s private storage, protected by iOS file encryption.
- Optional app lock
- Face ID or the device passcode, with a one-minute grace period. Exports and restores always ask again.
- On-device dictation
- Speech is turned into text on the phone only. The audio isn’t saved or sent anywhere.
- Device backups
- iCloud and computer backups include the app’s records by default. A setting in the app leaves them out.
- Erase all data
- After Face ID or the passcode, removes every record, the app’s recovery copies, exports waiting to be shared and reminders.
If the school stops
- Teachers choose Erase all data in the app, or delete it.
- The school keeps its Sheet, exports and reports in its own Google Workspace, under its own retention rules.
- There is nothing to request back from Progress Grove: we never held any of it.
What’s needed
- An iPhone or iPad with iOS 17 or later, or a Mac, for each teacher who records.
- A Google Workspace account to hold the Sheet. Teachers only need edit access to the exports folder.