Technical audit · 28.09.2026

utilitas.ee

Website of the Utilitas energy group — district heating and cooling in Tallinn

The website of the Utilitas energy group — nine pages, 543 requests. Technically, the picture is restrained: a consent platform with a refuse button on the first screen, and Google Tag Manager loads but does not launch a single analytics or advertising tag. The discrepancies are in the wording. The banner immediately declares that using the site already means consent to all cookies. And the declaration lists the behaviour-recording service Hotjar as 'necessary' while not mentioning reCAPTCHA, which runs on every page.

Request timeline

+0 s · entering the homepage
The utilitas.ee homepage.
+0.2…+1.8 s · before any choice
Google reCAPTCHA (+0.2 s), the GTM-NW8C24Z container (+0.2 s), CookieScript (+0.7 s). reCAPTCHA immediately starts exchanging data with www.google.com.
+172…+255 s · eight subsequent pages
Homepage, district heating, careers, FAQ, contacts, prices, outages, whistleblowing: on each — reCAPTCHA with data exchange and the GTM container with no tags fired.
+246 s · outages page
Transition to utilitasou.my.site.com — a Salesforce service hosting the heating outages map.

Declared versus actual

✓ Utilitas is an energy group of 17 companies, including Osaühing Utilitas (12205523), AS Utilitas Tallinna Soojus (16791481), AS Utilitas Eesti (10419088) — declared
✓ Banner: by using the website, you agree to all cookies in accordance with the cookie policy — declared
✓ Declaration: 'Hädavajalikud küpsised' — including four Hotjar cookies — declared
✓ Declaration: 'Jõudlusküpsised' — Google Analytics (_ga, _gid, _gat_UA-126383421-1) — declared
✓ Declaration: 'Reklaamküpsised' — Hotjar, Meta (_fbp), YouTube, DoubleClick — declared
✓ Policy: transfers outside the EU — only with an adequacy decision or other safeguards (section 6.3) — declared
+ Google reCAPTCHA on every page — not declared
+ Salesforce as the platform for the outages page — not declared
+ Hotjar classified as necessary cookies — not declared

Transfer timings

+0.2 s www.google.com

reCAPTCHA api.js; not listed in the cookie declaration.

+0.2 s www.googletagmanager.com

GTM-NW8C24Z; launches no analytics or advertising tags.

+0.7 s cdn.cookie-script.com

CookieScript.

+1.6 s www.google.com

reCAPTCHA reload and clr — a service exchange repeated on every page.

Detected trackers

Indicators of GDPR non-compliance

Context

utilitas.ee is the website of the Utilitas energy group, which supplies Tallinn with heating and cooling. According to its privacy policy, the group comprises 17 companies in Estonia and Lithuania, including providers of vital services. Consent is managed by CookieScript.

The measurement is a single capture of nine pages: the homepage, district heating, careers, frequently asked questions, contacts, prices and contracts, outages, and whistleblowing. In total, 543 requests.

Processing is described by the Utilitas privacy policy and by the cookie declaration in the CookieScript banner.

Who receives data directly

Google — reCAPTCHA and Tag Manager. Salesforce — on the outages page. CookieScript — as the consent platform.

Declared versus actual

The technical side here is tidy. The banner’s first layer has two equally weighted buttons — accept all and refuse all — and the categories are switched off. Google Tag Manager loads on every page but did not launch a single analytics or advertising tag in the capture. The discrepancies lie in what the site tells the visitor.

First — the banner declares consent already given. Directly above the buttons it says: by using the website, you agree to all cookies in accordance with the cookie policy. If that were true, the “Keeldu kõigist” button would be meaningless. If it is not, the banner is misleading. Consent does not arise from someone opening a website — it is given by pressing a button. A visitor who trusts the text will conclude that everything has already been decided for them.

Second — the cookie declaration mixes up the categories. The “necessary” section — cookies set without consent — contains four Hotjar cookies. Hotjar is a service that records visitor behaviour: mouse movements, clicks, scrolling. It is not necessary for the site to work. Hotjar did not load in the capture, but the declaration serves as instructions for the consent platform: as soon as Hotjar is switched on, CookieScript will let it through without consent. Hotjar’s session cookies also appear among the advertising cookies, meaning the same service is described as both necessary and advertising.

Third — reCAPTCHA is not named. Google reCAPTCHA loads on each of the nine pages before any choice and regularly exchanges data with www.google.com. It does not appear in any category of the declaration.

Proven: refusal is available on the first layer. The “Keeldu kõigist” button in screenshots 1–3, categories switched off.

Proven: the banner declares use of the site to be consent. The banner text in screenshot 2.

Proven: no analytics or advertising tags fired in the capture. Not a single request to Google Analytics, Meta, Hotjar, DoubleClick, or YouTube.

Proven: reCAPTCHA runs on every page and is not listed in the declaration. Requests to www.google.com on all nine pages; a search of the saved declaration.

Not established: the decision in the banner. CookieScript does not send the decision to a server, so the file does not show whether one was made. The absence of analytics tags is consistent with refusal or with no decision.

Boundaries of this observation

The measurement covers the site’s public pages. Customer self-service was not examined. The observation records browser behavior, not server-side processing. The file has been published cleaned: Cookie headers and script bodies were removed.

Legal assessment falls to the competent authority — the Andmekaitse Inspektsioon.

Conclusion

Utilitas has set up consent correctly on the technical side: refusal on the first screen, and analytics and advertising stay silent in the capture. But the wording contradicts the mechanism. The banner declares consent given by the mere act of using the site. The declaration lists a behaviour-recording service among the necessary cookies — exactly where it would run without consent. And reCAPTCHA, which runs on every page, is not named at all.

Remedy: remove the sentence about consent through use of the site from the banner; move the Hotjar cookies from necessary to analytics; add Google reCAPTCHA to the declaration, or load it only on pages with forms.

Evidence

How to verify: download the file and compute its checksum — sha256sum file.har (Linux, macOS) or certutil -hashfile file.har SHA256 (Windows); it must match the one shown. The conclusions apply to the scope of this measurement — see the limitations of the method.

Original (audit)
HAR file: ee/utilitas-ee-2026-09-28.har
SHA-256: 368a5763bed8f369fa0d47f77de944853521d589f600974dfacc94293dfd0f36
Screenshot
Скриншот интерфейса
The compact CookieScript banner: categories switched off, 'Nõustu kõigiga' and 'Keeldu kõigist' · 28.09.2026
Скриншот интерфейса
The expanded banner: 'Meie veebisaiti kasutades nõustute … kõikide küpsistega' above the refuse button · 28.09.2026
Скриншот интерфейса
The cookie declaration in the banner: Meta, YouTube, and DoubleClick among advertising cookies · 28.09.2026
Скриншот интерфейса
The utilitas.ee site footer with the group's contacts · 28.09.2026
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.