IntroFortID 2026
Baby OSINT
Four questions about a Zagreb protest: its name, a food festival whose organisers backed it, the weekday with the most public-bike rides, and a peak bike count. A year-off date trap and a narrow weekday margin are the hard parts.
What this one teaches
- Dating the event first, so every later lookup is pinned to the right year.
- Using the exact clauses of a question as the tiebreaker when two candidates both fit.
- Turning a public statistics dashboard into a per-weekday average, and checking how much of the answer depends on a few unusual days.
Hints
Stuck? Open one hint, then go back and try again before reading the next.
Hint 1 of 2Show
One of the food festivals you will find ran a year before the event. Check the year.
Hint 2 of 2Show
The question about the festival has a second clause about its organisers. It is there to separate two candidates.
Full solution below. Spoilers ahead.
Task description
Answer these questions to become an honorary Purger:
- What is the exact official name of the event in the image?
- Which food festival was taking place in Zagreb on the same date? The festival was held nearby, and its organizers publicly expressed support for the event in the image.
- This video shows our mayor attempting to ride one of the newly introduced public bikes. Which day of the week has the largest average number of rides?
- What was the highest number of those bikes recorded at one location at the same time?
Flag format:
FortID{q1:q2:q3:q4}
For each answer:
- use lowercase English letters
- replace spaces with underscores
- omit punctuation and special characters
Example:
FortID{barrakud_croatia:inmusic_festival:day:8856}
The task comes with an image of an event and a video of the mayor on a public bike. The four answers are joined with colons, and each one has to be normalised exactly as the format says before it goes in.
This writeup leans on my own notes from solving it. Where a figure comes from a public source I could re-check, I say so; where it comes from my own data pull at the time, I say that too, because a couple of the answers rest on data the challenge expected me to collect live rather than cite.
Dating the event first
Every later question hangs off the date, so I fixed that before searching for anything else. The event in the image is a walking protest, “Hodaj za Liku, hodaj za Hrvatsku”, held in central Zagreb on 5 September 2026, a Saturday. Public coverage from that day matches: a procession from Trg kralja Tomislava to Ban Jelačić Square, organised by citizens’ initiatives from Lika and Gospić. With the date and weekday nailed down, question 2 becomes “what food festival was on in Zagreb that Saturday” and question 3 has a fixed calendar to average over.
The festival, and the year-off trap
A search for food festivals in Zagreb around early September turns up a Food Truck Festival running in early September, but the edition that surfaces first ran in 2025, a year before the protest. Same week, wrong year. This is the trap the first hint points at: the obvious result is off by a year, and it fails the “same date” clause outright.
Two food-related festivals actually overlapped the protest in 2026: the ZeGeVege Festival and the Food Film Festival. ZeGeVege, the long-running vegan and sustainable-living festival, runs the first weekend of September in central Zagreb (the 2026 edition over 4 to 6 September, so 5 September falls inside it and it is held near the protest route). That satisfies the date and the “held nearby” clause, but so could the Food Film Festival, which is where the question’s second clause does the work.
The second clause is the tiebreaker: the festival whose organisers publicly expressed support for the event. The ZeGeVege organisers backed the protest and offered discounts to participants on 5 September 2026, which is what picks ZeGeVege over the other candidate.
The weekday with the most rides
The public bike system publishes daily ride counts on its statistics dashboard (bajs.informacija.hr). I copied the daily totals for 11 September to 9 October 2026, 29 days, and averaged them by weekday. The ride numbers below are my own transcription from that dashboard on the day I solved it; they are the part of this answer that is not independently citable now, so the arithmetic is reproducible from them even though the underlying figures are a personal data pull.
from datetime import date
from collections import defaultdict
rides = [(10,9,14492),(10,8,12781),(10,7,17541),(10,6,17467),(10,5,15805),(10,4,11445),
(10,3,13197),(10,2,16554),(10,1,17509),(9,30,24365),(9,29,24361),(9,28,22186),
(9,27,10933),(9,26,10079),(9,25,12879),(9,24,10772),(9,23,13544),(9,22,13408),
(9,21,13416),(9,20,10574),(9,19,10268),(9,18,13906),(9,17,9328),(9,16,14524),
(9,15,14433),(9,14,11722),(9,13,9579),(9,12,10138),(9,11,8793)]
days = defaultdict(list)
for m, d, r in rides:
days[date(2026, m, d).strftime("%A")].append(r)
for name, v in sorted(days.items(), key=lambda kv: -sum(kv[1]) / len(kv[1])):
print(f"{name:10} n={len(v)} avg={sum(v) / len(v):.1f}")
Wednesday n=4 avg=17493.5
Tuesday n=4 avg=17417.2
Monday n=4 avg=15782.2
Friday n=5 avg=13324.8
Thursday n=4 avg=12597.5
Saturday n=4 avg=10920.5
Sunday n=4 avg=10632.8
Wednesday wins, but only by 76 rides over Tuesday, and that margin leans on two days. 29 and 30 September, a Tuesday and a Wednesday, each recorded about 24,000 rides, roughly double a normal day. Dropping just those two, Monday comes first at 15,782 and Wednesday falls to 15,203:
Monday n=4 avg=15782.2
Wednesday n=3 avg=15203.0
Tuesday n=3 avg=15102.7
The question asks for the average number of rides, so I kept every day the dashboard reports and answered Wednesday, but the result is only as stable as the window: a different date range changes the winner. With a margin this thin, check the span of the data before trusting it.
The peak bike count at one location
I did not calculate this one; it comes from a news report. Ako ste se pitali gdje su svi Bajsevi, published late on 23 June 2026 while INmusic was on at Jarun, says a temporary station built for the festival had 849 regular bikes and 60 bikes with a child seat available when it was written. That is 909 in total, and where the “more than 900” in the headline comes from. It is a count of bikes at one location at one moment, which is what the question asks. (I re-checked the article while writing this up: the 849 and 60 are its figures, and the 909 is their sum, which the article itself does not print.)
The article names no data source, and I did not cross-check the figure against the bike system’s own statistics.
Putting the answers together
Each answer is lowercased, spaces become underscores, and punctuation is dropped, as in the task’s own example (inmusic_festival for the INmusic festival):
| Question | Answer, normalised |
|---|---|
| 1 | hodaj_za_liku_hodaj_za_hrvatsku |
| 2 | zegevege_festival |
| 3 | wednesday |
| 4 | 909 |
Joined in order with colons inside FortID{...}, that is the flag shown below.
The flagReveal
FortID{hodaj_za_liku_hodaj_za_hrvatsku:zegevege_festival:wednesday:909}This CTF was possibly solved, and the writeup most likely written by an LLM. Apologies for inconsistencies.