Skip to content

Data retention

SoftSys Edu Analytics applies a different retention policy depending on the tenant’s plan. This page details what is deleted automatically, what is kept, and how this aligns with GDPR / LOPD-style obligations.

PlanTelemetry retention windowNotes
Free30 days UTC (rolling window)Automatic purge every 30 min by the API worker. See details below.
Starter90 daysNo automatic purge — full history kept within the window.
Professional1 yearNo automatic purge.
Enterprise / ResellerCustom by contractNo automatic purge; retention defined in the agreement.

What gets deleted on the Free plan (30 days)

Section titled “What gets deleted on the Free plan (30 days)”

When a tenant is on the Free plan, an automated job deletes all telemetry and derived data older than 30 days UTC. The cutoff is computed by UTC calendar day for aggregate tables and by epoch timestamp for raw event tables.

ResourceCriterion
Raw events (events)server_timestamp older than cutoff
Sessions (sessions)Last activity older than cutoff
Daily aggregates (daily_aggregates)Date older than cutoff
Hourly aggregates (hourly_aggregates)Date older than cutoff
At-risk scores (at_risk_scores)Update older than cutoff
Alerts (alerts)Creation older than cutoff
Report jobs (report_jobs)Request older than cutoff
Report artifacts in R2Associated with deleted jobs (deleted by key)
Old exports (exports)Creation older than cutoff; R2 object deleted
Activity time logsDate older than cutoff
Viewer access auditCreation older than cutoff

The retention job never touches these tables, regardless of plan:

  • Moodle-synced entities: tenants, users, courses, enrollments, grades, activities. These are synced from the Moodle plugin and represent current state, not historical telemetry.
  • Tenant configuration: API keys, alert rules, monitors, branding, custom domains.
  • Data belonging to non-Free tenants: Starter, Professional, Enterprise and Reseller keep full history.
  • Report jobs and R2 artifacts older than the cutoff are deleted. New reports are regenerated using data within the 30-day window.
  • The dashboard UI may show empty history until fresh data enters the visible window.
  • The Free-plan banner in the dashboard links to this policy and to the related section in the FAQ.

SoftSys Edu Analytics applies several privacy-by-design principles (GDPR Article 25):

  • Hashed IPs: IP addresses are never stored in plaintext. The ingest worker computes SHA-256(ip + salt) before persisting any record and discards the raw IP.
  • Plugin-level IP opt-out: the Moodle plugin supports an option to exclude IPs entirely from the payload before sending (see Moodle plugin).
  • No content: SSEA does not store activity content (forum post bodies, quiz answers, uploaded files). Only event metadata: who, when, which activity.

The Moodle plugin exposes a standard Moodle Privacy API provider (classes/privacy/provider.php) that enables:

  • Data export for a user through Moodle’s standard flow.
  • Right to be forgotten: when Moodle deletes a user, the plugin immediately stops generating events for that user.
  • Coordinated requests: to delete historical data already sent to SoftSys Edu Analytics, contact SoftSys Solutions support.

All database queries include a mandatory filter by tenant_id. There is no production admin API that permits cross-tenant reads. See Security & privacy for more detail.

If you need to:

  • Export all historical data for your tenant
  • Delete specific data outside the automatic retention window
  • Extend retention beyond what your current plan offers
  • Adjust contractual retention terms (Enterprise plans)

…contact the SoftSys Solutions support team through the agreed channel.

This policy can be updated. Relevant changes (e.g. window adjustment, affected tables, affected plans) will be published on this page and announced through the support channel. Enterprise tenants with specific SLAs receive prior notice.