AquariumHQ
Search

Privacy and analytics

What AquariumHQ measures, what it stores in your browser, who else sees it, and how to change your mind.

The short version

AquariumHQ has no accounts, no logins and no server that remembers you. Every page is built in advance and served as a file. The only thing it would like to measure is which pages get read and which questions it failed to answer, and it does not measure even that unless you say yes.

Nothing you type is recorded. Search runs entirely inside your browser against an index that is part of the page, so a query never reaches a server in the first place — not AquariumHQ’s, and not Google’s.

Your choice

You have not decided yet, so analytics is switched off.

Nothing is stored until you choose. The current policy is version 1.

Switching analytics off stops AquariumHQ sending anything further and tells the Google tag to stop collecting. Any cookie Google has already set on your device is removed by clearing this site’s data in your browser — AquariumHQ cannot verify it has deleted every one, so it does not claim to.

If your browser blocks storage, this control still works for the page you are on but cannot remember the answer, so you will be asked again. That is the correct behaviour rather than a fault: a browser that will not store a preference has not agreed to anything.

This is privacy policy version 1, in effect from 2026-08-12. Your answer is recorded against the version. If AquariumHQ ever materially changes what it collects, the version goes up and the question is asked again, rather than the old answer being reused for something new.

What is switched on right now

This section is generated from the running configuration rather than written by hand, so it cannot describe a state the build is not in.

Google Analytics 4 is active on this build. With your permission it receives the events listed below, and no others.

A second destination — HEKNO Analytics, an internal service operated by the same people who operate AquariumHQ — is supported by the code but is not configured on this build, so nothing is sent to it.

The two categories

Two, because there are two. A longer list would be an invented choice.

CategoryOptional?What it covers
NecessaryNoThe single value that records this choice, so the banner does not ask again on every page.
AnalyticsYes — off unless you allow itAnonymous measurement of which pages are read and which questions AquariumHQ could not answer, sent to Google Analytics 4.

Google Analytics is classified as analytics, not as necessary. It is genuinely optional: the catalogue, the compatibility engine, the calculators and the evidence panels all work identically whether you allow it or not.

Cookies and browser storage

AquariumHQ itself sets no cookies. It writes two values to browser storage, which is a different mechanism — storage is not sent with requests and cannot be read by a server. Google Analytics does set cookies, once it is live and once you have allowed it.

NameTypeSet byCategoryWhat it holdsHow longWhen
aquariumhq.consentlocal storageAquariumHQnecessaryRemembers your analytics choice so the banner does not ask again on every page, and records which version of this policy you answered. The word granted or denied, the policy version number, and the date you chose. Nothing that identifies you.Until you clear this site's data in your browser.Written only when you choose Allow or No thanks.
aquariumhq.session-idsession storageAquariumHQanalyticsGroups the events of a single visit together so that ten page views by one reader are not counted as ten readers. A random identifier generated in your browser. It is not derived from anything.Destroyed when the tab closes, and deleted immediately if you switch analytics off.Created only after you allow analytics, and only when a HEKNO analytics endpoint is configured.
_ga, _ga_<property>cookieGoogle Analytics 4analyticsGoogle's own measurement cookies. They let Google distinguish one browser from another so that visits can be counted. A randomly generated client identifier and a timestamp, set by Google's script on this site's domain.Up to two years, set by Google rather than by AquariumHQ.Only if you allow analytics AND the Google tag is switched on for the build you are reading. It is switched off during the pre-launch beta, so no such cookie exists yet.

Clearing this site’s data in your browser removes all of it, including your recorded choice, which resets the banner.

What is measured — all 11 of them

This is the complete list. It is read from the event catalogue in the source, so it cannot be out of date, and nothing outside it can be sent: an event that is not defined here has no definition to send.

EventWhy it existsWhat it carries
page_viewedWhich parts of the catalogue are read, and are the indexable ones the read ones?pageFamily, indexable, entityId
entity_viewedWhich organisms, plants and problems attract the most interest?entityId, kind
internal_searchDoes search resolve what people ask it, and does the ambiguity notice fire usefully?resultBand, resultCount, queryLength, ambiguityShown
search_returned_nothingWhat is AquariumHQ being asked for that it cannot answer at all?queryLength, wordCount, ambiguityShown
search_result_selectedIs the right answer near the top, or are people scrolling past it?kind, rank, resultBand
compatibility_assessedWhich compatibility answers are actually consulted, and how often is the honest answer 'insufficient evidence'?surface, verdict, confidence, concernCount, conditionCount, limitationCount
tool_usedWhich calculators are actually used, and which reject the input people give them?toolSlug, outcome
evidence_openedDoes anybody open the evidence? The transparency argument depends on the answer.disclosure, pageFamily
source_openedWhich authorities do readers go and check for themselves?sourceSlug, tier, pageFamily
share_performedWhich pages are worth passing on? Nothing about who they were passed to.method, pageFamily
consent_grantedIs the banner or the settings page where people actually decide?surface, policyVersion

No free text, structurally

Every one of those parameters is a fixed choice from a list, a whole number within bounds, a yes/no, or a page address AquariumHQ itself publishes. The code that defines events offers no way to declare a text field, so a search query, a note or a message cannot be attached to an event even by mistake. A test checks this by trying to push a sentence into every field of every event.

What was considered and rejected

Not collectedWhy not
search_query_textA raw aquarium search can contain a location, a shop, a person or a photograph description. There is no field shaped to hold one and there will not be. Length band and word count answer the same editorial question.
scroll_depthWould not change an editorial decision. Reading position is not comprehension, and the pages are deliberately long reference documents.
time_on_pageRewards the wrong outcome. A reader who finds the ammonia answer in nine seconds is the success case, not the failure case.
disclosure_closedEvery open already fires. Pairing it with a close doubles the volume and answers nothing extra.
calculator_input_valuesTank dimensions and test-kit readings are the reader's own data. AquariumHQ has no product question that needs them.
outbound_urlThe source slug already identifies the destination and cannot carry a query string.
consent_deniedCannot be transmitted by a system that respects the refusal it describes.
user_idAquariumHQ has no accounts and will not recognise a returning reader.
error_boundary_stackA stack trace is free text and can contain page state. Errors belong in the browser console and in the build, not in an analytics payload.

Who else is involved

One third party, and only if you allow analytics: Google, through Google Analytics 4. When it is live and permitted, your browser fetches Google’s script and sends it the events above. Google receives your IP address as part of making that request — that is how the internet works, not a choice AquariumHQ makes — and AquariumHQ asks it not to store one, disables Google Signals and disables advertising personalisation. Google processes the data on its own terms, in its own systems, and AquariumHQ cannot inspect or delete what it holds.

There is nothing else. No tag manager, no advertising, no heatmaps, no session replay, no embedded video, no social buttons, no third-party fonts and no third-party images. The site’s content security policy blocks outbound connections to anything other than itself, and it admits Google’s origins only on a build where analytics is actually live.

Changing your mind

  • Use the control at the top of this page, or the link in the footer of every page.
  • Switching analytics off takes effect immediately: AquariumHQ stops sending events and tells the Google tag to stop collecting.
  • AquariumHQ cannot prove it has deleted every cookie Google set, so it does not claim to. Clearing this site's data in your browser removes them.
  • Data already sent to Google before you changed your mind stays with Google, under Google's retention settings.

How little is collected, and why

AquariumHQ collects the smallest amount that answers a question it would act on. Every event in the table above has a question written next to it in the source, and an event that cannot answer one is refused at review. There is no user identifier, no fingerprinting, no cross-site tracking, no advertising identifier and nothing that persists between visits except your own recorded choice.

None of it touches the content. Popularity may eventually shape which species get researched next; it can never change what the evidence says, what a compatibility verdict is, or how a source is graded. How AquariumHQ decides what it publishes is a separate question from what it measures, and the two are kept apart deliberately.