Skip to content

Legal

Data processing agreement

When someone walks into your flat, the data is yours and we process it on your behalf. This is the contract that governs it, article 28 GDPR, in a language you can read.

Last updated: 9 September 2026

1. Subject matter

The processor processes personal data on behalf of the controller for a single purpose: providing the web analytics service contracted on pisi.to. Nothing else. We do not use your visitors' data for any purpose of our own, we do not sell it, we do not share it and we do not combine it with other customers' data.

2. Parties

Controller: you, the customer who owns the pisi.to portal, as owner of the websites you measure.

Processor: Beaglo Labs S.L., a Spanish company, with the identifying details stated in the privacy policy and on your invoice. Contact for anything about this agreement: privacidad@pisi.to.

3. Duration

The agreement takes effect when the portal is created and lasts for as long as the subscription does, free trial included, plus the retention and deletion period of clause 12. Aggregates of a deleted flat are fully purged after 30 days.

4. Nature and purpose of the processing

Aggregate audience measurement of the controller's websites: visitor and visit counts, page views, bounce, duration, time on page and scroll, traffic sources, approximate location down to city level, browser, OS, device and language, and the conversions the controller defines as goals.

Processing consists of receiving the event, deriving those dimensions in memory, storing the event with no identifying data and aggregating it by hour and by day. There are no profiles, no automated decisions and no cross-site tracking.

5. Types of data and data subjects

The data subjects are the visitors of the controller's websites.

The data is detailed in the annex at the end of this page. In short: the IP address and the User-Agent are read in memory and never stored; from them we derive country, region, city, browser, OS, device type and a visitor identifier that expires every day. Plus the URL without query string except utm, the referrer, the language and the window size.

  • The processor does not process special categories of data (article 9 GDPR) nor children's data in any targeted way. The tool has no way of knowing who is visiting.
  • The controller undertakes not to send identifiable personal data in custom event properties (props): no emails, no names, no identifiers of its users. Ingest does not filter them out.

6. Obligations of the processor

Beaglo Labs S.L. undertakes to:

  • Process the data only on the controller's documented instructions, which are this agreement and the portal's configuration, unless a legal obligation requires otherwise; in that case we will tell you beforehand, if the law allows it.
  • Ensure that anyone with access to the data is bound by a duty of confidentiality.
  • Apply the technical and organisational measures of article 32 GDPR, described in clause 9.
  • Not engage another processor without authorisation. The sub-processors in clause 7 are authorised in general; any change is notified 30 days in advance with a right to object.
  • Assist the controller in responding to data subjects' rights, subject to the article 11 GDPR caveat explained in clause 10.
  • Assist the controller with data protection impact assessments and prior consultations with the supervisory authority that concern the service.
  • Notify any personal data breach as set out in clause 11.
  • At the end of the service, delete the data or return it to you, at your choice, as set out in clause 12.
  • Make available the information needed to demonstrate compliance with these obligations and allow audits, once a year or after an incident, with reasonable notice and without compromising other customers' security.

7. Sub-processors

These are the third parties involved in the service. Only the first one touches visitor data; the other two process your customer data exclusively. The current list is published in the privacy policy and any change is announced 30 days ahead.

  • Supabase, self-hosted on Hostinger servers in Paris (France): database, authentication and storage of events and aggregates. Data does not leave that infrastructure.
  • Stripe Payments Europe (Ireland): billing and payments. It only processes your customer and billing data, never visit data.
  • Resend: transactional email (sign-in links, invitations, notices). It only processes your email address.
  • Cloudflare: not currently used in production. Should it ever enter the chain, it will be notified as a sub-processor change with the 30 days' notice of clause 6.

8. International transfers

There are no transfers of visitor data outside the European Economic Area. Ingest, database and aggregation are in the European Union (France).

Stripe and Resend may have administrative access from outside the EEA under the European Commission's standard contractual clauses; in both cases they only touch customer data, never visitor data. Should a transfer of visit data ever become necessary, it would be notified in advance and covered by standard contractual clauses.

9. Security measures

The article 32 GDPR measures we apply today:

  • Encryption in transit with TLS and at rest in the database.
  • Per-customer isolation with Row Level Security at the database level, not just the application level.
  • Access to the production environment with multi-factor authentication, limited to strictly necessary staff, with credentials stored hashed.
  • Daily backups with a monthly restore test.
  • Proxy logs keep no IP addresses beyond 24 hours and error logs never include request bodies.

10. Data subjects' rights

If a visitor asks you for access, rectification or erasure, we will help you answer. But you should know in advance what you will be able to tell them: neither you nor we can locate their data, because no field identifies them. We do not store their IP, there is no cookie with their identifier and the number their visit was counted with was computed with a salt destroyed that same night.

This is the case of article 11 GDPR: when the data subject cannot be identified, there is no obligation to keep additional information just to be able to. It is explained at length in the privacy policy and on the opt-out page, which you can link from your website.

11. Personal data breach notification

If we detect a security breach affecting data processed on your behalf, we will notify you without undue delay and, in any case, within 24 hours of becoming aware of it, at the email addresses of your portal's members.

The notification will include what we know at that point: the nature of the breach, the categories and approximate volume of data affected, the likely consequences and the measures taken or proposed. What we do not know yet we will fill in as we go. We will help you with whatever you need to notify the supervisory authority within the 72 hours of article 33.

12. End of the agreement

When the subscription ends, or when you delete a flat or the portal, you have 30 days to export whatever you want from the dashboard as CSV. After that, events and aggregates are fully purged, backups included in their normal rotation.

Raw events already delete themselves after 30 days during the life of the service, so at cancellation all that remains are aggregates with no personal data in them. If you prefer return over deletion, ask at privacidad@pisi.to before the deadline.

13. Governing law

This agreement is governed by Spanish law and by the GDPR. The Spanish courts have jurisdiction over any dispute. Each party's liability is limited as set out in the terms of service; nothing written here reduces the rights the GDPR grants to data subjects.

Annex: data processed by the key

What comes in, what is derived and how long it lasts, with the same detail as the data page.

DataProcessingRetention
IP addressRead from the request and used in memory to derive country, region and city with a local database, and as an ingredient of the daily identifier. Discarded before anything is written.None
User-AgentRead from the request and used in memory to classify browser, OS and device and to filter bots. The full string is not stored.None
Visitor identifierSHA-256 hash of the daily salt, the flat, the IP and the User-Agent, truncated to 64 bits. The salt rotates every night and the previous one is destroyed, so it cannot be reversed or recomputed.30 days
Derived dataCountry, region, city, browser, OS, device, window size, language, host and path without query string except utm, classified referrer, timestamp in UTC.30 days raw, 24 months aggregated
Event propertiesOnly if the controller sends them. Up to 30 keys per event, with no personal data under the commitment of clause 5.30 days raw, 24 months aggregated