Vidik. Stepen eskalacije: mirno.

Methodology

Every number on this page is calculated, and this is how. A number nobody can check is a number nobody believes.

What one event is

An event is not an article. When several newsrooms cover the same thing, those pieces are joined into one event and we count how many there were and who wrote them. That is why a card reads “18 sources” instead of the same fire appearing eighteen times.

Pieces are joined on content similarity, names and place, with time decay — two pieces twelve hours apart count for half of two published together. A cluster accepts new pieces for 48 hours after the last one. The join threshold is 0.40 and was not chosen by eye: it was measured against a hand-labelled day, where it scores best.

Joining errs in both directions. On that labelled day the pairwise accuracy is 0.82 — so some events stay split and some are merged that should not have been. We publish that figure rather than leave it out.

How often this updates

We follow 106 sources. Each has its own rhythm — from 2 to 60 minutes — because they do not all publish at the same rate and because no site is polled harder than it needs to be. Times on cards are local, Sarajevo time.

Language and script

BiH writes one language in two alphabets, and the rule follows the page rather than whose words they are. On the Bosnian, Croatian and English versions the news list, the cards and the map render in Latin — headlines, summaries, extracts, place names and outlet names — even where the publisher set them in Cyrillic. On the Serbian version they stand as written. One exception: on an individual event's page the extract from the source, and the sharing data built from it, stay in the publisher's alphabet, so there is always one place that shows how the source itself wrote it. Nothing in the database changes.

Transliteration runs one way only. Cyrillic to Latin is unambiguous; the reverse is not: “nj” is “њ” in “konj” but “н” + “ј” in “konjugacija”. That direction needs a lexicon rather than a table, so we do not do it. We publish the asymmetry rather than hide it.

We do not translate sources publishing in Albanian or Macedonian — automatic translation is not part of this product. They are held out of the main list, always with a count and always one click away. The split follows the language each source declares for itself, never automatic language detection: detection labels every Meteoalarm warning English although the headline reads “narandžasti nivo upozorenja”.

When Vidik has summarised a group of reports about one event, the summary on the card is our description of that group rather than any article's text: written by a language model instructed to describe rather than characterise, and passed through the defamation check before publication. The headline on the card is the source's own, exactly as published, until such time as we write the headline too. Where our summary is missing — the group is not summarised yet, or the check refused the text — the card carries the source's text there as well. Either way the source's headline stands unchanged on the event page, next to a link to the original.

What counts as an event from this region

An event whose own text is most about a country outside the region — a hotel fire in India, a strike in Gaza — is counted in none of this page's numbers: not the bands, not the municipalities, not the active sources, and it is not drawn on the map. It is not deleted: it sits in the "Svijet" section of the news list with the number set aside stated beside it, and its own page works like any other. The region is Bosnia and Herzegovina, Croatia, Kosovo, Montenegro, North Macedonia and Serbia — the same set of countries we track sources from. One exception: when places inside the region carry at least 40 per cent of all the places a text names, the event stays in the list (a story about a boy from Žepče being treated in Turkey is news from BiH) — but it is still not drawn on the map, because it did not happen here.

This rule reads the place the sources named, so it cannot catch an event wrongly placed inside the region. The known case: with diacritics stripped, the Vojvodina town of Inđija looks identical to the country Indija, so a fire in an Indian hotel is given a Serbian location and stays in the numbers. That is a mistake in place recognition rather than in this rule, and it is being fixed separately. We write it here because it should be known.

The map and location precision

A marker is drawn only for a place the model named and our register recognised. When the model does not say where it happened, there is no map — better nothing than a point the sources do not support. Those events are not deleted: they stay in the list, and the map states how many it held back and why. A name the register does not recognise is likewise not drawn; it is recorded so the register can be filled in.

One event can carry several points: queues at four border crossings are four locations, not one. The order is the order the model gave them — the first is where the event itself happened. When several events share a point, usually a municipal centre, the map merges them into one marker with a count rather than nudging them apart. Nudging would invent coordinates.

Severity

Severity is the sum of seven terms. Each is reduced to a value between zero and one, multiplied by its weight, and added. Here are all seven and what each carries:

How many independent sources report it40
Base weight of the category20
Trust in the strongest source10
Whether an official source reports it too10
How sharply coverage is accelerating10
How many people live in the affected area5
Weight-carrying words in the text5
total100

What each term contributed is stored with the event, so the sum can always be broken back down.

Bands

Mirno019
Povišeno2039
Napeto4069
Kritično70100

Coverage and asymmetry

We publish it because asymmetry is not hidden. The count per bloc, and the arithmetic behind it:

FBiH40 src / 79 mun. = 0.51
RS19 src / 63 mun. = 0.30
Brčko3 src / 1 mun. = 3.00

Coverage is a bloc's tracked sources divided by its municipalities. The ramp stops at one source per municipality, so Brčko clips off the top.

What is missing

  • Stanari has no boundary in the geoBoundaries source dataset. It was separated from Doboj in 2014 and is shown as part of Doboj. 142/143 · Stanari
  • The media signal index is not calculated yet. Its formula will be published here before the first number appears.

Sources

Trust weights are published, with a justification against each source.

Sources — BiH 86 · region 20 · asymmetry FBiH 0.51 : RS 0.30 per municipality

What a machine writes, and what it does not

A language model does two things here: it writes the summary of a group of articles about the same event (and the daily brief), and it names where the event happened, as the sources name it. Every such name is checked against our own place register — only a name the register recognises is drawn on the map, and a name it does not recognise is recorded for review and left undrawn. The coordinate and the administrative codes are taken from the same register row, so they cannot contradict each other. Everything else runs locally and on rules that do not change from case to case: language, names, category, duplicate matching, grouping into events and the severity arithmetic. The model does not decide what is serious, who an event concerns, or when an alert is sent.

A summary can be wrong. Where a summary and the cited source disagree, the source governs and the summary is an error we correct. That is why every summary carries the number of sources and the full list of them below it.

Event timelines

Larger events carry a timeline: short entries describing what new reports added since the previous summary. Entries are written by a language model and pass the same checks as summaries, plus a check that they do not reproduce source text; each entry describing a change carries the number of reports it was written from.

Only events with at least 20 reports earn a timeline — the rest have too little progression to narrate. Entries appear when a cluster grows substantially or changes severity band, not continuously, so an event without new entries is not an event without developments.

A published entry is never edited or deleted; corrections go to the corrections page. Timelines accrue from the day the feature launched, so older events have none.

People, names and judicial status

We label events, not people. No number on this site refers to a named person: severity is computed for an event, never for somebody mentioned in it. We do not profile individuals, do not track people over time, and keep no list of names.

A private individual's name appears only as the source published it, with that source cited immediately beside it. We add nothing and infer nothing beyond what the source says.

Judicial status is never collapsed. These four are four different things:

  • osumnjičen, under suspicion: no indictment
  • optužen, indicted: the indictment is confirmed, there is no judgment
  • nepravosnažno osuđen, convicted at first instance: appeal is open or running
  • pravosnažno osuđen, finally convicted: proceedings are concluded

Until a judgment is final, the presumption of innocence applies. That is how we write, and it is stated on every event page concerning a legal proceeding.

The sources' copyright

We do not republish anybody's articles. We show the headline, an extract of at most 25 words, the source's name and a link to the original. Copyright stays entirely with the source, and the full text we process internally is never displayed and never passed on.

A publisher who does not want to be followed writes to the removal address and is removed the same day, without questions and without conditions.

Corrections and right of reply

Every correction and every removal is written into a public log with its date. If an event concerns you, you may send a response and we attach it to that event. The log is only appended to; a published entry is never edited and never deleted.

Corrections log

Calendar

The calendar lists dates known in advance to draw coverage: elections and statutory deadlines, and announced gatherings. It is not a forecast — we do not claim something will happen, only that something is scheduled. An entry for an announced gathering stays accurate even if nobody turns up, because it records the announcement rather than the outcome. The calendar deliberately lists no anniversaries and no religious observances. The rule is: what an institution scheduled, and seasons that recur — not commemorations. Listing some anniversaries and not others would be a position, and listing all of them would still ask a reader to accept our reason for putting their date on a risk calendar.

What these numbers are not

Vidik measures media signal intensity. It does not predict events and it does not assess danger.

Not an emergency service. In an emergency call 122, 123 or 124.

Questions and corrections

An error in an event, a removal request, or anything else:

Contact