About us
BeachCroatia exists because the official data about Croatian beaches is public, excellent, and almost unusable. Four separate bodies publish it, in four different shapes, none of them designed for someone standing on a road wondering whether the water at the next bay is clean and how cold it will be.
What we actually do with the data
We are not a mirror of any one source. Every beach page is a join across sources that are not published together:
- Water quality — the annual classification from the European Environment Agency's bathing-water dataset, shown next to the individual in-season test results from the Croatian national bathing water portal (IZOR). The two disagree more often than you would expect, because the annual grade is computed from four years of samples while the in-season result is from a single water sample. We show both and say which is which, rather than picking the flattering one.
- Sea temperature — the live reading from the Croatian Meteorological and Hydrological Service (DHMZ), matched to the nearest station and reported with the station name, the measurement hour and the distance, so you can judge how much it applies to where you are standing. Towns without a station say so.
- Long-term normals — see below.
- Beaches without a station or a test get neither. We leave the gap visible instead of interpolating a number into it.
The archive we had to ask for
The DHMZ live feed shows today. It does not show whether today is warm. To answer that we filed a formal information-access request under Croatia's Right of Access to Information Act and received the daily sea-surface observation archive: 140,969 station-days across 13 stations, the longest series beginning in 1959. It arrived as a spreadsheet, not an API, and it is not published anywhere in this form.
From it we compute the 1996-2025 monthly normal for each station, and that is what lets a page say how far today's reading sits from normal for the date instead of just repeating the number. Only six stations qualify — Rovinj, Pula, Rab, Šibenik, Split and Hvar — because we require at least 20 years with a complete month of readings before we will call something a thirty-year average. The other seven stations have shorter or gappier series, so they get no normal at all rather than a weak one presented as a strong one. That threshold is applied mechanically, not station by station.
We do the same for operator facts. Where a beach's parking, access or opening hours are not in any dataset, we ask the municipality that runs it in writing, and publish the answer with the date and the body that gave it.
What we deliberately do not do
- No rankings, no "top 10 beaches". Nobody at BeachCroatia has graded these beaches by taste, and pretending otherwise would be the least trustworthy thing on the site.
- No invented numbers. If a measurement is missing, the page says it is missing. If a reading is old, the page prints the date it was taken.
- No cookies, no trackers, no ad scripts. Not one third-party script loads on any page. See Privacy.
- No paid placement. Some activity and accommodation links earn a commission. They are appended to a page; they never reorder, filter or influence the data above them.
Limits worth knowing
- Official classifications lag the swimming season by roughly a year — the grade you see was computed from samples ending the previous autumn.
- A sea temperature is measured at a fixed station at a fixed hour. A shallow bay a few kilometres away can differ by more than a degree.
- Data is refetched several times a day; when an upstream feed is down, the page keeps showing the last real measurement with its real date rather than a fresh-looking guess.
- The site is built from public data by a small team and is not affiliated with, endorsed by, or speaking for DHMZ, IZOR, the EEA, or any municipality.
Who runs it
BeachCroatia is built and operated by Kingfisher Software d.o.o., Croatia. Corrections are welcome and acted on — if a beach, a reading or a source attribution here is wrong, write to info@beachcroatia.com and tell us what it should say. Full source list and licences are on Terms.