Methodology · harmony-0.3.0
How Ratioface Calculates Your Facial Analysis Score
Every number on Ratioface comes from the same 478 facial landmarks, the same four components and the same weights. This page publishes the whole rule — the formulas, the landmark pairs we measure, and the algorithm version — so you can check our work instead of taking a score on faith.
Want to see these formulas applied to a real face? Open the sample report. Want to run your own? Test your attractiveness — free.
Definitions for the focused tools
We define the midface ratio as the vertical distance from the eye-centre line to landmark 2 at the base of the nose, divided by the distance between the two eye centres, after aligning the eye line in pixel space.
Jawline rating combines three 2D readings. Jaw width / cheekbone width is distance(172, 397) / distance(234, 454); jaw contour / face height is the lower third, (y[152] − y[2]) / (y[152] − y[10]); visible jaw angle is the mean of contourAngle(234, 172, 152) and contourAngle(454, 397, 152), in degrees. Each reading is r = clamp(1 − abs(x − reference) / tolerance), so r is 1 at the reference position and 0 at the tolerance edge. The rating is 100 × mean(r1, r2, r3), placed on the same 0–100 scale the full report uses, and the bands are the full report's existing ones (60 / 78 / 83 / 87). References and tolerances are unvalidated product settings rather than clinical or aesthetic norms, and the direction bars use illustrative display spans that do not clip the printed reading. The angle is a 2D contour angle in the photo, not a bone angle. This is a frontal measurement: the camera cannot see bone, masseter muscle, body fat, bite or profile projection, and a single photo cannot separate camera distance, head angle and expression from anatomy.
Each eye centre is the midpoint of its inner and outer corners: (33, 133) and (263, 362). These are corner-based centres, not pupil detections. M = (y[2] − mean(yEyeA, yEyeB)) / distance(eyeA, eyeB). The comparison reference is 0.50, an unvalidated product setting rather than a population norm. The supporting table shows the raw ratio; the full report uses its original harmony measurements. This ratio does not change the existing midfaceRatio metric, which is the brow-to-nose fraction of contour height in the harmony report.
Face shape uses face length / cheekbone width, jaw width / cheekbone width, and forehead width / cheekbone width. References are listed below. We rank Euclidean distances after dividing the three reference differences by 0.20, 0.15 and 0.15 respectively. The full report shows the closest shape and an alternative. Reference distances and a separate close-call label are not displayed. No boundary probability is estimated, and jaw angles do not determine these labels.
For each of the ten landmark pairs listed below, mirrored deviation is sqrt((xLeft + xRight)² + (yLeft − yRight)²) / cheekbone width after centring and aligning the eye line. We show the average and largest pair as percentages of cheekbone width. Mouth-line alignment is atan2(abs(y[61] − y[291]), abs(x[61] − x[291])) in degrees after eye-line alignment. The full report keeps its existing component interpretation; the supporting table does not add a separate symmetry grade.
Eye line position is (y[152] − mean(yEyeA, yEyeB)) / (y[152] − y[10]): upward from the chin, as a fraction of contour height. Cheekbone / jaw width is distance(234, 454) / distance(172, 397). Direction bars use illustrative display ranges: face aspect 0.8–2.2; jaw and forehead ratios 0.5–1.2; symmetry difference 0–12%; mouth angle 0–15°; midface and eye position 0–1; cheekbone / jaw 0.8–1.6. The printed readings remain unclipped. We cannot quantify how much of a single-photo reading comes from camera conditions rather than anatomy.
If you want to see these in practice, run the attractiveness test → — it is where all four components are combined into one score.
The Score in One Line
score100 = round(1000 * (0.40*S + 0.20*T + 0.20*F + 0.20*G)) / 10; score10 = score100 / 10
S, T, F and G are symmetry, visible thirds, horizontal fifths and the contour ratio component. clamp limits each component to 0–1. The canonical score is 0–100, rounded once to one decimal; divide it by ten for the 0–10 display with two decimals. For example, 81.3 / 100 is 8.13 / 10. These are two displays of the same score.
What happens when a measurement is missing
If the photo does not contain enough of the face to compute every required measurement, we return no score at all, and tell you why. We do not fill a gap with an average or a guess.
Component 1 — Symmetry (40%)
We convert landmarks to image pixels, align the line between the eye centers horizontally and place its midpoint at the origin. Eye centers are the midpoints of 33/133 and 263/362. We mirror ten selected pairs across the vertical axis through that origin. The mean pair distance is divided by cheek width d(234,454), giving the normalized mirrored pair deviation.
S = clamp(1 - mirrored pair deviation / 0.12)
The ten pairs are 33/263, 133/362, 159/386, 145/374, 105/334, 98/327, 61/291, 234/454, 172/397 and 103/332. The tolerance 0.12 is a product setting, not a clinically or aesthetically validated normal range. Small asymmetries are not defects.
Component 2 — Facial Thirds (20%)
Visible thirds use aligned vertical coordinates: contour point 10 to the midpoint of brow points 105/334, that brow midpoint to nose point 2, and point 2 to chin point 152. Each segment is divided by the total contour height y152 - y10. The reference is one third for each segment.
T = clamp(1 - sum(abs(visible third - 1/3)) / 0.60)
Point 10 is a visible contour landmark, not the true hairline. These are visible contour thirds, not anatomical hairline thirds. We add the absolute deviations of all three segments and use a tolerance of 0.60 (see limitations).
Component 3 — Facial Fifths (20%)
We use the aligned horizontal positions of 234, 33, 133, 362, 263 and 454, reversing their order when necessary to read left to right. The five adjacent widths are divided by the horizontal span between cheek points 234 and 454. We add their absolute deviations from 0.20 and use a tolerance of 0.80. Ear edges are not measured.
F = clamp(1 - sum(abs(horizontal fifth - 0.20)) / 0.80)
Component 4 — Golden Ratio (20%)
This component compares one ratio with the product reference 1.618: aligned contour height (y152 - y10) divided by cheek width d(234,454). It does not combine mouth-to-nose or eye-to-brow ratios. The tolerance is 0.50.
G = clamp(1 - abs(contour height / cheek width - 1.618) / 0.50)
Reaching the reference ratio exactly is not the goal, and most faces sit some distance from it. This component measures distance, not beauty.
The 478 Landmarks We Use
All measurements come from a 478-point facial mesh that runs inside your browser. These are the pairs and points our components depend on:
| What we measure | Landmark indices |
|---|---|
| Inner / outer eye corners | 133 / 33 and 362 / 263 |
| Upper / lower eyelid pairs | 159 / 386 and 145 / 374 |
| Brow peak | 105 / 334 |
| Nose base / tip | 2 / 1 |
| Nostril edges | 98 / 327 |
| Mouth corners | 61 / 291 |
| Upper / lower lip center | 13 / 14 |
| Lower contour points | 172 / 397 |
| Chin base | 152 |
| Widest cheekbone | 234 / 454 |
| Upper contour (not hairline) | 10 |
| Forehead width | 103 / 332 |
Face Shape Reference Table
Face shape is a descriptive label, not a score. We compare three ratios with each reference below: d(10,152)/d(234,454), d(172,397)/d(234,454) and d(103,332)/d(234,454). Unlike the aligned vertical height used in the golden ratio component, d(10,152) is a straight-line distance. Differences are divided by 0.20, 0.15 and 0.15 respectively, then combined as a Euclidean distance. The closest reference is the label; the next closest is the alternative.
| Face shape | Contour / cheek width | Lower / cheek width | Upper / cheek width |
|---|---|---|---|
| Oval | 1.38 | 0.77 | 0.88 |
| Round | 1.12 | 0.85 | 0.91 |
| Square | 1.18 | 0.94 | 0.94 |
| Heart | 1.32 | 0.67 | 0.97 |
| Diamond | 1.40 | 0.72 | 0.77 |
| Oblong | 1.62 | 0.83 | 0.89 |
| Triangle | 1.30 | 0.97 | 0.80 |
These boundaries are our own working definition and have not been validated against a labelled reference set. Treat the label as a starting point for the report, not as a classification standard.
What We Do Not Measure
So there is no confusion about what the number covers:
- True hairline position or anatomical hairline thirds
- Skin quality, texture or tone
- Your age
- Profile projection (the analysis is frontal)
- Body composition or weight
- Anything about your health
All 22 measurements are visible in the free tool. FWHR is cheek width divided by the aligned height from the brow midpoint to upper-lip point 13. Canthal tilt describes eye-corner angles after roll correction. FWHR, canthal tilt and 2D jaw contour angles are descriptors, not additional weighted components. We do not report side-profile ratios or bone angles.
Score Bands
Bands are our product setting. They describe where a score sits in the range, and nothing more:
| Band | Score |
|---|---|
| Closest alignment | 87.0 – 100.0 |
| Strong alignment | 83.0 – 86.9 |
| Close alignment | 78.0 – 82.9 |
| Mixed alignment | 60.0 – 77.9 |
| Exploratory alignment | 0.0 – 59.9 |
Algorithm Version and Reproducibility
Current version: harmony-0.3.0.
The same landmark coordinates and image dimensions produce the same score with this algorithm. Repeated photo inference also depends on preprocessing, model version, browser, device and GPU or CPU backend; small numerical differences are possible. Version harmony-0.3.0 replaces the earlier eye-width, centering and eye-spacing components with visible thirds, horizontal fifths and the contour ratio. Weights remain 40/20/20/20; historical results keep their stored version.
harmony-0.3.0 · explanation updated 2026-10-07
Limitations and Disclaimers
- The reference values and weights on this page are product settings used to produce a consistent, comparable score. They are not a universal standard of attractiveness and not a medical or psychological assessment.
- After correcting for head rotation, a higher outer than inner eye corner counts as a positive canthal tilt. Photos taken with the head tilted change this measurement.
- No face, multiple faces, missing or non-finite landmarks, out-of-frame required points, degenerate geometry, very small faces or severe geometric pose deviation produce an error. Other photo conditions may produce a result with warnings. Pose exclusion uses a geometric heuristic, not a calibrated angle threshold.
- The face shape table is an exploratory label, not a validated classification.
Frequently Asked Questions
Do I need an account to see my score?
No. Face shape and your harmony score are free, unlimited and need no sign-up.
Can I change my score by uploading a different photo?
Changing the photo can change the measurement. Use even lighting, no filters and a straight head position. Compare results under similar conditions and with the same model and algorithm versions; different versions may score the same photo differently.
Why is symmetry weighted at 40%?
The 40% weight is a product choice that gives symmetry the largest contribution. It is not a calibrated reliability estimate or a scientifically established weight for attractiveness. All four components can be affected by photo conditions.
Is my photo uploaded to calculate this?
No. The landmark model runs inside your browser tab. Your photo is never sent to our servers.
What is the full report?
The planned $9.99 PDF report saves the same 22 measurements, four scoring components, formulas and photo-quality notes already available in the free tool. It does not unlock extra measurements or predict appearance changes. See a sample report.
The full report and payments are not available yet.
How do I know this page matches what the site actually does?
The tool displays its algorithm version and formulas. Release checks compare this page’s version, formulas, face-shape references and score bands with the scoring code. If the displayed explanations disagree, tell us — that is a bug.