01Who we are

DMARCmetric ("we", "us") operates the DMARC monitoring service at dmarcmetric.com. We are the data controller for the personal data described in this policy.

The data controller is Digiport OÜ, registered at Viru väljak 2, Tallinn 10111, Estonia. Estonia is a member state of the European Union, so the GDPR applies directly. The accountable contact for any privacy question is [email protected].

02What data we process

Account data

When you create an account we process the information you give us:

Billing data. Payments for paid plans are processed by Stripe; card details are entered on Stripe's hosted checkout and billing pages and never touch our servers — we never see, transmit or store a card number. We hold only billing metadata, never card details: your account's plan (and Scale package), its Stripe customer and subscription identifiers, and the subscription's status, billing interval, price and currency, renewal, cancellation and trial dates, and when these last changed. If you came to us from one of our ads, the amount, currency and time of each payment made in your account's first 100 days are also kept, until 100 days after you signed up, for the advertising measurement described below.

Workspace sharing

On a paid plan, the owner of an account can give other people access to one or more of its workspaces (the folders its domains are grouped in) by inviting their email address, and an admin of a workspace can invite members to it. Each invitation is for one workspace and one role, admin or member. Sharing keeps these records:

Inside the account, the list of people and invitations is shown only to the account's owner and to admins. The owner sees everyone with access, with their name, email address, workspaces and roles, and every invitation not yet accepted or canceled, with its address, workspace, role and expiry (and an internal reference to the person who created it); an admin sees the same for the workspaces they administer, and the owner's name and email address. Everyone given access is shown the account owner's email address, as the person to ask about the account's plan and about settings only the owner can change (such as keeping original report files). Everyone given access also sees the account's name, which titles the reports, alerts and notices we email them; the names of the workspaces shared with them and their role in each; the first name of the person who shared each one with them (or the owner's); whether their access is paused; and which alert types the owner has switched off. Anyone who has an invitation link can open it without signing in and see the invited address, the workspace's name, the inviter's name, the role and whether the invitation is open, expired, canceled, accepted or paused. Once you are signed in with a verified address, you also see the open invitations sent to that address, in any account, with the workspace's name, the inviter's name, the role, the expiry and whether it is paused. If the name on the inviter's account contains an email address, we do not hand it out: the invitation page and the invitation email say "A teammate" instead.

DMARC aggregate-report data

The core of the service is parsing the aggregate (RUA) DMARC reports that mail providers send about messages claiming to be from your domains. These reports are third-party-generated telemetry — we do not create them; receiving mail operators (Google, Microsoft, Yahoo and so on) generate and send them. For each sending source in a report we store the structured rows:

Aggregate reports carry no message content — no bodies, no subject lines, no recipient addresses. This is a property of the RUA format itself: reporters never send that data, so it never reaches us. See also Security and privacy at DMARCmetric and How long is my data kept?

TLS reports (TLS-RPT)

If you publish a TLS-RPT record that points to us, mail operators that SEND mail to your domain and support TLS-RPT (for example Google) email us a report for each day they sent you mail, saying whether they could deliver it to you over a secure connection. We generate none of it. From each report we keep in your account: the reporter and the period it covers; the kind of policy it describes; how many connections succeeded and how many failed; and for failures, the reason, the name and IP address of your receiving mail server and the IP address of the sending mail server. Reports name no messages and no subject lines; the only email address in them is the reporter's own contact address, which we do not keep in your account. We keep in your account only the parts of a report that are about your own domain; anything about another domain is left out. The email a report arrives in is deleted from our mail server after about 30 days (about 90 days if we could not process it). Reports are stored on every plan, so after upgrading you see the last 30 days straight away (a paused domain's reports are not stored); reading them is included with Starter. They follow your plan's retention (section 05).

On paid plans you can upload a logo for a domain so that mailbox providers can show it next to your mail (BIMI). We store each file exactly as you upload it, together with which domain it is for, when it was uploaded, which person uploaded it, a fingerprint (hash) of the file and the random address it is published at. Our server logs also record which person uploaded or deleted a logo, or uploaded a file that failed our logo checks. The logo is public: anyone with its address can download it without signing in, because that is how mailbox providers fetch it — upload only what you would put on your public website. Requests for it that reach our server, from a mailbox provider or anyone else, are recorded in our web server's access log with the requester's IP address, like every request to our server (section 05); requests answered from Cloudflare's cache (section 04) do not reach us. Because your BIMI record points to that address, it also shows publicly that the domain uses DMARCmetric. Serving the logo sets no cookie.

Website usage data

Our web server keeps a standard access log of the requests it serves — every website does — and that log records your IP address. We keep it to run and secure the service and it is rotated away automatically; section 05 states after how long.

Every 15 minutes we read that same log on our own server to count how many people visited our website, which pages they opened, roughly which country they came from, and which site linked to them. No third-party analytics service is involved and no analytics script runs in your browser. What that measurement keeps is listed below, and your address is not part of it.

Upgrade clicks

When you are signed in and click one of the links inside DMARCmetric that lead to upgrading — today, the links on the locked Mail transport security checks and on the locked Encrypted delivery (TLS-RPT) card on a domain's page, and the Host your logo link under a domain's BIMI check on Free — your browser tells our server, and we record that click on your account: which link it was, the domain page it was on, your plan at that moment and the time. We use it to learn whether those links help people decide to upgrade, by comparing it with whether the account later did.

Feedback surveys

From time to time we email a short survey about DMARCmetric. We record on your account that it was sent (and when, and any reminder), the stage your account was at — whether you had added a domain and received reports, Free or paid, and whether you came from one of our ads — together with your workspace, the date you signed up and the name of your first domain, and your answers, if you give any: the rating, the options you tick, anything you write, and when you answered.

Mail scanners open every link in a message, so to tell a person reading the survey from a scanner we also record each opening of the survey page: when it was opened, how long it stayed open, whether it was visible, whether a person (rather than a script) interacted with it, the score you clicked in the email if any, your browser's User-Agent string, your country, and the network your address belongs to — the first three parts of an IPv4 address or the first 48 bits of an IPv6 one, never the full address.

Verify DNS presses

When you press Verify DNS on the domain setup or domain settings page, your browser looks the record up itself through a public DNS-over-HTTPS resolver run by Google or Cloudflare (see section 04) and tells our server what it showed you. We store on that domain the time of the press, the result shown, and the time of the last press that showed the record as set up — so that, if a record later stops working, we can tell when it last looked right. A press that shows the record as set up also restarts the setup emails we send while a domain is waiting for its first report.

Check record, on a domain's Encrypted delivery (TLS-RPT) card, works the other way round: our server, not your browser, looks up which DNS servers host your domain and asks them directly for its TLS-RPT record. These lookups name your domain and its DNS servers, nothing else. When those servers give a clear answer, we store on that domain what they said — set up and sending reports to us, sending them somewhere else, not there, or there but unusable (and why) — and when, so the card can still show it after you reload the page. We also store the time of the last press, which limits how often the check can run. The result is stored without who pressed it: no user, no IP address and no copy of the record is kept with it.

Check again, in the BIMI section of a domain's settings page, has our server ask your domain's own DNS servers for the domain's BIMI record directly. When the page opens while you host a logo for the domain with us, and public DNS answers that the domain has no BIMI record or a single one pointing to none of those logos, the page also makes this check once by itself. These lookups by our server name your domain and its DNS servers, nothing else. What the servers say is sent back to the page and is not stored: our server holds it in memory for 10 seconds, so another press for that domain within that time gets the same answer. Our server log records which domain was checked, what kind of answer came back and how long it took — not who pressed it and not the record. Each press also has your browser read the domain's DMARC record again — and, for a subdomain with no BIMI record of its own, its parent domain's BIMI record — through public DNS, as described in section 04; when our server can't answer, your browser reads the BIMI record there too.

Advertising measurement

We run search ads. If you reached this site by clicking one of them, Google added a click identifier (gclid) to the link you followed. It is an advertising identifier: it identifies that click, and Google can relate it back to the search session that produced it.

It travels in the address bar only — we write nothing to your device to carry it, no cookie and no browser storage, which is why section 08 says what it says. If you go on to create an account, that identifier is stored on your user record so we can tell Google Ads which clicks led to a sign-up, to a verified domain, or to a payment. A visitor who never signs up leaves no trace of it: there is no record to store it on. The one short-lived exception, pressing Continue with Google, is described below.

Where you found us. When you create an account we also store, on your user record, the domain name of the site that sent you to us — for example google.com or bing.com, never the address of the page — or that you came to us directly, and, if you came through one of our ads, the campaign number Google added to the link. These travel the same way as the click identifier, in the address bar only, and are deleted on the same schedule (section 05). We use them to learn which searches, sites and campaigns bring people who sign up; they are not sent to Google or anyone else.

If you press Continue with Google. The click identifier, the site that sent you and the campaign number are not put in the link to Google. While you are on Google's page they wait on our server, in a temporary sign-in record that expires after ten minutes, so that they can be stored with a new account, or put back in the address of the page you return to if the sign-in does not complete. That record is deleted when your browser comes back from Google within five minutes, whether you approved or cancelled there; otherwise it expires after ten minutes and is deleted the next time our sign-in system clears out expired records. The values reach your user record only if a new account is created, which only the sign-up page does. The only thing we write to your device for this, until you are signed in, is the five-minute cookie described in section 08, which holds a random value, not these.

What Google receives is the identifier, the conversion type (sign-up, activation — your first verified domain — or paid), its timestamp and, for a paid conversion, the amount. It is served from a file on our own server that Google fetches on a schedule. Your name, your email address and your IP address are not in that file. We do not embed any Google advertising or analytics script on this site. Retention is in section 05.

03Why we process it & legal basis

We process the data above to provide the service, for the purposes below, and for the further purposes set out with their legal bases after them:

We frame this policy around the GDPR and rely on the following legal bases:

04Sub-processors

We use a small set of infrastructure providers to run the service. We do not sell your data or share it with advertisers.

ProviderPurposeLocation / note
Hetzner Application & database hosting Germany (EU) — the service and your data run on Hetzner infrastructure in Germany.
Cloudflare CDN, TLS termination and edge protection Web traffic passes through Cloudflare's edge and is TLS-encrypted between your browser and the service. Published brand logos are cached there for up to five minutes.
Postmark Email delivery Delivers every email our service sends — for example verification, password-reset and two-factor codes, domain-setup and DNS-health notices, reports and alerts, usage and product notices, surveys and workspace invitations. Replies we write by hand in our support mailbox do not go through Postmark. Receives the recipient address and email content needed to send — for a setup email, that includes the DMARC record your domain currently publishes; for an invitation, the inviter's name, the workspace's name and the invitation link. Postmark keeps a copy of each email it sends for about 45 days.
Zoho Support mailbox United States — receives the emails you send to our support or sales address and keeps them, with the replies we write to you by hand, which are sent from there. This is a transfer outside the EEA, governed as described in section 06.
Stripe Subscription billing & payment processing Processes payments for paid plans. When you first start a checkout, we send Stripe your account's name, the owner's email address and our internal account identifier; you enter your billing details (name, billing address, VAT number if you give one, card) on Stripe-hosted pages. We receive only non-card billing metadata back.
MaxMind GeoLite2 Offline IP-geolocation dataset Not a live service. We load the GeoLite2 dataset into our own PostgreSQL database and resolve an IP address — a sending server's, a website visitor's, or the one an account signed up or signed in from — to a country with a local SQL lookup. No IP address is ever sent to MaxMind, or to any third-party geolocation service, at lookup time.
Google Ads Advertising measurement Fetches a conversion file from our server containing the click identifier described in section 02, the conversion type and time, and any paid amount — no name, email address or IP address. For this measurement, nothing is sent from your browser to Google: this site loads no Google advertising or analytics script.

Web fonts are served from our own origin. Until 2026-08-30 the pages of this site loaded their typefaces from fonts.googleapis.com and api.fontshare.com, which meant your IP address and browser string reached Google and Indian Type Foundry on every page load. Those files are now hosted by us, so that transfer no longer happens and neither provider appears in the table above.

DNS lookups go to Google or Cloudflare. When one of our pages checks a domain's DNS records — the domain setup page once you add a domain and the domain settings page as it opens (the record you publish now and, on setup, which company hosts your DNS), Verify DNS, the BIMI section's Check again, the dashboard's DNS checks, the domain health card and the free tools — your browser sends the lookup itself to a public DNS-over-HTTPS resolver run by Google (dns.google, 8.8.8.8) or Cloudflare (cloudflare-dns.com, 1.1.1.1). That resolver receives your IP address, the name being looked up and what your browser sends with any web request, such as the site the request comes from; its servers may be outside the EEA. These lookups do not pass through our servers. Our server also looks up the DNS records of the domains in your account and the domain of the email address you sign up with — through the same two resolvers, except Check record and the BIMI section's Check again, which ask your domain's own DNS servers directly; those lookups carry the domain name and come from our server's address, not yours.

Cloudflare Turnstile (a bot-challenge widget) is active on our sign-in, sign-up and password-reset-request forms. When one of those pages loads, the widget is fetched from Cloudflare and performs its check in your browser; it operates under the Cloudflare entry above. It is not used on the public tools or on any other page. Those three pages also record one diagnostic line per load — whether the widget rendered — as an ordinary request to our own server. It carries no form values, email address or token.

05Data retention

Report data is retained according to your account's plan. Since the launch of paid plans on 2026-07-16, dashboards and exports read at most your plan's retention window — currently 30 days of history on the Free plan and one year on Starter — and a scheduled job physically deletes stored report data only once it is older than your plan's window plus a 60-day grace period (roughly 90 days of storage on Free, about 14 months on Starter). The grace period means upgrading immediately reveals still-stored history. The purge covers report rows, TLS reports, the plain-English summaries derived from them, and alerts; forensic failure samples have their own fixed 30-day window.

Existing accounts are notified before the first scheduled deletion runs — nothing quietly vanishes from accounts that predate these windows.

Website usage data. The page-view records described in section 02 are kept for 400 days, so a twelve-month chart always has a full year behind it, and are then deleted automatically. The daily secret that distinguishes visitors within a day is deleted after 2 days. The raw web-server access log those records are derived from — the one that does hold your IP address — is rotated away after 90 days.

Sign-in records. The IP address held in the sign-in record described in section 02 is deleted 90 days after that sign-in — the same window as the raw access log above, because it is the same kind of data kept for the same reason. The sign-in record itself stays, without the address. The two-letter country described in section 02 is kept on your account for as long as the account exists and is deleted with it, so after those 90 days the country on your account is all we still hold about where you signed up and signed in from, along with the country noted for each remembered browser if you use two-factor authentication (see Cookies).

Advertising click identifiers. The gclid described in section 02 is deleted 100 days after the account was created. Google refuses a conversion reported more than 90 days after the click, so past that point the identifier can serve no purpose — and an advertising identifier kept for no purpose is exactly what this deletion is for. The record of where you found us (the referring site's name and the ad campaign number) is deleted at the same time, and so are the payment records kept for that measurement. All three automated deletions — the website-usage records, the sign-in addresses and these click identifiers — are monitored: a deletion that fails raises an alarm to us, and for the website-usage records and the sign-in addresses so does one that stops running.

Surveys and Verify DNS presses. Survey records — what was sent, your answers and the page openings — are kept for as long as your user account exists and are deleted with it. Because the survey record holds the name of your first domain as it was when we sent the survey, that name stays with the survey record if you later remove the domain, its workspace or the account, until your user account is deleted or you ask us to delete it. The Verify DNS record, the Check record result and the time of the last press live on the domain and are deleted when the domain is removed.

Brand logos. A logo is deleted when you delete it, or when its domain or the account is deleted. If the account moves to Free, logos already uploaded stay published until you delete them. If the user account of the person who uploaded a logo is deleted, the logo stays and no longer records who uploaded it; removing that person from the account does not change this. After a deletion, Cloudflare may serve a cached copy for up to five minutes, and mailbox providers keep their own copies. The server log lines about uploads and deletions stay in its system log until the oldest entries are removed to keep that log within its size limit.

Upgrade clicks. The click records described in section 02 are kept for as long as your account exists and are deleted with it — or earlier, with your user account, if that is deleted. Deleting a workspace or a domain does not delete them; deleting a domain only removes which domain page a click was on.

Support email. Emails you send to our support or sales address, and our replies, are kept in our support mailbox at Zoho, in the United States (section 04), for as long as they are useful to answer you, and deleted on request.

Workspace sharing. The records described in section 02 are deleted as follows. The daily job described below is monitored: if it fails or does not run, it raises an alarm to us.

Deleting a user account removes that person's own access and email settings at once. If they own an account, that account is deleted with them, and with it its invitations and send records. Invitations and send records in other accounts, including any that hold the deleted person's address, are not deleted early: they follow the schedule above. In those accounts, an invitation the deleted person created or accepted, and access they gave to others, stay, without the link to that person's user record; an invitation they accepted still holds their address until the schedule above deletes it.

Deletion on request is always available:

For the full detail on report-data retention, see How long is my data kept?

06International transfers

Your account and report data are hosted in Germany (EU) on Hetzner infrastructure. Web requests are served through Cloudflare's global edge network, which may route or terminate TLS at edge locations outside your country; report processing and storage remain on our EU hosting.

Our primary hosting is in the EU (Hetzner, Germany). Where a sub-processor (for example Cloudflare or Postmark) may process personal data outside the EEA, such transfers are governed by the European Commission's Standard Contractual Clauses (SCCs) and equivalent safeguards. As noted under Sub-processors, no IP address — a sender's or a visitor's — is ever sent to MaxMind — IP-to-country resolution is a local lookup inside our own database, so no IP data is transferred to a geolocation service.

07Your rights

Under the GDPR you have the right to:

To exercise any of these, email [email protected] from your account's address and a human will handle it.

One limit, stated plainly. The website-usage records in section 02 carry no identifier we can match to you — the value that distinguishes visitors is regenerated every day and its secret is deleted two days later. We therefore cannot find your past page views in order to show or delete them (Art. 11 and 12(2) GDPR). If you object to that measurement, email us and we will stop counting your visits from then on. Every other right above is unaffected, and this limit does not apply to your account or report data.

08Cookies

We use first-party cookies only, and only to sign you in. The essential one is the session cookie set when you sign in. It is flagged Secure (only ever sent over HTTPS) and is backed by a server-side session record, so signing out revokes it immediately. Apart from the tokens in links we email you, described below, there is no token stored in your browser for a rogue script to steal.

If you turn on two-factor authentication, two more appear, both part of the same sign-in: a short-lived cookie (ten minutes) that ties the code you enter to the password you just typed, and — only if you tick Remember this device — one that lets that browser skip the code. It lasts thirty days from your most recent sign-in on that browser and is renewed each time you sign in there, so a browser you keep using is not asked again. Both are Secure, signed and backed by a server-side record. The ten-minute one is cleared as soon as you finish signing in. A remembered browser stops skipping the code the moment you remove it under Trusted devices on your account page, forget all devices, or disable two-factor (a browser may keep the dead cookie until it expires); signing out alone does not remove it. Neither cookie identifies you to anyone but us.

So that you can recognise a remembered browser in that list, we note, when it is remembered and each time it signs in, its browser and operating system (from the User-Agent it sends) and the country that sign-in came from. We do not keep the IP address for this — only the country worked out from it — and the note is deleted together with the remembered device.

Pressing Continue with Google sets one more short-lived cookie, __Secure-better-auth.state, for five minutes. It holds only a random value, signed by our server, that ties Google's answer to the browser that started the sign-in. It is Secure and cannot be read by scripts on the page. It is cleared when Google sends you back to us, and in any case expires after five minutes.

Apart from these cookies, our pages keep a secret in your browser only when you open a link we emailed you that carries one. The pages opened from an email-verification, password-reset or survey link take the token out of the address bar as soon as they open (if your browser does not allow that, it stays in the address bar) and keep it with that page in the tab, so that reloading the page still works, until you close the tab (the password-reset page lets go of it once your new password is saved and it moves you on to sign in); your browser's own history list may still record the link as you opened it. The invitation page does the same with an invitation link's secret and, if you are not signed in, keeps it in that tab's session storage instead (if your browser refuses that storage, the copy kept with the page stays), so that it can finish after you sign up or sign in; these copies are removed when you join on the invitation page, when it finds that the invitation is no longer open, or when you choose to set up your own workspace instead, and if you leave it without finishing there, a copy can stay in that tab until you close it (section 02). None of these is a cookie. Your browser removes them when you close the tab, unless it later restores or duplicates that tab, which can bring them back with it.

We use no analytics, advertising or tracking cookies.

That sentence is narrower than it may sound, and we would rather say so than hide behind the word "cookies": we do measure which ads bring sign-ups (section 02). That measurement carries an identifier in the link rather than in your browser, so there is nothing stored on your device to consent to — but it is advertising measurement, and naming it is the honest thing to do. Because every cookie we set is strictly necessary to run the service, no cookie-consent banner is required — there is nothing non-essential to consent to.

This still holds now that we measure website usage (section 02): that measurement reads our own server's log and neither stores nor reads anything on your device, which is what consent under the ePrivacy rules is about. The Cloudflare Turnstile widget on our sign-in, sign-up and password-reset-request pages is a security measure rather than a tracking one, and is described in section 04.

09Security

We describe only what is true today. DMARCmetric does not currently hold SOC 2 or ISO 27001 certification, and we make no such certification claims. See Security and privacy at DMARCmetric for the fuller picture.

10Changes & contact

We may update this policy as the product evolves; the "last updated" date at the top reflects the current version. For any privacy question, to exercise your rights, or to request deletion, contact [email protected].