What we store
Account details, teaching setup, work you enter, work-time blocks, routines, workload decisions and limited technical information needed to operate and secure the service. We also store a recent-use timestamp, your email preferences and the account-level state that records whether you have completed Teacher Sorted's email-ownership check. That verification state is separate from subscription billing. We also keep limited account-level onboarding and product milestones, such as setup progress, device class, first return, first use of a small number of core features and aggregate activity counts. These records do not include task titles, notes or workload text. If you start a trial or subscribe, we also store the Stripe customer, subscription and invoice status needed to give you access and support your account.
If you choose to connect Google Calendar, Teacher Sorted stores the minimum durable connection state needed to keep that connection renewable: encrypted Google account identity, an encrypted refresh credential, the calendars you explicitly selected and whether each selected calendar is Busy only or may show eligible event titles. The basic calendar connection is read-only. If you enable the optional feature that adds Teacher Sorted work to Google Calendar, Teacher Sorted stores the encrypted target calendar identifier and limited synchronisation state needed to keep those Teacher Sorted-created events up to date. Google access tokens are not stored. Existing Google Calendar event descriptions, attendees, locations and meeting links are not copied into Teacher Sorted's database.
If you use Admin Sorted, we store the optional school communication details you save and the job facts you confirm: trip facts for a letter, confirmed ordinary-day visit-risk planning facts, the subject, class update or newsletter item for class communications, or the confirmed facts for a parent/carer message. Assembly projects and teacher assemblies keep the brief, plan and editable script you save. Group-level Admin Sorted jobs reject likely named-pupil clauses, sensitive casework and contact details before those details are saved or sent for drafting. Parent/carer message context stores only the placeholder [PUPIL_FIRST_NAME], never the real first name. For Trip Letter, class updates and newsletter contributions, you can also keep the latest version you have accepted or copied in Saved work. Parent/Carer Message can keep only an anonymised saved version with [PUPIL_FIRST_NAME]; the real first name remains in the active browser workflow and is not stored in that saved version. If confirmed details change later, the saved version is kept but marked for review rather than silently rewritten. Support Target Builder still does not save its pupil-specific input or finished target in Saved work. Linked Notes are used for a trip letter only when you choose to review them. Teacher Sorted also keeps limited account-level Admin Sorted usage signals showing which job or project you opened and whether it returned a usable result. Those signals store the feature name and time, not the job facts, generated wording, pupil information or other Admin Sorted content.
If you voluntarily give a cancellation reason, Teacher Sorted stores that category with the account so we can understand why trials or subscriptions end. Founder-only customer tags or short account notes may also be kept for support and relationship context; these are not used to copy or expose your private workload content.
If you create an account after arriving through a campaign link, we may also keep the campaign labels included in that link, such as source, campaign and creative. This lets Teacher Sorted understand which of its own marketing led to an account. We do not store Meta click IDs for this first-party record, and it never contains task titles, notes or workload text.
What not to enter
Outside the dedicated first-name field in Parent/Carer Message, Teacher Sorted does not need learner-identifiable information. Use general labels rather than pupil names or other identifying details. Group-level Admin Sorted jobs also check for likely person-specific pupil clauses before Save or Draft and ask you to rewrite them at group level. In Parent/Carer Message, the pupil's first name is held only in the active browser workflow and replaced with [PUPIL_FIRST_NAME] before confirmed facts, a saved message version or an AI request leaves the browser. Do not add surnames or use this route for safeguarding, medical, SEND or other sensitive casework.
Who receives data
Supabase stores account and workload data and provides the authentication service used to validate email verification codes. Vercel hosts the application and provides first-party web analytics. Stripe processes trial payment-method setup, subscriptions, payment methods and invoices; Teacher Sorted does not store your full card details. Resend is used to deliver Teacher Sorted account, verification, billing, onboarding, roundup, check-in and opted-in marketing emails. Teacher Sorted also keeps limited, privacy-safe operational metadata in Product Health so faults and unusual provider cost can be identified without storing task text, notes, email bodies or request payloads. For OpenAI calls, this operational record contains only the product feature, model, processing tier, request outcome, token and web-search counts, pricing snapshot and an estimated cost. It does not store the AI prompt, AI output, search-source URLs or a user identifier, and these AI usage rows are pruned after 90 days.
If you explicitly connect Google Calendar, Google receives the OAuth authorisation request and the server-side requests needed to provide the calendar features you choose to use. The basic connection requests identity plus Calendar List read-only and Calendar Events read-only permissions so Teacher Sorted can list calendars and read events from the calendars you select. If you choose to add Teacher Sorted work to Google Calendar, switching planned-work sync on asks Google for the additional permission to create, update and remove events on a Google Calendar you own. That permission is used only for Google Calendar events linked to Teacher Sorted work blocks; Teacher Sorted does not use it to edit unrelated existing Google Calendar events. When direct sync is enabled, Google receives the title, start and end time, and a short Teacher Sorted planning note for the timed work event being created or updated. Event reads are made on demand for a bounded time range rather than by a background calendar sync. Calendar writes are made only for the user-facing calendar feature you have enabled.
OpenAI may process limited text when AI-assisted features are used, such as interpreting natural-language capture, explaining workload options or answering a question entered into AI support. Teacher Sorted checks for some sensitive casework and contact-detail patterns before using those features and falls back when the text is unsuitable. AI support receives the support text you enter, recent messages in that support conversation and the page you are on; it does not receive your tasks or notes. Google Calendar event content is not added to AI requests in the current Calendar integration. The AI support conversation is only copied into the human support queue if you choose to send it. This is not a substitute for the rule above: do not enter learner-identifiable information.
When you choose destination research in Trip Planner, OpenAI web search may receive the curriculum-purpose wording you entered, but only after you confirm that it contains no pupil information. Teacher Sorted also applies best-effort checks for obvious pupil-specific wording, sensitive individual casework and personal contact details before sending it. The request may also include the subject you selected, an optional topic chip, a school postcode, the journey limit and transport mode, plus any structured year-group, day-length, cost-cap or broad accessibility filters you chose. It does not receive the full school address, saved shortlist or preparation checklist. Do not include pupil names, SEND or medical details, safeguarding information, contact details or individual circumstances in the curriculum-purpose box. Returned venue information is shown with public source links and still needs checking before booking, including the actual route and coach or transport timings.
Trip Letter interprets supported details in your browser. When you choose Draft letter, the confirmed trip facts and selected work and school details are sent to OpenAI to help write the letter. The full Notes bank, raw linked Note text, school address and school contact details are not sent. If AI drafting is unavailable, Teacher Sorted uses a basic draft from the confirmed details instead.
For a school newsletter contribution or class update, you review the subject, details and any dates or actions before drafting. When you choose Draft, those confirmed details and your saved communication name, role and school name may be sent to OpenAI to improve the wording. Your full Notes bank, school contact details and pupil records are not sent. If AI drafting is unavailable or its output fails the fact checks, an editable basic draft is used instead. Teacher Sorted does not send the finished message to families or your school.
Parent/Carer Message keeps the pupil's real first name in the browser. Before confirmed message facts are saved or sent to OpenAI, matching first-name text is replaced locally with [PUPIL_FIRST_NAME]. OpenAI may receive the confirmed non-sensitive message facts plus your saved communication name, role and school name, but not the real pupil first name. Sensitive safeguarding, medical, SEND, serious disciplinary and confidential-family casework is kept out of the AI route. If AI is not used or a draft fails the fact checks, an editable basic draft remains available. Teacher Sorted does not send the finished message.
These jobs may also suggest context from a few recent task titles. You decide whether the work actually happened before using a suggestion. Parent-message suggestions exclude sensitive or name-looking task content and are not message facts until you confirm them. Unselected task titles and your task list are not sent to OpenAI for these drafts.
For class assembly planning and teacher assemblies, the group-level brief and the relevant script or revision request may be sent to OpenAI when you ask for a plan, script or revision. Saved school contact details, pupil names and pupil records are not included. Check the wording, any factual claims and suitability for your group before use. Teacher Sorted does not contact families or create preparation tasks unless you choose to add those tasks to your workload.
Google Workspace data and Limited Use
Teacher Sorted's use and transfer of information received from Google Workspace APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Google Calendar data is used only to provide the visible calendar features you choose to use. This includes listing calendars you can select, showing events from selected calendars as planning context and, if you separately enable calendar writing, creating, updating or removing Google Calendar events that correspond to timed Teacher Sorted work you have planned. Teacher Sorted does not use calendar write access to alter unrelated existing Google Calendar events.
Teacher Sorted does not sell Google Workspace API user data, use it for advertising or transfer Google Calendar event content to advertising platforms. It does not use raw or derived Google Workspace API user data to create, train or improve generalised or non-personalised artificial intelligence or machine-learning models. Google Calendar event content is not sent to OpenAI or other AI model providers for Teacher Sorted's calendar features.
Routine human access to Google Calendar event content is not part of the service. Authorised access is limited to circumstances permitted by Google's policy, such as a specific support request you have agreed to, security or abuse investigation, or a legal obligation.
How Google Calendar data is protected
Stored Google connection credentials and identifiers are encrypted at rest. OAuth access tokens are used transiently and are not stored. Requests between Teacher Sorted and Google use encrypted HTTPS connections. Calendar event reads are limited to the fields and bounded time range needed for the planning view; Teacher Sorted does not make a permanent copy of Google Calendar event bodies.
Managing and deleting Google Calendar data
You can disconnect Google Calendar at any time in Settings → Calendar. Disconnecting removes Teacher Sorted's stored Google connection, selected-calendar settings and local credentials, and Teacher Sorted makes a best-effort request to Google to revoke the connection. Any Google Calendar events that Teacher Sorted has already created may remain in Google Calendar after you disconnect; you can remove those events in Google Calendar, or remove them through Teacher Sorted before disconnecting while the connection is still available. Deleting your Teacher Sorted account also removes the Google Calendar connection and direct-sync settings that Teacher Sorted controls.
Site analytics and optional campaign measurement
Teacher Sorted uses Vercel Web Analytics to count page views and visitors and understand which public pages are being used. Vercel Web Analytics is first-party measurement and does not rely on analytics cookies. It uses a short-lived identifier derived from request data that is not used to track you across different websites. Separately, signed-in first-party account analytics may keep the minimal milestone and aggregate state described above so Teacher Sorted can diagnose onboarding and activation. Neither system includes task titles, notes or workload text.
If you choose Allow measurement, Teacher Sorted also uses Google Analytics, the Meta Pixel and, for a verified card-backed trial start, Meta's Conversions API to understand visits, broad product actions and whether advertising leads to genuine interest, a trial or a purchase. This can include standard events such as page views, viewing the pricing page, submitting the sign-up form, starting a verified trial and completing a purchase.
Measurement never includes task titles, notes or the workload text you enter. Google and Meta measurement tags are not loaded until you allow them. If you do not allow measurement, Teacher Sorted does not set its Google Analytics or Meta advertising-measurement cookies. Vercel Web Analytics remains separate from that choice.
The first-party campaign labels described above are different from optional Google or Meta measurement. They are carried through Teacher Sorted's own public pages and, if you create an account, stored with the account. They are not used to follow your behaviour across other sites.
Google and Meta may receive technical identifiers and campaign or browser information associated with these measurement events under their own privacy terms. For the consent-gated Meta trial-start event, this can include a one-way hashed email address and account identifier, available Meta browser/click identifiers, IP address and browser user agent, together with non-workload campaign, plan and market labels. Teacher Sorted uses this information to understand site performance and advertising effectiveness, not to send your private workload content to advertising platforms.
Your Google and Meta measurement choice is stored in your browser. You can change it at any time using Analytics settings in the website footer or, when signed in, from Settings → Privacy.
Emails and workload summaries
Account verification, trial-start, cancellation and payment-related messages are service emails needed to operate your account and billing safely. They are separate from marketing consent. If enabled, Teacher Sorted can also send a short getting-started sequence, a weekly workload roundup and an occasional check-in after several missed school days. The weekly time figure is based on estimates attached to work completed in Teacher Sorted; it is a workload reflection, not a timesheet or a claim about every hour you worked.
Marketing emails are separate. Teacher Sorted only adds you to its marketing list when you actively choose to receive those emails, for example on the blog or the account sign-up form. We record the email address, the place you opted in, the time of consent and the consent wording version so that choice can be evidenced. Resend stores the contact and subscription preference used to send and manage those emails. You can unsubscribe from marketing emails at any time.
Payments and retention
A standard or Creator Partner referral trial asks Stripe to save a payment method before the trial starts. Teacher Sorted stores Stripe identifiers and subscription state, including whether a customer has cancelled the trial or subscription, but not the full card number. Unless the customer cancels, the card-backed trial follows the billing schedule shown at signup regardless of email-verification status. Billing records are kept for the periods required for accounting, fraud prevention and legal obligations. Deleting your Teacher Sorted account cancels any connected subscription and removes the active account records we control, subject to records that Stripe or Teacher Sorted must retain by law.
To keep historical acquisition totals accurate after account deletion, Teacher Sorted may retain a minimal acquisition fact with the account link removed. This can include the trial date and lifecycle state, plan or market, campaign labels and a one-way fingerprint of the Stripe subscription identifier. It does not retain your email, name, raw Stripe subscription or customer identifier, task titles, notes or workload text, and it is not used to recreate the deleted account.
When you delete an account, Teacher Sorted may also keep a short-lived, de-identified product-journey summary for up to 180 days so we can see where setup or early use is causing people to leave. The summary uses coarse categories such as the week of deletion, an account-age band, onboarding progress, broad device class, whether key app areas were reached, task and work-block count bands, plan or market, and an optional cancellation-reason category. It does not contain your user ID, name, email, provider identifiers, exact deletion time, task titles, notes or workload text, and it is not used to recreate or contact the deleted account.
Your controls
You can change onboarding, weekly roundup and check-in email choices in Settings → Emails, and Google and Meta campaign-measurement choices in Settings → Privacy. If Google Calendar is available on your account, Settings → Calendar lets you connect or disconnect it, choose which calendars may be read and choose Busy only or eligible-title visibility. Private or confidential Google events remain Busy even when titles are enabled. Adding Teacher Sorted work to Google Calendar is a separate, optional permission: Teacher Sorted asks for calendar write access only when you choose to enable that feature. Marketing emails include their own unsubscribe control. Billing lets you review or cancel a trial or subscription. You can also export your workload data and delete your account from Settings. Contact support@teachersorted.com with a privacy question.