Privacy Policy
Last updated: 5 November 2026
CostSonar reads product and inventory data from your Shopify store so it can tell you which products sell below cost, and keeps a record of cost changes that Shopify itself does not keep. It does not read or store your customers’ personal data.
Who operates this app
CostSonar is operated by Ferran Ruiz Marimon, an individual based in Spain, who is the controller of the data described here. For anything in this policy, contact support@costsonar.com.
What the app reads from your store
When you install it, you grant two read-only permissions: read_products and read_inventory. Those are the only scopes the app requests, and both are read-only: the app never writes to your store.
Through them it reads:
- Product and variant titles, SKUs and status
- Selling prices
- Inventory item unit costs and their currency
What the app stores
Everything stored is tied to your store domain and is never mixed with another store’s data:
- Your store domain and the access credentials Shopify issues at install (an access token, a refresh token, and their scope and expiry), so the app can talk to your store.
- The last known state of each inventory item: its unit cost and currency, the selling price, the product title, the SKU, the product’s status (active, draft, archived…) and Shopify’s identifiers for it. This is required to detect changes: Shopify’s webhooks never send the previous value.
- A record of each cost change: the item, the old and new cost, the currency, the selling price at that moment and the date. This is the app’s reason to exist — Shopify keeps only the current cost.
- When a selling price changes: the previous price and the date of the change, so the app can tell you when a price drop put a product below its cost.
- The result of each catalogue scan: how many variants were checked, the worst ones that are below cost, missing a cost, or on a thin margin, and, if a scan failed, a short reason code. Only the most recent scans are kept.
- The time of the last price, cost or product-status change that Shopify told the app about, so the screen can say that a scan may be out of date. It contains no data about your products.
- Your alert preference (on or off), and a log of alerts: the subject line, how many products it covered, which inventory items they were (so the same product is not repeated), and whether it was sent.
- If you press I want Pro, that your store asked for it and when, to decide whether to offer that plan.
What the app does not do
- No customer data. The app does not request access to orders or customers, so it never sees names, addresses, emails or payment details of the people who buy from you.
- No writing to your store. Both permissions are read-only. The app cannot change a price, a cost or a product.
- No selling or sharing your data. Your costs and margins are commercially sensitive. They are not sold, shared or used to train anything.
- No tracking or advertising. There are no analytics scripts, no advertising pixels and no third-party cookies in the app. The public pages of this site (including this one) set no cookies at all. Inside the Shopify admin, the app authenticates with the session token Shopify provides; any cookies in that environment belong to Shopify, not to this app.
Email alerts
If you turn alerts on, the app emails you when a product that was profitable starts selling below cost, because its cost went up or its price went down. Depending on your plan, the catalogue is also checked once a day, using the same read-only permissions, so a change that Shopify did not announce is still caught. Alerts are always sent to the contact email address that Shopify holds for your store, read at the moment of sending. The app does not let you type a different address: to change where alerts go, change the contact email in your Shopify settings. The address itself is not stored by the app.
Where the data lives, and who else touches it
- Fly.io — hosting and database storage, in the Paris (France) region. The storage volume is encrypted.
- Resend — delivery of alert emails, and only when alerts are enabled. Resend is a US-based company; the app sends through its Ireland (EU) region. Resend receives the recipient address and the message.
- Operational logs — Fly.io keeps server logs that contain your store domain and the type of event (for example an uninstall notice or an error). They hold no costs and no product data, and they roll over automatically.
No one else receives your data. The app has no other integrations.
How long it is kept, and how to have it deleted
Uninstalling the app is enough. Shopify sends the app a deletion notice 48 hours after the uninstall, and when it arrives every record belonging to your store is permanently deleted: costs, cost history, scans, alert settings, alert log, any Pro request and the access token. If you install the app again before that notice arrives, your data stays with the new installation. Nothing is retained as a backup copy beyond the routine infrastructure snapshots, which roll over within days.
You can also ask for deletion at any time without uninstalling, using the contact above.
Your rights
Under the GDPR you can ask for access to the data held about your store, its correction, its deletion, or a copy of it in a portable format. Write to the contact above and you will get an answer within 30 days. You also have the right to complain to your national data protection authority; in Spain that is the Agencia Española de Protección de Datos (aepd.es).
The legal basis for handling this data is that it is needed to provide the service you installed (GDPR Article 6(1)(b)).
Changes to this policy
If what the app stores ever changes, this page changes with it and the date at the top is updated. If a change materially affects you, you will be told inside the app rather than only here.