Privacy Policy
Effective Date: April 26, 2025
1. Introduction
Welcome to VeritaMetrics. This Privacy Policy explains how Chelsea AI Ventures Ltd. ("we," "us," or "our") collects, uses, stores, and protects information in relation to our privacy-first analytics service, VeritaMetrics, our website (veritametrics.com), and related services (collectively, the "Services").
Our core philosophy is privacy-first. We aim to provide valuable website analytics while minimizing the collection of personal data, especially concerning visitors to websites that use VeritaMetrics ("End-Users").
This policy covers:
- Information collected from End-Users via the VeritaMetrics tracking script.
- Information collected from visitors to our own website ("Site Visitors").
- Information collected from our registered customers ("Customers").
2. Information from End-Users
When a website you visit uses VeritaMetrics analytics, we collect the following information on behalf of our Customer (the website owner):
- Page Context: The specific URL visited and the Page Title.
- Traffic Source (Referrer): The URL of the page the user was on immediately before clicking a link to your site. We use this for attribution, but we do not have access to history prior to that link.
- Device Context: Browser type, Operating System, and Device type (e.g., Mobile vs Desktop).
- Approximate Location: Country, Region, and City derived from the IP address, which is not written to the row. Our geolocation cache keeps the address as a key for up to 24 hours.
- Ephemeral Visit ID: A salted SHA-256 hash that takes the UTC date as one of its inputs, so a different ID is issued each day. The salt is itself replaced daily and deleted 48 hours later. Nothing we store carries one day's ID into the next.
Our Pseudonymization Process
To protect End-User privacy while still providing valuable analytics, we employ sophisticated pseudonymization techniques:
- IP Address Handling: The address arrives with the request, derives the `visitId`, and feeds the approximate location lookup. It is never written to a pageview or event row. Before it enters the hash we cut it to its network block, the first three octets for IPv4 (a /24) and the first three groups for IPv6 (a /48), so the full address is never hashed. The location lookup still uses the full address.
- Where the Address Goes: The address stays in memory for the request and is not stored on any analytics row. It leaves the handler in two places: the network lookup sends it to our geolocation provider, and that result is cached under the address as a key for up to 24 hours. When the lookup fails, the address is also written to our server logs; removing that is planned.
- Daily Identifier Reset: The `visitId` is a SHA-256 hash whose inputs include the UTC date, so a new ID is issued at 00:00 UTC and nothing we store carries the previous day's ID forward. The secret salt mixed into the hash is replaced with 16 fresh random bytes at the same time each day.
- Salt Deletion: A retired salt is deleted once it is 48 hours old. We keep it that long, rather than discarding it at once, because a visit that starts before 00:00 UTC and continues after it is resolved against the previous salt so it counts as one visitor rather than two.
- One-Way Hashing: We create the `visitId` with SHA-256, which cannot be read back to recover the inputs. One limit, and the reason the salt is deleted: while a salt still exists, anyone holding it can test a guessed IP and User-Agent against a stored ID and see whether it matches. Once it is deleted, the IDs computed under it can no longer be reproduced from any guess.
Crucially, our architecture enforces privacy:
- Zero-Cookie Transmission: Our tracking script is sandboxed (`credentials: omit`). It is technically incapable of reading, transmitting, or storing cookies on the End-User's device.
- Never on a Stored Row: IP addresses are used during the request for geolocation and hashing. No IP address is written to a pageview or event row; the geolocation provider's answer is cached under the address for up to 24 hours.
- No Cross-Site Tracking: Because we do not use persistent IDs, we cannot track users across different websites or devices.
3. Information from Site Visitors
When you visit our website (veritametrics.com):
- Analytics: We use our own VeritaMetrics service to collect anonymous usage data (as described above).
- Strictly Necessary Cookies (Dashboard Only): If you log into the VeritaMetrics dashboard, we use secure, HTTP-only cookies for authentication (`auth_session`) and interface preferences (e.g., `currency`). These are essential for the service to function and are not used for advertising or behavioral tracking.
- Contact Forms: If you email us, we store your message to reply to you.
4. Information from Customers
To provide our Services, we collect the following from our registered Customers:
- Account Information: Name, email address, company name (optional). Used for login, communication, and service administration.
- Website Information: Domain(s) of the website(s) where you install the VeritaMetrics tracking script.
- Billing Information: We use a third-party payment processor. We do not store full credit card details.
- Usage Data: Information about how you use the VeritaMetrics dashboard to improve our service.
- Configuration Preferences: Including privacy settings, data retention periods, and legal basis choices.
5. Legal Basis for Processing
Because VeritaMetrics sets no cookies and keeps no persistent End-User identifier, there is less for your compliance analysis to cover. Two separate questions still have to be answered, and they come from two different instruments:
GDPR lawful basis: Legitimate Interest (Art. 6(1)(f))
Most customers process our analytics data under Legitimate Interest. The data is limited to analytics, the End-User identifier changes every 24 hours, and no cross-site identifier is produced, which is the balance Art. 6(1)(f) asks a controller to strike. This is a GDPR lawful basis, and it answers the GDPR question only.
- No persistent user profiling.
- No cross-site End-User identifier: the website's ID is mixed into the hash.
- The End-User identifier changes every 24 hours.
ePrivacy: the separate question about banners
Whether you need a consent banner is governed by ePrivacy Art. 5(3), and by PECR in the
UK. That rule covers storing or accessing information on a visitor's device whether or not
the information is personal data, and Legitimate Interest is not one of its available
grounds, so a GDPR lawful basis cannot settle it. Our script sets no cookies. It writes
three short-lived keys to sessionStorage, cleared when the tab closes, and it
writes to localStorage in two cases: to record an opt-out a visitor asked for,
and to hold a batch of events that failed to send until it arrives or 24 hours pass. Whether
that brings you inside an exemption depends on your jurisdiction and the rest of your site.
Our position on banners, and what cuts against it
Most customers run VeritaMetrics without a consent banner. We have not found an enforcement action anywhere against a website operator for using a cookieless analytics tool without one. Published decisions are an incomplete record, so read that as "we did not find one" rather than "none exists".
Three things weigh against the position, and you should know them before relying on it:
- The EDPB reads Art. 5(3) as covering an IP address unless you can show it did not come from the visitor's device (Guidelines 2/2023 v2.0, paragraph 55). Setting no cookies does not by itself place a script outside the rule.
-
Our script writes three keys to
sessionStorage, and in two cases one tolocalStorage: an opt-out a visitor asked for, and a batch of events that failed to send. The browser clears the first three when the tab closes and we delete the failed batch once it arrives or after 24 hours, and every one of them is still a write to a visitor's device. - The French audience-measurement carve-out requires UTM and campaign collection switched off, visit counts rounded to the nearest ten, and a durable opt-out link (the July 2025 self-assessment grid published by the CNIL). We now ship an opt-out that persists across visits, but we still collect UTM parameters by default and report exact counts, so we do not meet that grid today.
This is our reading of the law, and it is not legal advice. Whether your own site needs a banner depends on your jurisdiction, on what else runs on your pages, and on how a regulator reads a question the EDPB and the Court of Justice are currently split on. Confirm it with your own legal adviser before you rely on it.
Optional: Consent Integration
Our script works with your existing Consent Management Platform (CMP). If you choose to block analytics until consent is given, our script respects that decision.
6. How We Use Information
- To Provide & Improve Services: Operate the analytics platform, generate reports for Customers, administer accounts, improve features.
- To Communicate: Respond to inquiries, send service updates, billing information, and (with consent) marketing materials.
- For Billing & Account Management: Process payments and manage customer accounts.
- For Security & Compliance: Protect against fraud, abuse, and ensure adherence to legal obligations.
7. Data Sharing and Third Parties
We do not sell personal data. We may share information with trusted third-party service providers necessary to operate our Services, under strict confidentiality agreements:
- Infrastructure Providers: Cloud hosting and database providers located in the EU for core analytics processing.
- Payment Processors: For handling customer payments.
- Geo-IP Lookup Service: To derive location from momentarily used IPs.
We only share the minimum information necessary for them to perform their function. We may also disclose information if required by law or to protect our rights.
8. Data Retention
- End-User Analytics Data: Customers can configure custom data retention periods. After this period, data is automatically deleted.
- Customer Account Data: Retained as long as the account is active and for a reasonable period afterward for legal and operational requirements.
- Site Visitor Data (Forms): Retained as long as necessary to address the inquiry.
9. Privacy Dashboard
VeritaMetrics provides a public-facing Privacy Dashboard for each website using our analytics service. This feature enhances transparency by allowing End-Users to see:
- What data is being collected
- How long data is retained
- The privacy practices specific to that website
- Options for controlling data collection
10. User Controls (No Cookies)
The architecture limits what can be collected in the first place. These are the controls that follow from it, and one that is not built yet:
- The 24-Hour Firewall: The visitor ID is a SHA-256 hash that takes the current UTC date and a secret salt as two of its inputs, so the same End-User is assigned a different ID once the date changes at 00:00 UTC. Nothing we store carries the previous day's ID forward. The website's own ID is another input to that hash, so the same End-User also gets a different ID on every other site we measure.
- Daily salt rotation: A scheduled job replaces the secret salt with 16 fresh random bytes every day at 00:00 UTC, then deletes every salt older than 48 hours, keeping only the current salt and the one it replaced. We hold the previous salt for those 48 hours so a visit that spans midnight is counted once rather than twice. Once a salt is deleted, the visitor IDs computed under it can no longer be recomputed, including by us, because the secret that produced them no longer exists. While a salt is still live, someone holding it could test a guessed IP address and User-Agent against a stored ID to see whether the two match, which is what the deletion ends.
- Browser privacy signals: Our script does not yet read Global Privacy Control or "Do Not Track". Support for both is in development. Until it ships, do not rely on either signal to stop collection on a site running VeritaMetrics.
- Opt-Out Support: Customers can implement a simple opt-out mechanism that suppresses the tracking script entirely for specific users.
11. Data Security
We implement appropriate technical and organizational measures to protect information against unauthorized access, loss, or alteration. These include:
- Encryption of data in transit (HTTPS) and at rest
- Role-based access controls for dashboard users
- Regular security audits and vulnerability testing
- Secure infrastructure with industry best practices
12. Your Rights (GDPR/CCPA)
Depending on your location, you may have rights regarding your personal data (Access, Rectification, Erasure, etc.).
End-Users: As we do not store identifiable personal data about End-Users, requests should be directed to the respective website owner (our Customer).
Customers & Site Visitors: To exercise your rights, please contact us at privacy@veritametrics.com.
13. International Data Transfers
Analytics data collected from End-Users via our hosted VeritaMetrics service is processed and stored within the European Union (EU). If you are a Customer outside the EU, your account information may be processed by us or our third-party providers in the EU. We rely on appropriate safeguards like Standard Contractual Clauses (SCCs) where necessary.
14. Self-Hosting
If a Customer uses the VeritaMetrics self-hosting option, the Customer is solely responsible for the collection, processing, storage, security, and compliance of all data within their own environment.
15. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify Customers of significant changes via email or within the Service. The "Effective Date" at the top indicates the latest revision.
16. Contact Us
If you have any questions about this Privacy Policy or our privacy practices, please contact us at:
Data Protection OfficerChelsea AI Ventures Ltd.