Changelog
Every data change, correction and methodology version is logged here and in each record's own history.
| Date | Subject | Change |
|---|---|---|
| 16 October 2026 | Methodology v1.7.0 | Owner ruling: the publication threshold of a site is four scored clinics; ten remains the target of the collection gate and fifteen the roster target. A site with four to nine scored clinics is published open to search — ordinary home page, full sitemap — and stays in the re-collection loop until it reaches ten; the holding page with noindex and an empty sitemap is shown only below four. A clinic without a published score is still shown nowhere. Weights, rubrics, the 75% coverage threshold, ceilings and holds are unchanged. |
| 25 September 2026 | Methodology v1.4.0 | Owner ruling: the 14-day reply window before publication is removed. A negative finding — one official register record about this unit or this person, from the register that governs the claim, with a status in force — is published as soon as it is assembled, with the register's line verbatim, the link and the date of reading; a negative finding is published exactly as fast as a positive one. The same day the register sends the clinic a letter from this site's corrections address; the clinic's reply, when it comes, is shown next to the fact, and the score moves only on a source. An unsent letter never holds or removes a finding. One official record per finding, the governing register, status in force only, the name-match rule and 'an absence is never published' are unchanged; so are the weights, the 75% coverage threshold, ceilings, holds and the ten-clinic floor. |
| 25 September 2026 | Methodology v1.5.0 | Owner ruling: the register never writes to a clinic on its own initiative — no letters about findings and no letters asking for missing data. Right of reply is passive, as in v1.0: a finding is on the profile in the register's own words, with the link and the date it was read; a clinic that disagrees uses this site's corrections form or corrections address; its reply is shown next to the fact, and the score moves only on a source. Everything else in v1.4 is unchanged. |
| 22 September 2026 | Ars Medica | axes.M7: 2 → 4 (Methodology v1.3 (owner rulings 2026-09-22) — § B closed lexicon — manner_gerund: M7-C) |
| 22 September 2026 | Ars Medica | axes.M5: 5 → 2 (Methodology v1.3 (owner rulings 2026-09-22) — § F rule 6 — the clinic publishes neither the number nor the legal entity (audit not_published, entity name not found on the clinic pages; the entity was found by us — shown as a fact)) |
| 22 September 2026 | Dr MedTim | axes.M5: 5 → 2 (Methodology v1.3 (owner rulings 2026-09-22) — § F rule 6 — the clinic publishes neither the number nor the legal entity (audit not_published, entity name not found on the clinic pages; the entity was found by us — shown as a fact)) |
| 22 September 2026 | Klinika Danica | axes.M5: 5 → 2 (Methodology v1.3 (owner rulings 2026-09-22) — § F rule 6 — the clinic publishes neither the number nor the legal entity (audit not_published, entity name not found on the clinic pages; the entity was found by us — shown as a fact)) |
| 22 September 2026 | Klinika dr Barjaktarovic | axes.M7: 2 → 3 (Methodology v1.3 (owner rulings 2026-09-22) — § B closed lexicon — past_or_satisfaction: M7-D) |
| 22 September 2026 | Methodology v1.3.0 | Two new reasons for an empty cell: 'register does not cover this class of facility or this territory' (proved by a quote of the register's own statement of coverage; leaves the coverage denominator like a closed register) and 'nothing to query' (the clinic publishes no surname or no legal entity; stays in the denominator). Registers are read per jurisdiction — province, Land, emirate or region — where that is what licenses; openness, closedness and coverage are properties of the register class in that jurisdiction, and a closed jurisdiction never closes the whole country. The country map names sources, access and jurisdictions only; it never changes an anchor. The anchors of M1, M3, M4 and M5 are restated: 5 on M3 and M5 requires the number the clinic itself publishes; a found record whose specialty the register does not confirm is 3, not 1, unless the clinic claims a protected title the register does not show; adjacency is a closed list; a practice registered under its host facility scores 4 on M4. The advertising lexicon (M7) is closed: 2 needs an unconditional absolute about the patient's future safety or the treatment outcome, rendered in the clinic's own voice; purpose clauses, revision programmes, manufacturer warranties and equipment statements are not patterns; absolutes about the past and satisfaction figures are 3. M9 counts a document class only when it is reachable from a stable address and named by a heading or a labelled control. A record is published only if at least one register axis holds a value. Every cell records how it was read (script, second egress, browser) and is re-verified in the same mode; a page that fails to load never degrades a cell. A negative finding needs one official register record about this unit or this person, from the register that governs the claim, with a status in force; the clinic receives a letter and a 14-day reply window before the finding is published; an absence (“no sanctions”, “not found”) is never rendered. Personal identifiers are never stored. Weights, the 75% coverage threshold, ceilings, holds and the ten-clinic floor are unchanged. |
| 22 September 2026 | Milmedika Poliklinika Nikšić | axes.M5: 5 → 2 (Methodology v1.3 (owner rulings 2026-09-22) — § F rule 6 — the clinic publishes neither the number nor the legal entity (audit not_published, entity name not found on the clinic pages; the entity was found by us — shown as a fact)) |
| 22 September 2026 | Milmedika Porto Montenegro | axes.M7: 4 → 2 (Methodology v1.3 (owner rulings 2026-09-22) — rule 11 — same surface (milmedika.com) as "milmedika-poliklinika-niksic": one page set, one M7) |
| 22 September 2026 | Primus Medical | axes.M7: 2 → 4 (Methodology v1.3 (owner rulings 2026-09-22) — § B closed lexicon — safety_promise: M7-C) |
| 18 September 2026 | A Medic | axes.M4: 3 → null (Methodology v1.2 (owner ruling 2026-09-18): a register miss is never a value — M4 = 3 was written for "register exists, no record found"; re-typed not_found with the logged query) |
| 18 September 2026 | A Medic | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | A Medic | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | A Medic | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | A Medic | axes.M4: null → 5 (Re-run against CRPS through the browser name search: the record exists (taxpayerId 61842, short name "A MEDIC") — the earlier not_found came from a query that could not reach the gated name search) |
| 18 September 2026 | A Medic | axes.M5: null → 2 (Re-run: clinic pages re-read for a named legal entity (none published)) |
| 18 September 2026 | American Hospital for Plastic Surgery Montenegro | axes.M1: 2 → null (Methodology v1.2 (owner ruling 2026-09-18): M1 is not scored where the country's specialist register is closed; the secondary finding moved to facts[]) |
| 18 September 2026 | American Hospital for Plastic Surgery Montenegro | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | American Hospital for Plastic Surgery Montenegro | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | American Hospital for Plastic Surgery Montenegro | axes.M4: 2 → 5 (Re-run against CRPS: the record was resolved through the browser name search (taxpayerId 93348) — the previous cell said the register could not be read for this entity) |
| 18 September 2026 | Ars Medica | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Ars Medica | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Ars Medica | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Ars Medica | axes.M7: null → 2 (Re-run: pages re-loaded and the quote re-verified against the served text (v1.2 pass 1)) |
| 18 September 2026 | Cenex Medical | axes.M4: 3 → null (Methodology v1.2 (owner ruling 2026-09-18): a register miss is never a value — M4 = 3 was written for "register exists, no record found"; re-typed not_found with the logged query) |
| 18 September 2026 | Cenex Medical | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Cenex Medical | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Cenex Medical | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Cenex Medical | axes.M4: null → 5 (Re-run against CRPS through the browser name search: the record exists (taxpayerId 51118) — the earlier not_found came from a query that could not reach the gated name search) |
| 18 September 2026 | Cenex Medical | axes.M5: null → 4 (Re-run against CRPS: the entity the clinic names was matched by name in the open register) |
| 18 September 2026 | Codra Hospital | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Codra Hospital | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Codra Hospital | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Codra Hospital | axes.M7: null → 3 (Re-run: pages re-loaded and the quote re-verified against the served text (v1.2 pass 1)) |
| 18 September 2026 | Codra Hospital | axes.M8: null → 5 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 18 September 2026 | Dr MedTim | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Dr MedTim | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Dr MedTim | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Dr MedTim | axes.M7: null → 2 (Re-run: pages re-loaded and the quote re-verified against the served text (v1.2 pass 1)) |
| 18 September 2026 | Klinika Danica | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Klinika Danica | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Klinika Danica | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Klinika dr Barjaktarovic | axes.M1: 2 → null (Methodology v1.2 (owner ruling 2026-09-18): M1 is not scored where the country's specialist register is closed; the secondary finding moved to facts[]) |
| 18 September 2026 | Klinika dr Barjaktarovic | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Klinika dr Barjaktarovic | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Klinika dr Barjaktarovic | axes.M4: 2 → 4 (Re-run against CRPS: the record was resolved through the browser name search (taxpayerId 29642) — the previous cell said the register could not be read for this entity) |
| 18 September 2026 | Medical Centar Budva | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Medical Centar Budva | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Medical Centar Budva | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Medical Centar Budva | axes.M4: 2 → 5 (Re-run against CRPS: the record was resolved through the browser name search (taxpayerId 42302) — the previous cell said the register could not be read for this entity) |
| 18 September 2026 | Methodology v1.2.0 | Coverage is measured against what the country lets us check: a register class that does not exist here or is closed to machine queries (with the refusal on record) leaves the coverage denominator; a completed query with no match, an attempt that did not complete and a single language front stay in it. A register miss is never a value: the three anchors that used to encode a miss (M1 = 1, M4 = 3, M5 = 1) now mean a found record that contradicts the claim, or, for M4 = 3, a register that is not machine-accessible while the clinic publishes its facility number. Where the specialist register is closed, M1 is not scored on that site at all; what a society, ISAPS or a hospital page says is shown on the profile as a secondary fact outside the score. Commercial mirrors of an official register can support M3–M5 up to 4 with secondary provenance. M8 may be empty only for a single language front or while the clinic site fails to load. The citation verifier applies exactly three normalisations (HTML entities, Unicode NFC, whitespace). Weights, rubrics otherwise, the 75% coverage threshold, ceilings, holds and the ten-clinic floor are unchanged. |
| 18 September 2026 | Milmedika Poliklinika Nikšić | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Milmedika Poliklinika Nikšić | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Milmedika Poliklinika Nikšić | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Milmedika Porto Montenegro | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Milmedika Porto Montenegro | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Milmedika Porto Montenegro | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Nova Medic | axes.M4: 3 → null (Methodology v1.2 (owner ruling 2026-09-18): a register miss is never a value — M4 = 3 was written for "register exists, no record found"; re-typed not_found with the logged query) |
| 18 September 2026 | Nova Medic | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | Nova Medic | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | Nova Medic | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | Nova Medic | axes.M4: null → 5 (Re-run against CRPS through the browser name search: the record exists (taxpayerId 67180) — the earlier not_found came from a query that could not reach the gated name search) |
| 18 September 2026 | Nova Medic | axes.M5: null → 4 (Re-run against CRPS: the entity the clinic names was matched by name in the open register) |
| 18 September 2026 | Poliklinika SmartMed | Initial collection (v1.2 pass 1). |
| 18 September 2026 | Primus Medical | Initial collection (v1.2 pass 1). |
| 18 September 2026 | Primus Medical | axes.M8: null → 5 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 18 September 2026 | SofiaMed Bar | axes.M1.nullReason: "retry" → "registry_closed" (Methodology v1.2 (owner ruling 2026-09-18): specialist register closed for the whole site (closedAttempt on record): the axis leaves the coverage denominator) |
| 18 September 2026 | SofiaMed Bar | axes.M1.nullReason: "registry_closed" → "registry_closed" (Secondary routes run for this record (v1.2 pass 1); M1 stays unscored while the specialist register is closed) |
| 18 September 2026 | SofiaMed Bar | axes.M3.nullReason: "retry" → "registry_closed" (Re-run against the Ljekarska komora register and the map's secondary routes (v1.2 pass 1): the register is closed, the secondary routes carry no licence data) |
| 18 September 2026 | SofiaMed Bar | axes.M4.nullReason: "retry" → "not_found" (Re-run against CRPS through the browser name search (v1.2 pass 1): query completed, no record) |
| 17 September 2026 | Codra Hospital | axes.M8: 5 → null (Mechanical check did not complete (fetch failed: fetch failed); re-run scheduled.) |
| 17 September 2026 | Dr MedTim | axes.M8: null → 5 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 17 September 2026 | Medical Centar Budva | axes.M8: 3 → 5 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 17 September 2026 | Methodology v1.1.0 | Completeness of collection became a build gate. Every cell we could not verify now carries a typed reason (register absent in this country, register not machine-accessible, queried and not found, attempt not completed, single language front) and, where a query was run, the attempt log; a closed register is tried through secondary routes before a cell is left empty; cross-locale consistency (M8) is computed mechanically. Only clinics with a published score are shown; a site publishes only with at least ten scored clinics (target fifteen) and otherwise shows a holding page while collection continues. Home title, heading and description name the country and are built from the site’s own data. Weights, rubrics, the coverage threshold, ceilings and holds are unchanged. |
| 17 September 2026 | Nova Medic | axes.M8: null → 3 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 17 September 2026 | SofiaMed Bar | axes.M8: 4 → 3 (Mechanical cross-locale comparison (methodology v1.1, item 9).) |
| 30 August 2026 | A Medic | Initial collection. |
| 30 August 2026 | American Hospital for Plastic Surgery Montenegro | Initial publication; every citation and the clinic site re-checked on this date. |
| 30 August 2026 | Ars Medica | Initial collection. |
| 30 August 2026 | Ars Medica | axes.M7: 2 → null (Citation re-check: quote not found at https://arsmedica.co.me/plasticna-hirurgija/ (fetch failed (node + curl): Command failed: curl -sL -A Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128 Safari/537.36 beauty-grid-verifier/1.0 --max-time 20 -w ); cell degraded to could-not-verify.) |
| 30 August 2026 | Cenex Medical | Initial collection. |
| 30 August 2026 | Codra Hospital | Initial collection. |
| 30 August 2026 | Codra Hospital | axes.M7: 3 → null (Citation re-check: quote not found at https://www.codra.me/ (quote not found); cell degraded to could-not-verify.) |
| 30 August 2026 | Dr MedTim | Initial collection. |
| 30 August 2026 | Dr MedTim | axes.M7: 2 → null (Citation re-check: quote not found at https://medtim.me/usluge/hirurgija/estetska-hirurgija-podgorica/ (fetch failed (node + curl): Command failed: curl -sL -A Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128 Safari/537.36 beauty-grid-verifier/1.0 --max-time 20 -w ); cell degraded to could-not-verify.) |
| 30 August 2026 | Klinika Danica | Initial collection. |
| 30 August 2026 | Klinika dr Barjaktarovic | Initial publication; every citation and the clinic site re-checked on this date. |
| 30 August 2026 | Medical Centar Budva | Initial publication; every citation and the clinic site re-checked on this date. |
| 30 August 2026 | Milmedika Poliklinika Nikšić | Initial collection. |
| 30 August 2026 | Milmedika Porto Montenegro | Initial publication; every citation and the clinic site re-checked on this date. |
| 30 August 2026 | Nova Medic | Initial collection. |
| 30 August 2026 | SofiaMed Bar | Initial publication; every citation and the clinic site re-checked on this date. |
| 29 August 2026 | Methodology v1.0.0 | Initial public methodology: nine mechanical axes (M1–M9, weights summing to 100), 1–5 rubric per axis, weighted composite normalised over axes that hold a value, 75% coverage threshold, hold ladder H1–H3, score caps only from verified-false findings, focus penalty, registry-gated crowns. |