Moldova 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 Moldova 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 registerno public register of this class in this country
Medical licence registerno public register of this class in this country
Facility registerConsiliul Național de Evaluare și Acreditare în Sănătate (CNEAS) — „Instituții Evaluate”, the state register of evaluation and accreditation of medical-service providers under Legea nr. 552/2001 privind evaluarea și acreditarea în sănătate; lists provider name, branch, IDNO/IDNP, legal and operating address, accreditation status, category, the ACCREDITED SCOPE OF MEDICAL ACTIVITY (genul de activitate acreditat — this is where „dermatologie și cosmetologie”, „proceduri injectabile”, „chirurgie plastică miniinvazivă” appear), accreditation-certificate number and expiry date (open, machine-readable)
REPLAYABLE RECIPE (no cookie, no session, no token, no captcha, no login; Cloudflare in front of cneas.md did NOT challenge a plain curl): (1) GET https://cneas.md/verifica/ with `curl --compressed -A '<browser UA>'`. (2) Extract the register with the regex /<script type="application\/json" id="registry-data">([\s\S]*?)<\/script>/ and JSON.parse the capture. (3) Field keys and their Romanian labels come from the sibling island id="registry-columns": name=„Denumirea prestatorului de servicii medicale”, division=„Denumirea subdiviziunii/filialei”, id=„IDNO/IDNP”, address1=„Adresa juridică”, address2=„Adresa amplasării”, status=„Statut”, category=„Categoria”, activityType=„Genul de activitate acreditat”, certId=„Numărul Certificatului de acreditare”, validity=„Valabil până la” (dd.mm.yyyy). Filter locally — there is NO server-side search, NO pagination and NO API: the page is a static Astro build and the table, its status/category filters and its „CSV” button are all Alpine.js running client-side over this same island, so the CSV button is not a separate endpoint and must not be cited as one. Cite the record as https://cneas.md/verifica/ plus IDNO + certId. DIACRITICS / ENCODING PITFALLS (tested, they are real): the file mixes BOTH Romanian s-forms and t-forms — ş U+015F (965 occurrences) alongside ș U+0219 (704), and ţ U+0163 (300) alongside ț U+021B (1,823); addresses are written „mun. Chişinău” with the CEDILLA ş in 288 records and „Chișinău” with the COMMA-BELOW ș in 51, so a literal search for one form silently misses the other. Worse, some entries contain CYRILLIC HOMOGLYPHS inside otherwise-Latin words (е U+0435 ×38, а U+0430 ×31, о U+043E ×19, р U+0440 ×11, с U+0441 ×10) — e.g. Nivel-On's accredited scope reads „înlăturаrеа” with a Cyrillic а and е, and SRL Naturamed Plus reads „mеzоtегарiе, оzоnоtегарiе”. So before matching: NFD-normalise, map ş→s, ș→s, ţ→t, ț→t, ă→a, â/î→i, transliterate the Cyrillic look-alikes а→a е→e о→o р→p с→c х→x у→y, then lowercase. Prefer matching on IDNO (pure digits) wherever possible. Providers are prefixed by legal form in the register's own spelling (SRL / SC / IMSP / AO / II), and the same operator can appear on several rows with different certificates for different sites — key on IDNO, not on name. SCRIPTABLE CROSS-CHECK OF THE FACILITY LICENCE ITSELF (a second, independent open route, verified this session): the ASP Registrul de stat al unităților de drept bulk XLSX used by legal_entity below carries a per-entity column J „Genuri de activitate licentiate” whose numeric codes are decoded in the workbook's own third sheet („Clasificare licenţiate”); code 23 = „Acordarea asistenţei medicale de către instituţiile medico-sanitare private” — i.e. the licence a private clinic must hold to provide medical assistance. A full pass over the 2026-08-24 export found 991 live (non-liquidated) holders of code 23, 827 of them in Chișinău, and SRL Nivel-On appears there with J = „21, 23” at the same address as its CNEAS row — the licence and the accreditation join on IDNO 1010600008851. Note that accreditation and licence are NOT the same thing and do not imply each other: SC Rofilena SRL is CNEAS-accredited but its ASP row carries J = „21, 109” (farmaceutică + asistență primară), and CLINICA DE MEDICINĂ ESTETICĂ „CME SANCOS” S.R.L. (IDNO 1004600048025) carries an EMPTY J and is absent from CNEAS. WHAT WAS TRIED AND FAILED, so nobody repeats it: (a) the interactive permissive-acts register at https://date.gov.md/open/permissive-acts (the SIA GEAP „Acte permisive emise” consultation, searched by IDNO) is NOT usable from here — its search is a POST to /open/data/13f8ff89-e8f0-ea11-80e5-0050568b7cd9 carrying inputData={"idnx":"<IDNO>"} plus g-recaptcha-response, gated by an invisible Google reCAPTCHA (data-sitekey 6Ld8fLwUAAAAAGRJc_avviLM_7v7xKkGSyfk4PlT, fired through grecaptcha.execute() in captchaResolved()); a GET on that endpoint answers 405 (so the endpoint exists) while a real POST — session cookie carried from the page, the page's own `csrf` header value, X-Requested-With, Referer and Origin set, tried both with an empty and with a syntactically plausible dummy g-recaptcha-response — is answered 403 with the STISC WAF interstitial „Acces Restricționat - I.P. STISC”, i.e. both a captcha and an IP-level block. (b) https://actpermisiv.gov.md is an Angular SPA whose only backend, https://epermits.dotgov.md/api/, does not answer from outside Moldova (connect timeout on every path tried). (c) https://ansp.gov.md (Agenția Națională pentru Sănătate Publică, the sanitary-authorisation issuer) returns the same STISC „Acces Restricționat” 403 to every request, with or without browser headers. (d) https://cnam.md sits behind a Cloudflare interactive challenge (403, Cf-Mitigated: challenge, „Just a moment...”), so the CNAM list of contracted providers is unreachable; its dataset.gov.md mirror stops at 2024. (e) The Ministry of Health's own open datasets of accredited private medico-sanitary institutions (dataset.gov.md packages 10419/10417/10420, XLS) are real but frozen at 2014 and are superseded by CNEAS — do not cite them.
Company registerAgenția Servicii Publice (ASP) — Registrul de stat al unităților de drept, the state commercial register; published in full as the official weekly open-data bulk export „Date din Registrul de stat al unităților de drept privind întreprinderile înregistrate în Republica Moldova” on the national open-data portal dataset.gov.md (publisher IDNO 1002600024700). Carries IDNO/fiscal code, registration date, full legal name, legal form, registered address, CUATM territorial code, directors with roles, founders with share percentages, non-licensed activity codes, LICENSED activity codes, and liquidation date. (open, machine-readable)
REPLAYABLE RECIPE (no cookie, no key, no captcha, no login): (1) GET the CKAN package_show URL above (dataset.gov.md runs a standard CKAN 3 API; package_list, package_search?q=…&rows=…&sort=metadata_modified+desc and organization_list?all_fields=true&limit=25&offset=N all work unauthenticated). (2) Take the LAST entry of result.resources — the file is republished every Monday under the stable dataset UUID a1f38191-f35c-4180-8d80-297851a08f60 with a fresh per-week resource UUID and the filename pattern company_YYYY.MM.DD.xlsx, so ALWAYS resolve the current URL through the API rather than hard-coding this week's; there were 400 weekly resources on 2026-08-29 and the newest was company_2026.08.24.xlsx. (3) Download once (~38 MB) and search LOCALLY — there is no server-side row query. The XLSX is too large for a naive parser: xl/worksheets/sheet1.xml is 153 MB and xl/sharedStrings.xml is 70 MB with 1,141,982 unique strings, so stream both (read in ~4 MB chunks, split on </si> and </row>, resolve t="s" cells through the shared-string index) with node --max-old-space-size=6000; a full filtered pass takes about a minute. THE WORKBOOK IS SELF-DOCUMENTING: sheet 2 „Clasificare nelicenţiate” decodes column I and sheet 3 „Clasificare licenţiate” (110 rows, ID + Denumire) decodes column J. Codes worth knowing for this fleet: 23 = „Acordarea asistenţei medicale de către instituţiile medico-sanitare private” (the private-clinic medical licence — 991 live holders, 827 of them in Chișinău on the 2026-08-24 export), 21 = „Activitatea farmaceutică”, 22 = „Importul, fabricarea, comercializarea, asistenţa tehnică şi (sau) reparaţia dispozitivelor medicale şi (sau) a opticii”, 109 = „Activităţi de asistenţă primară”. Column K „Data lichidării” is an Excel serial and is EMPTY for live entities — always exclude non-empty K before treating a row as an active company. Column B is likewise an Excel serial: date = 1899-12-30 + B days. DIACRITICS: this file is overwhelmingly comma-below (ș U+0219 ×982, Ș U+0218 ×960, ț U+021B ×109) but NOT purely so — it still contains cedilla forms (Ş U+015E ×68, Ţ U+0162 ×4), and it disagrees with CNEAS, which is cedilla-heavy; addresses read „CHIȘINĂU” here and „Chişinău” there. Normalise both s-forms and both t-forms before matching, or match on IDNO. Legal names are stored with the full legal form spelled out and the trade name in quotes, and the SAME operator is spelled inconsistently across vintages (older rows are diacritic-free ALL-CAPS: „SOCIETATEA CU RASPUNDERE LIMITATA …”, newer rows are mixed-case with diacritics: „Societatea cu Răspundere Limitată …”) — strip diacritics and case-fold, and prefer IDNO. CAVEATS: (a) the export covers întreprinderi (enterprises); non-commercial organisations and central public bodies are separate packages of the same publisher (`date-din-registrul-de-stat-al-unitatilor-de-drept-privind-organizatiile-necomerciale`, `22617-…organele-centrale-de-specialitate…`) — IMSP public hospitals and AO associations therefore may be absent from this file while present in CNEAS. (b) It is a snapshot, not a per-entity extract: there are no incorporation documents, no share-capital figure and no history, so cite the dataset resource URL plus the IDNO and the export date as the record identifier. (c) A handful of well-known private hospitals could not be located by trade name (e.g. „Medpark” returns zero) — the operating legal name differs from the brand, which is normal here; resolve the brand to an IDNO from the clinic's own imprint or from CNEAS before searching. WHAT WAS TRIED AND FAILED: the interactive lookups on the same portal — https://date.gov.md/open/company-search („Căutare persoană juridică”) and https://date.gov.md/open/company-details („Date despre persoana juridică”) — are consultation services of the same family as the permissive-acts one, gated by the same invisible Google reCAPTCHA (sitekey 6Ld8fLwUAAAAAGRJc_avviLM_7v7xKkGSyfk4PlT) AND by the STISC WAF, which answers a scripted POST with a 403 „Acces Restricționat” page; use the bulk export instead. The older portal date.gov.md/ckan/api/3/… no longer exists (404 into the maintenance host) — the live CKAN is dataset.gov.md.
Sanctions / discipline registerno public register of this class in this country
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 — none in this country, so this axis is not applicable here.

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 — none in this country, so this axis is not applicable here.

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 — Consiliul Național de Evaluare și Acreditare în Sănătate (CNEAS) — „Instituții Evaluate”, the state register of evaluation and accreditation of medical-service providers under Legea nr. 552/2001 privind evaluarea și acreditarea în sănătate; lists provider name, branch, IDNO/IDNP, legal and operating address, accreditation status, category, the ACCREDITED SCOPE OF MEDICAL ACTIVITY (genul de activitate acreditat — this is where „dermatologie și cosmetologie”, „proceduri injectabile”, „chirurgie plastică miniinvazivă” appear), accreditation-certificate number and expiry date.

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 — Agenția Servicii Publice (ASP) — Registrul de stat al unităților de drept, the state commercial register; published in full as the official weekly open-data bulk export „Date din Registrul de stat al unităților de drept privind întreprinderile înregistrate în Republica Moldova” on the national open-data portal dataset.gov.md (publisher IDNO 1002600024700). Carries IDNO/fiscal code, registration date, full legal name, legal form, registered address, CUATM territorial code, directors with roles, founders with share percentages, non-licensed activity codes, LICENSED activity codes, and liquidation date..

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: no public register of this class in this country. 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.