Retention Policy

1) Purpose

This Retention Policy defines how long Ctrl-Lab retains data processed and stored by the App and how we delete or de-identify data when it is no longer needed.

2) Data categories

We store the following categories of data:

2.1 App operational data (sessions & app state)

- Shopify app session records required for authentication and normal app operation
- Store identifiers and installation state

2.2 Analytics data (order attribute reporting)

Depending on configuration, we store:
- Raw order-attribute rows (order ID + attribute key/value + totals)
- Aggregated analytics (daily counts and revenue totals per shop + key + value)

2.3 Exports

CSV exports are generated on demand. We do not permanently store export files unless explicitly stated.

3) Default retention periods

We store the following categories of data:

3.1 Raw order-attribute rows

- Shopify app session records required for authentication and normal app operation
- Store identifiers and installation state

3.2 Aggregated analytics (daily totals by key/value)

Depending on configuration, we store:
- Raw order-attribute rows (order ID + attribute key/value + totals)
- Aggregated analytics (daily counts and revenue totals per shop + key + value)

3.3 App operational session data

CSV exports are generated on demand. We do not permanently store export files unless explicitly stated.

3.4 Logs

- Retention: 30 days
- Reason: troubleshooting and operational security
- Note: logs should not include sensitive personal data

4) Uninstall and deletion behavior

When a merchant uninstalls the App:
- We delete shop-specific operational and analytics data for that shop within 7 days.
- If backups exist, deletion may occur on the next backup rotation cycle; however, we do not use the data going forward.
When Shopify privacy redaction events are received:
- We delete data associated with the shop and respond as required by Shopify’s privacy processes.

5) Deletion method

Deletion is performed by:
- Removing shop-scoped records from Postgres (sessions/operational tables and analytics tables)
- Removing shop-scoped records from MongoDB analytics collections
- Purging raw records older than 90 days
- Retaining only aggregated records (up to 24 months) where applicable

6) Review and updates

We review retention settings periodically and may update this policy as the App evolves.