Lithuania Beauty Clinic Rating Structural Verification Index — aesthetic medicine & plastic surgery
By procedure: Rhinoplasty Breast surgery Liposuction & body contouring Hair transplant Injectables Medical weight loss

How we measure

Version 1.0.0, updated 29 August 2026. Public name of the score: Structural Verification Index. Every number on this site can be recomputed from the published data and the rules on this page: the engine reads the same file this page is rendered from.

What we check — and what we do not

We check structural trust facts against official public registers: who the responsible physician is, what certification and licence the registers confirm, whether the facility and the legal entity can be traced, whether the clinic discloses its own identifiers, whether its advertising is honest, whether its language fronts agree, and whether patient documents are published.

We do not assess outcomes, skill or complications. A high score means the clinic is well verified, not that treatment there is right for you. This is not medical advice.

The unit

One record = one clinic in this country: brand + address + responsible physician. The named physician is the load-bearing field — every register check is by name. Procedure segment and city are facets, not units.

Inclusion policy

Four mechanical conditions. The first three decide whether a clinic is listed; the fourth whether it can be scored.

  1. Identifiable: a live public surface and a working in-country contact on the check date.
  2. Provides the service itself: not an aggregator, booking site, affiliate or tour packager.
  3. In scope: the intervention is performed by a physician — plastic or aesthetic surgery, hair transplant, physician-led injectables or device treatments, medical weight loss. Out: salons, barbers, nails/brows/lashes, spas, med-spas without a named physician.
  4. Names a responsible physician. Otherwise the record is published as verification unavailable: listed, not scored, no rank. Unknown is not fault — a missing name is a statement about coverage, not an accusation.

Country register map

The map for Lithuania was compiled 29 August 2026, before any clinic research. A class marked as absent makes its axis not applicable; a register that cannot be scripted leaves its axis cells as 'could not verify', without penalty. We never simulate a register.

Specialist board registerVASPVT — Valstybinė akreditavimo sveikatos priežiūros veiklai tarnyba prie Sveikatos apsaugos ministerijos (State Health Care Accreditation Agency under the Ministry of Health): „Specialistų licencijos“, the public register of health-care specialist licences. Lithuania has no separate specialty board — the state licence itself names the certified professional qualification (`ProfessionalQualification` / `QualificationId`), e.g. „Plastinės ir rekonstrukcinės chirurgijos gydytojas“ (48) or „Gydytojas dermatovenerologas“ (8), so this register IS the official specialty attestation. (open, machine-readable)
REPLAYABLE RECIPE (no login, no captcha, no anti-forgery token needed for the public grids): (1) GET https://licencijavimas.vaspvt.gov.lt/License/PublicSpecialistIndex with a browser User-Agent and keep the Set-Cookie (ASP.NET_SessionId, __RequestVerificationToken). (2) POST https://licencijavimas.vaspvt.gov.lt/License/GetPublicSpecialistLicenseList, Content-Type application/x-www-form-urlencoded; charset=UTF-8, X-Requested-With: XMLHttpRequest, Referer the index page, Cookie from step 1. Body is the standard Kendo `aspnetmvc-ajax` shape: sort, page, pageSize, group, aggregate, filter. The filter grammar is Kendo's flat string, e.g. filter=LastName~contains~'Vitkus', filter=QualificationId~eq~48, filter=QualificationId~eq~48~and~State~eq~1, filter=LicenseNo~eq~'MPL-12724'. pageSize up to 200 works, so the whole specialty enumerates in one request. Response: {"Data":[…],"Total":n,"AggregateResults":null,"Errors":null}. FIELDS: Id, StampNo (spaudo Nr. — the physician's stamp number, stable across their licences), StampType, FirstName, LastName (both UPPERCASE in the data), LicenseId, LicenseNo (MPL-xxxxx medicinos praktikos licencija; OPL- odontology, ASL-/BPL- other professions), ProfessionalQualification, QualificationId, IssueDate, OrderNo/OrderId/OrderDate (the VASPVT director's order that last changed the licence), State, MaintenanceDate/MaintenanceOrderNo. LICENCE STATE CODES (from the LicenseState dropdown in the page HTML): 1 = „Aktyvi“, 2 = „Sustabdyta“ (suspended), 3 = „Panaikinta“ (revoked). Dates arrive as Microsoft `/Date(ms)/`; they are epoch ms at Lithuanian local midnight, so convert in Europe/Vilnius or you will be a day early. QUALIFICATION IDS are enumerable through the same portal: POST /SelectWindows/ReadQualifications with body serviceName=<substring> returns [{"Value":…,"Text":…}]. Verified values relevant to aesthetics: 48 „Plastinės ir rekonstrukcinės chirurgijos gydytojas“, 8 „Gydytojas dermatovenerologas“, 7 „Gydytojas chirurgas“, 43 „Gydytojas veido ir žandikaulių chirurgas“, 47 „Medicinos gydytojas“ (basic medical doctor, no specialty). NOTE: serviceName=kosmet returns [] — „kosmetologas“ is NOT a licensed medical qualification in Lithuania, so an aesthetician has no entry here; only physicians and other regulated health professionals do. DIACRITICS: names are stored with Lithuanian diacritics (AŠTRAUSKAS, JAUNIŠKIS, RIMDEIKAITĖ). `contains` is diacritic-SENSITIVE, so send the native spelling UTF-8-encoded — build the body with Node's URLSearchParams or curl --data-binary @file; `curl --data-urlencode` on Windows Git Bash corrupts it. Search on a stem ('Aštrausk') to catch the -as / -aitė / -ienė gendered forms of the same family name. CAVEAT: the register carries NO workplace/clinic field — it proves the individual's qualification and licence state only; the clinic link must come from the facility register below or from the clinic's own site. WHAT ELSE WAS CHECKED: the portal's other public entry points are /License/PublicOfficeIndex (facilities), /HealthCareFacility/Search (facility-by-service map) and /License/PublicOrderSpecialistOrOffice/?id=<OrderId>&type=Specialist|Office (the signed VASPVT order PDF, only rendered when the row's OrderCreated flag is true — it was false on every row sampled, so the order documents were not retrievable). An official open-data mirror of this register is catalogued at https://get.data.gov.lt/datasets/gov/vaspvt/licencijos but get.data.gov.lt is network-blocked from this environment (HTTP 500 'Web Page Blocked!'), so the live portal is the route to use.
Medical licence registerVASPVT „Specialistų licencijos“ — the same public register: in Lithuania the medicinos praktikos licencija (MPL-…) issued by VASPVT under the Law on Medical Practice (Medicinos praktikos įstatymas) is the sole licence permitting a physician to practise, and its public register is this one. (open, machine-readable)
Identical endpoint, cookies, body grammar and pitfalls as specialist_board above — treat them as one register queried two ways: LicenseNo/StampNo answers 'may this person practise at all', ProfessionalQualification/QualificationId answers 'in what specialty'. LEGAL BASIS: VASPVT issues and publishes medical-practice licences under the Lietuvos Respublikos medicinos praktikos įstatymas and the Ministry of Health's licensing rules; nursing, odontology, pharmacy and paramedic licences live in the same grid, distinguished by StampType ("Medicinos praktikos spaudas", "Gydytojo odontologo spaudas", "Slaugos praktikos spaudas", "Paramediko spaudas", …) and by the LicenseNo prefix (MPL- / OPL- / ASL- / BPL-). WATCH FOR: rows where LicenseId, LicenseNo, IssueDate and State are all null but the person is present with a stamp number and a qualification — e.g. {"StampNo":"119046","FirstName":"DIOMENAS","LastName":"VITKUS","LicenseId":null,"LicenseNo":null,"ProfessionalQualification":"Teismo medicinos gydytojas","State":null} — those are stamp-only records with no current licence and must NOT be read as an active licence; require State===1 before scoring. A person can also legitimately hold several rows (several qualifications, or a re-issued licence), so deduplicate on StampNo. No login wall anywhere on the public grids; the /Account/Login and „Prisijungti per elektroninius valdžios vartus“ (e-gov) forms on the page are for licence HOLDERS filing applications, not for reading the register.
Facility registerVASPVT — „Įstaigų licencijos“ (licences of health-care institutions: asmens sveikatos priežiūros įstaigos licencija) together with „Sveikatos priežiūros įstaigų ir jų teikiamų paslaugų žemėlapis“, the per-address list of the exact health-care services each licensed facility may provide (open, machine-readable)
TWO COMPLEMENTARY OPEN ENDPOINTS, same portal, same cookie handling as the specialist register (GET the index page first, keep ASP.NET_SessionId, then POST with X-Requested-With: XMLHttpRequest and Content-Type application/x-www-form-urlencoded; charset=UTF-8). (A) LICENCE LIST — POST /License/GetPublicOfficeLicenseList with sort, page, pageSize, group, aggregate, filter AND the extra non-Kendo field serviceId (the page's getData() adds it; send serviceId= empty when unused, it must be present). Filter fields: OfficeName, OfficeCode (juridinio asmens kodas), LicenseNo, State, IssueDate. Returned fields: Id, LegalForm (teisinė forma, e.g. „Uždaroji akcinė bendrovė“, „Viešoji įstaiga“, „Mažoji bendrija“, „Individuali įmonė“), OfficeName, OfficeCode, OfficeAddress, LicenseNo, IssueDate, OrderNo/OrderId/OrderDate, State. FACILITY LICENCE STATE CODES differ from the specialist ones — from the grid's own value table: 1 „Suformuota“, 2 „Sustabdyta“, 3 „Išduota“ (valid), 4 „Panaikinta“ (revoked), 5 „Patikslinta“, 6 „Apmokėta“, 7 „Archyvuota“. Always require State~eq~3 for 'currently licensed'. (B) SERVICES PER ADDRESS — POST /HealthCareFacility/ReadInstitutionsWithServices (filter fields Name, Address, LicenseNo, ServiceId, LevelId, Method, PersonalOrPublic; each row is one facility×address and carries CoordinatesLat/CoordinatesLon and AddressId), then POST /HealthCareFacility/ReadServicesForInstitution with institutionId=<the row's Id, a GUID> and licenseNo=<the row's LicenseNo> to get every licensed service at that address (Name, Level „lygis“ I/II/III, Method, ServiceAddress, LicenseNo, OldLicenseNumber). Note the asymmetry: filtering ReadInstitutionsWithServices by Name alone returns rows with ServiceId=0, while adding ServiceId~eq~66 returns rows stamped with that service — both are fine, the GUID is what the second call needs. SERVICE IDS are enumerable: POST /SelectWindows/ReadServices with body serviceName=<substring>. Verified: 66 „Plastinė ir rekonstrukcinė chirurgija“ (the umbrella entry to filter on), 147 „Dermatovenerologija“, 282/283 dermatovenerologija II/III, 772/773 „Dienos chirurgija (I-IV / V (dermatologinės ir plastinės procedūros))“, plus level-qualified plastic-surgery variants 358, 359, 360, 537, 538, 729 („Suaugusiųjų plastinė ir rekonstrukcinė chirurgija …“) and paediatric ones 413, 414, 416, 417, 578, 579. Filtering by 66 alone already yields the 120-facility national set, so start there and use the level-qualified ids only when you need the surgical level. PITFALLS: OfficeName is the REGISTERED legal name („UAB \"Nordclinic Group\"“), not the trading brand — a clinic marketed as 'Nordclinic' or 'Grožio chirurgija' may not match a name search at all (filter=OfficeName~contains~'Grožio chirurgija' returned Total=0 while the operator is present under a different legal name), so search the operator's legal name or, better, its OfficeCode taken from the clinic's own rekvizitai. Addresses come with inconsistent leading whitespace and two different formats („Kauno apskr. Kauno miesto sav. Kauno m. …“ vs „Kauno apskr., Kauno m. sav., Kauno m., …“) — normalise before matching. Diacritics are significant; build bodies with URLSearchParams. OfficeCode is the Lithuanian legal-person code and joins straight to the legal_entity axis. This register is also the AGE datum source: IssueDate is the date the facility's health-care licence was issued (Northway chirurgijos centras lic. 2891 → /Date(1101765600000)/ = 2004-11-30; Grožio terapijos ir chirurgijos klinika lic. 254 is an early-1990s licence). CAVEAT: the licence covers the legal entity plus its declared addresses; a brand operating several legal entities (Northway runs both UAB "NORTHWAY MEDICINOS CENTRAI" 111807761 lic. 2862 and UAB "Northway chirurgijos centras" 300064600 lic. 2891) needs each entity checked separately.
Company registerVIES (VAT Information Exchange System) REST API of the European Commission — the official interface to the Lithuanian tax administration's (Valstybinė mokesčių inspekcija, VMI) taxpayer register, returning the registered legal name and registered address for a Lithuanian PVM (VAT) code. Used as the open legal-entity route because the primary commercial register — Registrų centras „Juridinių asmenų registras“ (JAR) at registrucentras.lt — is Cloudflare-challenge gated from this environment (see notes). (open, machine-readable)
RECIPE: GET https://ec.europa.eu/taxation_customs/vies/rest-api/ms/LT/vat/<digits> with the LT prefix STRIPPED (LT100001342810 → .../ms/LT/vat/100001342810). Response fields: isValid, userError (VALID / INVALID), name, address, requestDate. An unregistered or deregistered number returns isValid:false — treat that as 'not confirmed', never as 'unlicensed'. WHAT THIS ROUTE DOES AND DOES NOT GIVE: it confirms that a named legal entity exists, is VAT-registered with the Lithuanian state today, and carries exactly this registered name and registered address — enough to tie a clinic's marketing identity to a real Lithuanian company and to cross-check the address against the health-care licence. It does NOT give incorporation date, legal form, directors, shareholders or filed accounts, and it covers only VAT-registered entities (small clinics under the VAT threshold will be absent). The VAT code must be harvested from the clinic's own rekvizitai page (Lithuanian law requires companies to publish įmonės kodas + PVM kodas) or from an invoice. SECOND OPEN CORROBORATION, no extra work: every row of the VASPVT facility-licence register already carries the state-issued OfficeCode (juridinio asmens kodas), LegalForm (teisinė forma) and the registered OfficeName — so entity identity can be evidenced from the health register itself even without a VAT code. PRIMARY REGISTER, AND WHY IT IS NOT USED: the authoritative commercial register is Registrų centras JAR, public search at https://www.registrucentras.lt/jar/p/ (by įmonės kodas or name; detail pages /jar/p/dok.php?kod=<code> and /jar/p/rekv.php?kod=<code>) with an official open-data file service at https://www.registrucentras.lt/aduomenys/?byla=JAR_*.csv and a national-open-data mirror at https://get.data.gov.lt/datasets/gov/rc/jar/… . NONE of it is reachable from here. PROOF, this session: GET https://www.registrucentras.lt/jar/p/index.php?pav=Northway with a full Chrome header set (User-Agent, Accept, Accept-Language, sec-ch-ua*, Sec-Fetch-*, Upgrade-Insecure-Requests, --compressed) → HTTP/1.1 403 Forbidden, response headers `Cf-Mitigated: challenge`, `Server: cloudflare`, `CF-RAY: a330e68befb97b5c-BKK`, `Server-Timing: chlray;…`, a Content-Security-Policy whose script-src/frame-src/connect-src allow only https://challenges.cloudflare.com, and a body whose entire visible text is „Just a moment… Enable JavaScript and cookies to continue“ — i.e. a Cloudflare managed challenge (Turnstile), which no scripted request can satisfy. The same 403 + Cf-Mitigated: challenge is returned for /jar/p/, /jar/p/dok.php?kod=304103221, /jar/sarasai/, /atviri_duomenys/, /aduomenys/?byla=JAR_IREGISTRUOTI.csv and even /robots.txt, and for the whole Lithuanian government CMS (vaspvt.lrv.lt, sam.lrv.lt), e-tar.lt, atvira.sodra.lt and rekvizitai.vz.lt. Separately, data.gov.lt and get.data.gov.lt are swallowed before they are reached: both return an HTTP 500 page reading „The URL you requested has been blocked … Web Page Blocked! … Client IP: 223.204.251.211 … Attack ID: 20000018“, a network-WAF interstitial, so the JAR/VASPVT open-data mirrors could not be downloaded either. The challenge looks IP/geo-driven (the licencijavimas.vaspvt.gov.lt portal on the same country's infrastructure is completely unprotected), so a collector running from a European IP should retry the JAR first and prefer it — if it renders, use https://www.registrucentras.lt/jar/p/ by OfficeCode taken from the VASPVT facility row and cite the JAR extract. ALSO TRIED AND REJECTED: VMI's open-data file https://www.vmi.lt/TPP/PVMRegDuom/PVMRegDuom.zip is reachable (13 KB, Last-Modified 2026-08-29) but contains only ten daily delta files pak_2026-08-20.xml … pak_2026-08-29.xml of VAT registrations/deregistrations (PVMKODAS, PAVADINIMAS, REGDATA) — a change feed, not a searchable register; the VMI portal's own taxpayer lookup at https://www.vmi.lt/evmi/rinkmenos/mokesciu-moketoju-informacija is a JavaScript module-federation SPA with no reachable JSON endpoint; the EU e-justice BRIS company search returns 403 to scripted requests. rekvizitai.lt / rekvizitai.vz.lt are private aggregators, not the official register, and must not be cited as the source.
Sanctions / discipline registerVASPVT licence-state search — the public, name-searchable record of SUSPENDED („Sustabdyta“) and REVOKED („Panaikinta“) health-care licences, for both physicians and facilities, in the same register that issues them. VASPVT is the state body that suspends and revokes licences after quality-control proceedings, so its licence-state field is Lithuania's public sanctions record. (open, machine-readable)
SAME RECIPE as the two registers above; the sanctions view is just a State filter, so a collector already fetching a doctor or a clinic gets the sanction status in the SAME response — no second source needed. SPECIALIST states: 1 „Aktyvi“, 2 „Sustabdyta“, 3 „Panaikinta“. FACILITY states: 3 „Išduota“ (valid), 2 „Sustabdyta“, 4 „Panaikinta“ (plus 1 „Suformuota“, 5 „Patikslinta“, 6 „Apmokėta“, 7 „Archyvuota“ — see facility_registry). To sweep the sector rather than a single name, combine: filter=QualificationId~eq~48~and~State~eq~2 / ~eq~3 for plastic surgeons, filter=QualificationId~eq~8~and~State~eq~2 for dermatovenerologists, and on the facility grid filter=State~eq~2&serviceId=66. Every sanctioned row names the VASPVT order (OrderNo, e.g. "T1-2289 ()", plus OrderDate) that imposed it, which is the citable decision identifier; the signed order PDF is exposed at /License/PublicOrderSpecialistOrOffice/?id=<OrderId>&type=Specialist|Office but ONLY when the row's OrderCreated flag is true — it was false on every sanctioned row sampled this session, so cite OrderNo + OrderDate + the register URL, not a PDF. WHAT THIS DOES NOT COVER, and must not be inferred: the register shows the CURRENT state only, so a suspension that has been lifted leaves no visible trace, and a clean State=1 is evidence of 'no live sanction', never of 'never sanctioned' — score the axis accordingly and never write 'never disciplined'. VASPVT's own narrative decisions and quality-control reports live on vaspvt.lrv.lt, which is behind the same Cloudflare managed challenge as the rest of the *.lrv.lt government CMS (403, Cf-Mitigated: challenge) and could not be read from here; the patient-harm compensation commission under the Ministry of Health (Pacientų sveikatai padarytos žalos nustatymo komisija) publishes no name-searchable public database either — no such register was reachable or found. Absence of a sanction is not a positive finding: leave the cell null rather than asserting 'unsanctioned'.
Foreign-patient registerno public register of this class in this country

The nine axes

Every axis is a fact or a quote from a public source, scored 1–5 against a fixed rubric. There are no editorial axes. Each cell carries its sources, its source class (official register / secondary) and its check date.

Fame, review volume, domain age and social-media following are scored nowhere.

M1 · Specialist certification of the responsible physician — weight 26

Whether the physician named as responsible for this clinic is found in the country's specialist board register with a current specialisation matching the advertised segment (plastic surgery or dermatology, by segment).

Register class: Specialist board register — VASPVT — Valstybinė akreditavimo sveikatos priežiūros veiklai tarnyba prie Sveikatos apsaugos ministerijos (State Health Care Accreditation Agency under the Ministry of Health): „Specialistų licencijos“, the public register of health-care specialist licences. Lithuania has no separate specialty board — the state licence itself names the certified professional qualification (`ProfessionalQualification` / `QualificationId`), e.g. „Plastinės ir rekonstrukcinės chirurgijos gydytojas“ (48) or „Gydytojas dermatovenerologas“ (8), so this register IS the official specialty attestation..

ValueAnchor
5Found by name or number; specialty matches what is advertised; status current.
4Found; specialty adjacent to what is advertised (noted on the profile).
3Found in the register; the register does not disclose specialty.
2Only a secondary source (association, aggregator) supports the certification.
1Certification is claimed and found in no source.

M2 · Identifiability of the responsible physician — weight 16

Whether a patient can name the specific physician and their role before making contact, and whether that physician is tied to this location.

ValueAnchor
5Physician(s) named with role and tied to this address.
4Named; role unclear.
3A name appears in only one place on the site.
2Surname or initials without a full name.
1'Our team' only — this is the gate state 'verification unavailable'.

M3 · Basic medical licence — weight 8

Whether the responsible physician's registration is found in the country's medical licence register.

Register class: Medical licence register — VASPVT „Specialistų licencijos“ — the same public register: in Lithuania the medicinos praktikos licencija (MPL-…) issued by VASPVT under the Law on Medical Practice (Medicinos praktikos įstatymas) is the sole licence permitting a physician to practise, and its public register is this one..

ValueAnchor
5Matched by licence number.
4Matched by name.
3Register not machine-accessible; the clinic publishes the number.
2Licence claimed without a number.
1Public data contradicts the claim.

M4 · Facility registration — weight 10

Whether the operating location is found in the facility register (where the country has one; otherwise this axis is not applicable).

Register class: Facility register — VASPVT — „Įstaigų licencijos“ (licences of health-care institutions: asmens sveikatos priežiūros įstaigos licencija) together with „Sveikatos priežiūros įstaigų ir jų teikiamų paslaugų žemėlapis“, the per-address list of the exact health-care services each licensed facility may provide.

ValueAnchor
5Record found: name, address and status match.
4Record found with a spelling discrepancy.
3Register exists; no record found (we do not claim 'unlicensed').
2Only the clinic's own statement.
1A published registration number is contradicted by the register (verified false → flag).

M5 · Legal-entity traceability — weight 8

Who is legally responsible: a legal entity in the company register, tied to the brand and the address.

Register class: Company register — VIES (VAT Information Exchange System) REST API of the European Commission — the official interface to the Lithuanian tax administration's (Valstybinė mokesčių inspekcija, VMI) taxpayer register, returning the registered legal name and registered address for a Lithuanian PVM (VAT) code. Used as the open legal-entity route because the primary commercial register — Registrų centras „Juridinių asmenų registras“ (JAR) at registrucentras.lt — is Cloudflare-challenge gated from this environment (see notes)..

ValueAnchor
5Legal entity and registration number published and matched in the register.
4Matched by name.
3Legal entity named; register not accessible.
2Brand only.
1No legal entity found after a full pass (verified conflict → hold H2).

M6 · Self-disclosure of identifiers — weight 10

Whether the clinic itself publishes the numbers needed to re-check it (licences, certificates with issuer). Disclosure is rewarded; a missing number is not a missing licence.

ValueAnchor
5All load-bearing numbers published with issuers.
4Physician numbers published; facility or legal-entity numbers not.
3Partial, without issuers.
2Logos without numbers.
1No identifiers at all.

M7 · Advertising honesty — weight 12

A machine profile of the clinic’s own claims: outcome guarantees, ‘100% safe’, ‘No. 1’ or ‘best’ without an issuer, ‘unlimited grafts’, before/after presented as a promise, foreign boards presented as the national specialist board. Every deduction cites an exact quote with URL, locale and date.

ValueAnchor
5No pattern from the lexicon found.
4One or two soft superlatives.
3Systematic superlatives without guarantees.
2Guarantee or ‘100%’-class statement (bright line; cap candidate).
1Verified fake credential (flag + cap).

M8 · Cross-locale consistency — weight 5

Whether facts agree across the language fronts of the clinic's own site (physician, numbers, accreditations) — a mechanical comparison of extracted fields.

ValueAnchor
5All load-bearing fields agree.
4Spelling discrepancies.
3Some facts appear on only one front.
2A load-bearing fact (physician or number) differs.
1Fronts contradict each other on credentials (H2 candidate).

M9 · Patient documents — weight 5

Presence check for five document classes: informed consent, risks/contraindications, aftercare, revision policy, complaint route. Presence only — the quality of the documents is not assessed.

ValueAnchor
5All five classes published.
4Four.
3Two or three.
2One.
1None.

The formula

Each axis value 1–5 is mapped to 0–1. The composite is the weighted average over the axes that hold a value: axes that are not applicable in this country and axes we could not verify drop out of the normalisation.

composite = 100 × Σ(weight × (value − 1) / 4) / Σ(weight of axes with a value)
score = min(composite + focus adjustment, lowest active ceiling), clamped to 0…100

Coverage threshold: a score is published only when at least 75% of the applicable axis weight holds a sourced value. Below that the record shows 'verification pending' and carries no rank.

Focus adjustment

A mechanical classification from the clinic's own menu.

FocusAdjustment
specialist0
aesthetic in general clinic-2
spa or salon addon-5

Score ceilings

A ceiling is applied only from a verified-false finding — never from 'not found'. Each ceiling is rendered from a fixed template with the exact quote or register entry and its URL; no free text is written about a named clinic.

CeilingMax scoreWhat triggers itFixed wording
Verified false accreditation or licence claim45A claimed accreditation, board certification or licence is contradicted by the official register. Never applied on 'not found' alone.The register {registry} (record dated {date}) does not confirm the credential claimed at {url}: “{quote}”. Under this methodology the score is capped at {cap}. The clinic has been offered a right of reply.
Outcome guarantee or ‘100% safe’-class statement65The clinic's own published text guarantees a result or absolute safety. Applied only with the exact quote.The clinic's own page {url} ({locale}, {date}) states: “{quote}”. Under this methodology an outcome guarantee caps the score at {cap}.
Active sanction in a machine-readable official register45Exists only in countries whose registry map declares a sanctions register. Absence of a sanction is never a finding.Entry in the {registry} register dated {date}: {url}. The score is capped at {cap} and the profile is held pending the clinic's right of reply.

The sanctions ceiling exists only in countries with a machine-readable official sanctions register. In this country: VASPVT licence-state search — the public, name-searchable record of SUSPENDED („Sustabdyta“) and REVOKED („Panaikinta“) health-care licences, for both physicians and facilities, in the same register that issues them. VASPVT is the state body that suspends and revokes licences after quality-control proceedings, so its licence-state field is Lithuania's public sanctions record.. Absence of a sanction is never a finding.

Holds

Positive verification by default; the hold ladder handles the cases where public records conflict or the physician cannot be identified.

IDHoldEffectFixed wording
H1Clarification requestedprofile provisional, no crownA clarification has been requested from the clinic. The profile is provisional and carries no crown until it is resolved.
H2Material structural conflictceiling after the right-of-reply window (69), 14-day right-of-reply windowPublic records show a material structural conflict ({detail}). After the right-of-reply window the score is capped at {cap}.
H3Responsible physician not identifiablecomposite withheld, unrankedThe responsible physician could not be identified from public sources. The composite score is withheld and the clinic is listed without a rank.

Crowns and procedure slices

A crown is a boolean gate from register-verified axes — never from a clinic's claim. Within a crown, the order is the composite.

CrownMeaningGate
Specialist-ledThe responsible physician holds a current, matching specialist certification in the official register (M1 = 5, official source) and is clearly identifiable (M2 ≥ 4).M1 ≥ 5 (official register) · M2 ≥ 4
Foreign-patient readyThe clinic is verified in the country's official foreign-patient register. Exists only where such a register exists.no such register in this country — this crown does not exist here

Procedure slices list the clinics whose own menu names the procedure (a sourced boolean), ranked by the composite:

Outcome quality

There is no independent measurement of treatment outcomes in this field, and we do not imitate one. The register facts already in the axes are the only quality-adjacent evidence we publish.

How the data is produced (unattended run)

  1. No score without a source — in two passes. A collector records the value, the quote and the URL; a separate verifier reloads the URL and looks for the quote by string match. If the quote is not found, the cell degrades to 'could not verify'.
  2. All negative wording is templated. Ceilings and holds are rendered from fixed strings plus the cited quote or register entry. Nothing free-form is written against a named clinic.
  3. The validator is the build gate. Every axis key must be present (null allowed, absence not), every citation must resolve, ceilings only from verified-false findings with a quote, weights must sum to 100, and superlatives in our own text fail the build.
  4. A checklist per record: at least two independent sources, the register map opened and cited, every axis either a sourced value or an explicit 'could not verify'.
  5. Right of reply without a human in the loop: messages to the contact form or corrections@ are processed as ordinary data input. A correction with a source is applied and logged; a statement without one is published next to the data and the score does not change.

Freshness

Each record shows the real date of its last check. Register axes (M1, M3, M4) are rechecked within 90 days; the advertising axis (M7) within 180 days. Every change is logged in the changelog and in the record's own history.

What this register does not do

Independence: we take no money from clinics, we do not book, we do not refer, and no position can be bought. Data changes only through sourced facts, for every clinic under the same rules.

This site is an independent research project provided 'as is'. Clinic names and public information are used for identification. Nothing here creates a doctor–patient or advisory relationship.

Methodology versions

DateVersionChange
29 August 2026v1.0.0Initial 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.