Privacy Policy
Last updated: May 7, 2026
1. Overview
KPI Dashboard (the “Service”) is a multi-tenant analytics application operated by Swiss Commerce. This policy explains what data we collect, why we collect it, and how it is stored and shared. By signing in to the Service, you consent to the practices described here.
2. Information we collect
We collect only what we need to operate the Service:
- Account information. When you sign in with Google, we receive your Google account email, name, and avatar URL via OpenID Connect. We use this to identify your account and display your profile in the Service.
- Organization data you create. The names of organizations (tenants) you create, dashboards and charts you build, and SQL queries you author.
- Database connection details. When you add a database source (PostgreSQL, MySQL, Supabase), we store the host, port, database name, username, schema selection, and an encrypted copy of the password. The password is encrypted at rest with AES-256-GCM using a key held by the Service operator.
- Google API credentials. If you connect Google Analytics 4 or Google Search Console to the Service, we receive and store an encrypted copy of the OAuth refresh token that Google issues. We do not store your Google account password and cannot access any Google services beyond the scopes you explicitly grant.
- Operational logs. Connection-test outcomes, query latencies, error messages, and similar diagnostics needed to operate, troubleshoot, and secure the Service.
3. Use of Google API services
KPI Dashboard's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
The Service requests the following Google scopes only when you connect a Google data source:
analytics.readonly— read-only access to Google Analytics 4 properties you own, used to render dashboards.webmasters.readonly— read-only access to Google Search Console verified sites you own, used to render dashboards.userinfo.email— the Google account email associated with the connected source, shown in the UI for clarity.
We do not transfer Google user data to third parties, do not use it for advertising, and do not allow humans to read it except: (a) with your explicit consent, (b) for security purposes, (c) to comply with applicable law, or (d) where the data has been aggregated and anonymized.
4. How we store data
- Hosting. The Service runs on infrastructure provided by Swiss Commerce. Application data is stored in Supabase-hosted PostgreSQL.
- Tenant isolation. Postgres row-level security policies enforce that data is visible only to members of the tenant that owns it. The Service code uses
current_tenant()checks on every query. - Encryption. Database passwords and OAuth refresh tokens are encrypted with AES-256-GCM. Network traffic between your browser, the Service, and our database is encrypted with TLS.
5. Sharing
We do not sell or rent personal information. We share data with third-party processors only to operate the Service:
- Google — for OAuth authentication and to query Google APIs you authorize.
- Supabase, Inc. — application database and authentication.
- Swiss Commerce hosting — application servers that serve this site.
6. Your choices
- You can revoke the Service's access to your Google account at any time at myaccount.google.com/permissions. This invalidates the stored refresh token and stops all data fetches from Google APIs.
- You can delete database sources, OAuth connectors, charts, and dashboards from within the Service. Deletion is immediate and cascading.
- You can request deletion of your account and all associated tenant data by emailing the contact below. We will action the request within 30 days.
7. Retention
We retain data only as long as your account is active or as needed to provide the Service. When you delete a source, connector, chart, or organization, the corresponding records are removed from our database immediately. Backups may retain residual copies for up to 30 days before being purged.
8. Security
We apply industry-standard practices: TLS in transit, AES-256-GCM for sensitive fields at rest, least-privilege database roles, and tenant-scoped row-level security. No system is perfectly secure. Report any suspected vulnerability to the contact below.
9. Children
The Service is not directed to children under 16, and we do not knowingly collect personal information from children. If you become aware that a child has provided us personal information, please contact us so we can remove it.
10. Changes
We may update this policy from time to time. Material changes will be announced in-app or via email. Continued use of the Service after a change constitutes acceptance.
11. Contact
Questions, requests, or complaints? Email privacy@scbw.com.