Methodology
How Facet scores your face
Last updated: May 22, 2026
Facet maps 468 facial landmarks using MediaPipe, then runs a deterministic scoring engine implemented in TypeScript. Every threshold maps to a peer-reviewed clinical paper (Fink 2021, Carruthers 2020, Goode 1984, Sadick TTRS, others). Claude is invoked only for qualitative observations and recommendations, never for scoring. Scores are reproducible across re-runs.
The 10 modules
Facet scores you across 10 modules. Each module measures specific clinical parameters and returns a 0 to 10 score with the citation behind the threshold visible in the report.
| Module | What it measures | Cited sources |
|---|---|---|
| Skin | Homogeneity (Fink chromophore variance), melanin sigma_L*, erythema, roughness Ra proxy, pore density (LoG) | Fink 2021, Sadick TTRS |
| Eyebrows | Pupil-to-brow distance, peak rise, apex angle, length, thickness, symmetry (all IPD-calibrated in mm) | Carruthers 2020 |
| Eyes | Canthal tilt (degrees) | Sadick gender-typical ranges |
| Nose | Frontal nasal width ratio (alar/face-width). Profile parameters (Goode index, nasofacial, nasolabial) deferred pending profile-CV pipeline. | Goode 1984 |
| Lips | Vermilion border score. Profile parameters (E-line, Burstone) deferred. | Standard aesthetic dermatology references |
| Cheeks | Zygomatic prominence (frontal). MCFAS scale deferred pending CV proxy. | Standard aesthetic dermatology references |
| Jawline | Facial Width-Height Ratio (FWHR). Profile parameters (gonial angle, Merrifield Z, cervicomental) deferred. | Standard cephalometric references |
| Hair | Uses Claude visual assessment. CV pipeline (density per cm² via Sinclair / Savin / Norwood) deferred. | Visual assessment only |
| Beard (males) | Uses Claude visual assessment. CV pipeline (stubble length, coverage ratio) deferred. | Visual assessment only |
| Overall Harmony | Holistic blend of all module scores using a 'holistic-first-impression-v1' weighted formula. | Composite of all above |
Ethnicity-aware scoring
Clinical thresholds for several parameters genuinely differ by ethnicity. Facet supports 7 ethnicity categories. The scoring engine resolves thresholds per-ethnicity for parameters where ethnic baselines differ (e.g. nasal width ratio, skin homogeneity baseline, lip vermilion proportions). When no ethnicity is specified, generic averaged thresholds are used.
| Category | Description |
|---|---|
| Caucasian | European-descent baseline thresholds applied |
| East Asian | East Asian morphometric thresholds applied (different nasal width baseline, different skin homogeneity baseline) |
| African descent | African-descent thresholds (different skin homogeneity baseline, different lip vermilion baseline) |
| South Asian | South Asian morphometric thresholds |
| Hispanic/Latino | Mixed-baseline thresholds reflecting demographic diversity |
| Middle Eastern | Middle Eastern morphometric thresholds |
| Mixed/Other | Generic averaged thresholds when no specific ethnicity is provided |
What Facet does not do
- No surgical recommendations as default. Every module returns a natural protocol (skincare, grooming, lifestyle) before any clinical protocol. Surgical mentions appear only as context, never as the recommendation.
- No subjective "attractiveness" rating. Each module is scored against measurable clinical thresholds. There is no AI guess at "are you attractive."
- No data sale or model training on your photo. Photos are encrypted at upload, stored in AWS EU (Paris), deletable by you, and never used to train any model.
- No black-box scoring. Every score in your report shows the cited paper behind the threshold. You can read the underlying research.
- Not a substitute for medical care. Facet provides educational information. Consult a licensed dermatologist or aesthetic practitioner before any clinical intervention.
How Claude is used (and not used)
Facet uses Anthropic's Claude (Sonnet 4.5) for two narrow purposes:
- Generating qualitative observations per module (e.g. "lateral brow descent is mild compared to the gender-typical baseline")
- Generating natural and clinical recommendation protocols per module
Claude does not score. A defensive function (stripClaudeScores) removes any score, tier, or band field Claude tries to return. This is deliberate: V1 of Facet used Claude for scoring and exhibited clustering bias at 5.5 to 6.5 due to system prompt floor language. V2 removed Claude from the scoring loop entirely.
Frequently asked
How accurate is Facet from one photo?+
Facet uses MediaPipe to map 468 facial landmarks at sub-millimeter precision. Each measurement is then checked against thresholds drawn from peer-reviewed morphometry papers. This is the same landmark technology used in clinical aesthetic research. Front-facing analysis covers most parameters; some (gonial angle, Goode nasal index, cervicomental angle) require a profile photo and are deferred in the current version.
Does Claude AI decide my scores?+
No. Scoring is fully deterministic: every score is computed by a TypeScript scoring engine running threshold math, not by an AI model. Claude is invoked only to generate qualitative observations and improvement recommendations after the scores are already computed. A defensive function (stripClaudeScores) removes any score field Claude tries to return.
Why is my score different from another tool's score?+
Different tools use different scales, different thresholds, and different methodologies. Facet's scores are reproducible (run the same scan twice, get the same score) because the scoring engine is deterministic. Tools that use trained AI models often produce different scores on re-runs of the same photo.
How does Facet handle different ethnicities?+
Ethnicity-aware thresholds are baked into the scoring engine (migration 007 in the codebase). Seven categories are supported: Caucasian, East Asian, African descent, South Asian, Hispanic/Latino, Middle Eastern, Mixed/Other. The scoring engine resolves thresholds per-ethnicity for parameters where ethnic baselines genuinely differ (e.g. nasal width, skin homogeneity).
What does Facet not measure?+
Several profile-only parameters require a side-view CV pipeline that Facet has not yet built: Goode nasal index, nasofacial angle, gonial angle, Merrifield Z, cervicomental angle, E-line, Burstone. CV proxies for Merz wrinkles, GEA acne, and Sadick TTRS are computed but disabled in the aggregator pending recalibration against real photos. These limitations are documented in the report.
Can I take my Facet report to a dermatologist?+
Yes. The report is designed to be a clinical baseline you can share. Every score cites the underlying research, so the methodology is defensible. The report is not a diagnosis and should not replace a licensed clinician's assessment.
About the methodology
Facet was built by Adam Al Msharafie, a solo developer. The scoring engine, threshold library, and citation index are public via the methodology pages on this site. Every score in your report links back to the specific paper that justifies the threshold. The methodology is open to scrutiny, and the roadmap (what is built, what is deferred) is documented.