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.
- Identifiable: a live public surface and a working in-country contact on the check date.
- Provides the service itself: not an aggregator, booking site, affiliate or tour packager.
- 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.
- 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 Mauritius 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 register | Medical Council of Mauritius — statutory annual list of medical practitioners authorised to practise AS SPECIALISTS, published under section 30(1) of the Medical Council Act 1999 in the Government Gazette of Mauritius (General Notice No. 179 of 2026; temporarily registered specialists = General Notice No. 181 of 2026), PDF republished by the Council on its own 'Annual List' page (open, machine-readable) REPLAYABLE RECIPE (no cookie, no token, no captcha, no login): (1) GET https://medicalcouncilmu.org/annual-list/ with a browser User-Agent — the page is plain HTML and links the current and previous year's PDF; today it carries exactly two: .../uploads/2020/07/Main_140226_601761-811.pdf (Gazette No. 9, Saturday 14 February 2026, gazette pages 765–811 — the 2026 list) and .../uploads/2020/07/14_Main_220225.pdf (Gazette of 22 February 2025 — the 2025 list, General Notices 255–259). ALWAYS re-scrape that page rather than hard-coding the filename: the upload path stays /wp-content/uploads/2020/07/ but the filename changes every February. (2) GET the PDF, run `pdftotext -layout`, then substring-match on SURNAME (uppercase in the file) and use the General Notice headers as section boundaries. STRUCTURE of the 2026 issue: GN 178 = registered medical practitioners authorised to practise as GENERAL PRACTITIONERS during 2026 (2,148 entries, ends «2148 YEUNG WAI PING Yeung Yan Hoi»); GN 179 = authorised to practise as SPECIALISTS during 2026 (966 entries); GN 180 = TEMPORARILY registered practitioners authorised as general practitioners (37 entries, mostly non-citizens); GN 181 = temporarily registered practitioners authorised as SPECIALISTS (66 entries); GN 182–185 = the parallel Dental Council Act 1999 lists (ignore for this fleet). PITFALLS: the gazette is typeset in two columns, so `pdftotext -layout` interleaves the tail of one notice with the head of the next on the same text line — always resolve a hit by its sequence NUMBER and the nearest preceding «General Notice No. N of 2026» header, never by line position alone. Long given-name strings wrap onto an unnumbered continuation line (e.g. «953 VAN DEN BROECK Didier Hugues Philippe» + « Michel Ghislain»); join them before comparing. Entries are «SURNAME Given Names» with the surname in caps; French/Creole names carry accents that pdftotext may mangle (é rendered as \ufffd), so normalise (NFD, strip combining marks, uppercase) before matching. The list gives NO registration number, NO discipline, NO address — only the sequence number and the name. WHAT THIS SOURCE CANNOT DO, and what was tried instead: the MCM's own online searchable register DOES carry the specialty field, but it is DOWN. https://medicalcouncilmu.org/doctors-list/ (List of Registered General Practitioner), /list-of-registered-specialists/, /list-of-general-practitioner-given-temporary-registration/, /list-of-registered-specialist-given-temporary-registration/ and /list-of-approved-visiting-medical-practitioner/ every one returns HTTP 500 with a WordPress «There has been a critical error on this website.» block injected mid-page — the crash happens while rendering the specialty <select>, so the search form itself never completes. Tried and failed this session: three repeat GETs of the specialists page (500 each); the plain GET form parameters the page's own <form method="GET"> declares, ?doctor-name=Ram&categories=0, ?doctor-name=Bhug, ?doctor-name=&categories=0 (500, and with categories=0 the fatal fires even EARLIER, before the search box); the archived pagination parameter ?alphabet=A / M / V (500, byte-identical 108,427-byte body); /?page_id=5437 (HTTP 301). The site's WP REST API is open and was enumerated: /wp-json/wp/v2/types lists only post, page, attachment, nav_menu_item, wp_block, wp_template, wp_template_part, wp_global_styles, wp_navigation, wp_font_family, wp_font_face, give_forms and product — the doctors live in a custom theme table, NOT a post type; /wp-json/ shows 27 namespaces (give-api, aioseo, wc/*, wordfence, jetpack, elementor, carbon-fields …) and none exposes a doctor route. Only admin-ajax.php is referenced, with no doctor action name in the markup. For the record of what the working register contained (Wayback snapshot 20260415043948 of /list-of-registered-specialists/, cited here only to describe the field, NEVER as a data source): the 'Sort by field' dropdown lists free-text disciplines including «PLASTIC SURGERY», «Plastic Surgery and Reconstructive Surgery», «Plastic and Reconstructive Surgery», «DERMATOLOGY», «DERMATOLOGY AND VENEREOLOGY», «DERMATOLOGY, VENEREOLOGY & LEPROSY» — note the un-normalised duplicates, which is why field matching there would need fuzzy handling if the site ever comes back. The Council also runs a login-gated 'Doctor Portal' (/dashboard/) — not usable. If the online register is restored, re-open this map and re-classify: it would upgrade M1 from 'specialist, discipline unknown' to a discipline-level official datum. |
|---|---|
| Medical licence register | Medical Council of Mauritius — statutory annual list of registered medical practitioners authorised to practise during the year, published under section 30(1) of the Medical Council Act 1999 in the Government Gazette of Mauritius (General Notice No. 178 of 2026 = general practitioners, No. 179 = specialists, No. 180 = temporarily registered general practitioners, No. 181 = temporarily registered specialists); registration with the Council is the mandatory licence to practise medicine in Mauritius (open, machine-readable) The licence check is a MEMBERSHIP-IN-A-SET check across four notices, not a per-doctor lookup: a doctor is licensed for the year iff their name appears in GN 178 ∪ GN 179 ∪ GN 180 ∪ GN 181 of that year's February gazette. The four lists are disjoint (a specialist appears only in GN 179, never also in GN 178 — verified by grepping ABBASAKOOR Faisal, MUNNEE Krishna and NUCKCHADY Dooshanveer Chowbay). Same download and parsing recipe, same two-column and accent pitfalls, as documented at length under specialist_board — reuse that single PDF for both classes; there is no second request to make. The list carries NO registration number, so a doctor can only be matched by name; treat common Mauritian surnames (GUNESS/GUNESSEE/GUNNESS, VEERASAMY/VEERASSAMY, NUCKCHADY) as ambiguous and require a given-name match. CADENCE / STALENESS: the list is published once a year in February and states the year it covers ('during the year 2026'), so it is up to ~12 months behind reality; a doctor registered mid-year will not appear until the next February, and a doctor suspended mid-year stays in the printed list. Always cross-read the sanctions class (MCM communiqués, near-real-time) alongside it. WHAT WAS TRIED AND FAILED: the MCM online searchable register (medicalcouncilmu.org/doctors-list/ and its four sibling list pages), which would give per-doctor lookup, is returning a WordPress fatal error / HTTP 500 on every request — full evidence and the list of attempted parameters is under specialist_board. No CAPTCHA and no login is involved anywhere in this class; the gazette PDFs are served by plain nginx with no cookie or referrer requirement. Mauritius has no separate 'licence number' public lookup: the Council's own registration numbers are not published. |
| Facility register | no public register of this class in this country |
| Company register | Mauritius Revenue Authority (MRA) — «List of VAT Registered Persons», the quarterly statutory publication of every VAT-registered person in Mauritius, giving the VAT Registration Number, the CBRD Business Registration Number (BRN), the legal name and the trade name; used here as the open route to the Business Registration Number issued by the Corporate and Business Registration Department (CBRD), whose own CBRIS company search is Turnstile-gated (open, machine-readable) RECIPE (no cookie, no token, no captcha, no login): plain GET https://www.mra.mu/download/ListofVATRegPersons.pdf (the link lives on https://www.mra.mu/index.php/mvat as «List of VAT Registered Persons»), then `pdftotext -layout` and match rows with the regex /^(\d{8})\s+([CPFIcpfi]\d{8})\s+(.+?)(?:\s{3,}(.+))?$/ → VAT number, BRN, registered name, optional trade name. Names are uppercase; French names carry accents that pdftotext may mangle (é → \ufffd) so normalise before matching; ampersands, apostrophes and 'LTEE'/'LTD'/'LIMITED' suffixes vary, so match on a normalised stem. The BRN prefix encodes the entity type — C = company, P = partnership/société, F = foreign/branch, I = individual/sole trader — and the two digits after it are the registration year (C16136378 = registered 2016), which is a usable, official age datum. CAVEATS THAT MUST BE HONOURED: (a) this is a TAX register, not the commercial register — only persons registered for VAT appear (compulsory above the turnover threshold or for scheduled professions), so a small single-doctor clinic can be perfectly legally registered at CBRD and simply absent here; NEVER read absence as 'not registered' or as a negative datum. (b) It is a snapshot 'as at 30.06.2026', refreshed quarterly, so a company incorporated after that date is missing. (c) It carries no address, no directors and no status — for those you need CBRD, which is gated (below). THE ACTUAL COMMERCIAL REGISTER AND WHY IT IS NOT USABLE — proven this session, not assumed: the CBRD (companies.govmu.org/cbrd) points all public searching at the CBRIS Online Search Angular app at https://onlinesearch.mns.global/, operated by Mauritius Network Services Ltd. Its index.html loads https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit, and https://onlinesearch.mns.global/assets/conf/appConfig.json (open, 2 lines) declares {"baseUrl":"https://onlinesearch.mns.global/","turnstileSiteKey":"0x4AAAAAABacLL63lit3STLW"}. The bundle main.a9547bba4f7d0548.js shows the search is POST {baseUrl}onlinesearch/company with JSON body {mainOption, searchValue, dateIncorporatedFrom, dateIncorporatedTo, sortOrder:"ASC", sortBy:"ORG_NAME", pageSize, pageNumber} where mainOption ∈ {"companyName","brn","businessName","fileNo"}, and an HTTP interceptor that attaches the header «Turnstile-Token: <token>» to POSTs on /onlinesearch/company and /onlinesearch/business and to GETs on /viewCompanyDetails, /viewPartnershipDetails, /viewBusinessDetails. LIVE PROOF: POST https://onlinesearch.mns.global/onlinesearch/company with body {"mainOption":"companyName","searchValue":"AESTHETICARE",...} and NO Turnstile-Token header → HTTP 400 {"status":400,"error":"Bad Request","message":"Missing Turnstile client token","path":"/onlinesearch/company"}; the identical POST WITH a fabricated token → HTTP 401 {"status":401,"error":"Unauthorized","message":"Suspicious activity detected. Please contact MNS Hotline!","path":"/onlinesearch/company"} — i.e. the token is verified server-side against Cloudflare, so the blocker is the captcha itself and not a missing session. Same 400 for /onlinesearch/business and for GET /onlinesearch/company/viewCompanyDetails?fileNo=C123456. Only GET /onlinesearch/policy (a cookie-policy blob) answers without a token. The sibling CBRIS portals cbris.mns.global/cbris, /cbris-ytf/login and /cbris-F1Dom/login are login walls. Conclusion: cite the MRA VAT row (with its BRN) as the official legal-entity datum; the BRN it publishes is the same identifier CBRD issues, so it is a valid cross-reference key, but do not claim a CBRD extract was read. |
| Sanctions / discipline register | Medical Council of Mauritius — public disciplinary communiqués (suspension from medical practice, Medical Disciplinary Tribunal outcomes, reprimands) issued by the Registrar under the Medical Council Act 1999 and published on the Council's website; read through the site's unauthenticated WordPress REST API (open, machine-readable) This is a communiqué FEED, not a structured register: it is a chronological stream of named notices, so the recipe is a full-text sweep, not a per-doctor lookup, and it has no 'clean' answer. RECIPE (no cookie, no token, no captcha, no login; the REST API is fully open even though the site's own doctor-list pages are throwing HTTP 500): GET https://medicalcouncilmu.org/wp-json/wp/v2/posts?per_page=100&page=N&_fields=id,date,link,title,content and page until the array is empty, then grep content.rendered locally for the surname; or narrow server-side with &search=<surname>, &search=suspension, &search=communiqué, &search=reprimand, &search=tribunal (WP `search` matches title AND content). The HTML pages https://medicalcouncilmu.org/blog/ (Latest News) and /event/ (Press Release) render the same posts and are also plain GET-able; https://medicalcouncilmu.org/disciplinary-proceedings/ returns HTTP 200 but is ONLY an explanatory note on how the Investigating Committee and the Medical Disciplinary Tribunal work and on the sanctions available (warning, severe warning, reprimand, severe reprimand, suspension up to 12 months, removal of the name from the register) — it contains no names; https://medicalcouncilmu.org/notices/ renders with an empty body. HOW TO CITE: quote the communiqué text and its permalink; the Council does not assign case numbers, so the post date plus the doctor's full name is the identifier. CAVEATS THAT MUST BE HONOURED: (a) the feed is sparse — roughly one to three disciplinary communiqués a year across ~3,200 registered practitioners — so ABSENCE PROVES NOTHING and must never be scored as 'clean' or 'unsanctioned'; only a positive hit is a datum. (b) Notices are not withdrawn when a suspension is lifted; the 2026-04-08 post shows the Council instead publishes a follow-up, so always take the LATEST post naming a doctor, not the first. (c) Names appear as «Dr <Given> <SURNAME>» here but as «SURNAME Given» in the gazette — normalise before joining the two sources. (d) Some slugs are typo'd (/suspensin-from-medical-practice/), so never construct permalinks by pattern; take link straight from the API. CROSS-CHECK THAT WORKS AND IS WORTH RUNNING: a doctor named in a live suspension communiqué should be missing from the current year's Government Gazette annual list — that held for both GUNESSEE and MOHEEPUTH this session. The Medical Disciplinary Tribunal itself publishes no public decisions database, and no other Mauritian body (Ministry of Health & Wellness, courts portal) publishes a name-searchable list of sanctioned doctors. |
| Foreign-patient register | no 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 — Medical Council of Mauritius — statutory annual list of medical practitioners authorised to practise AS SPECIALISTS, published under section 30(1) of the Medical Council Act 1999 in the Government Gazette of Mauritius (General Notice No. 179 of 2026; temporarily registered specialists = General Notice No. 181 of 2026), PDF republished by the Council on its own 'Annual List' page.
| Value | Anchor |
|---|---|
| 5 | Found by name or number; specialty matches what is advertised; status current. |
| 4 | Found; specialty adjacent to what is advertised (noted on the profile). |
| 3 | Found in the register; the register does not disclose specialty. |
| 2 | Only a secondary source (association, aggregator) supports the certification. |
| 1 | Certification 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.
| Value | Anchor |
|---|---|
| 5 | Physician(s) named with role and tied to this address. |
| 4 | Named; role unclear. |
| 3 | A name appears in only one place on the site. |
| 2 | Surname 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.
| Value | Anchor |
|---|---|
| 5 | Matched by licence number. |
| 4 | Matched by name. |
| 3 | Register not machine-accessible; the clinic publishes the number. |
| 2 | Licence claimed without a number. |
| 1 | Public 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 — none in this country, so this axis is not applicable here.
| Value | Anchor |
|---|---|
| 5 | Record found: name, address and status match. |
| 4 | Record found with a spelling discrepancy. |
| 3 | Register exists; no record found (we do not claim 'unlicensed'). |
| 2 | Only the clinic's own statement. |
| 1 | A 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.
| Value | Anchor |
|---|---|
| 5 | Legal entity and registration number published and matched in the register. |
| 4 | Matched by name. |
| 3 | Legal entity named; register not accessible. |
| 2 | Brand only. |
| 1 | No 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.
| Value | Anchor |
|---|---|
| 5 | All load-bearing numbers published with issuers. |
| 4 | Physician numbers published; facility or legal-entity numbers not. |
| 3 | Partial, without issuers. |
| 2 | Logos without numbers. |
| 1 | No 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.
| Value | Anchor |
|---|---|
| 5 | No pattern from the lexicon found. |
| 4 | One or two soft superlatives. |
| 3 | Systematic superlatives without guarantees. |
| 2 | Guarantee or ‘100%’-class statement (bright line; cap candidate). |
| 1 | Verified 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.
| Value | Anchor |
|---|---|
| 5 | All load-bearing fields agree. |
| 4 | Spelling discrepancies. |
| 3 | Some facts appear on only one front. |
| 2 | A load-bearing fact (physician or number) differs. |
| 1 | Fronts 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.
| Value | Anchor |
|---|---|
| 5 | All five classes published. |
| 4 | Four. |
| 3 | Two or three. |
| 2 | One. |
| 1 | None. |
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.
| Focus | Adjustment |
|---|---|
| specialist | 0 |
| 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.
| Ceiling | Max score | What triggers it | Fixed wording |
|---|---|---|---|
| Verified false accreditation or licence claim | 45 | A 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 statement | 65 | The 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 register | 45 | Exists 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: Medical Council of Mauritius — public disciplinary communiqués (suspension from medical practice, Medical Disciplinary Tribunal outcomes, reprimands) issued by the Registrar under the Medical Council Act 1999 and published on the Council's website; read through the site's unauthenticated WordPress REST API. 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.
| ID | Hold | Effect | Fixed wording |
|---|---|---|---|
| H1 | Clarification requested | profile provisional, no crown | A clarification has been requested from the clinic. The profile is provisional and carries no crown until it is resolved. |
| H2 | Material structural conflict | ceiling after the right-of-reply window (69), 14-day right-of-reply window | Public records show a material structural conflict ({detail}). After the right-of-reply window the score is capped at {cap}. |
| H3 | Responsible physician not identifiable | composite withheld, unranked | The 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.
| Crown | Meaning | Gate |
|---|---|---|
| Specialist-led | The 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 ready | The 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)
- 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'.
- 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.
- 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.
- 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'.
- 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
- We do not measure treatment outcomes, surgical skill or complication rates.
- We do not see clinics without a public web presence.
- Register classes this country does not publish are named as unavailable; we never simulate a register.
- We take no money from clinics, we do not book, and we do not refer.
- Fame, review volume, domain age and social-media following are not scored anywhere.
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
| Date | Version | Change |
|---|---|---|
| 29 August 2026 | 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. |