Sagging and firmness
Overview
Section titled “Overview”Sagging measures visible loss of skin elasticity — most prominent at the jawline, jowls, lower cheek, and brow. Firmness is its inverse. Both are computed from the same analysis. Visualization markers identify the regions contributing most to the score.
components: - skin_sagging - skin_firmnessrequest: query: "components=skin_sagging,skin_firmness,skin_sagging_visualization"response_path: - "results[].description == \"skin_sagging\"" - "results[].description == \"skin_firmness\""value_range: [0, 1]also_request: - skin_sagging_visualizationwarnings: [3001, 3002, 4000] # 3001/3002 -> skin_sagging, 4000 -> skin_firmnessWhen to use which
Section titled “When to use which”skin_sagging— diagnostic UI for anti-aging routines.skin_firmness— improvement-over-time UI (“your firmness improved”).
Reference imagery
Section titled “Reference imagery”Reference imagery for this metric is not yet published.
Rendering notes
Section titled “Rendering notes”const sag = response.results.find((r) => r.description === "skin_sagging");const firm = response.results.find((r) => r.description === "skin_firmness");skin_sagging returns a single measurement_locations[] entry, described as Global. It is not a region score — its value is null, and it exists to carry the whole-face visualization_data. The score you display is the finding’s top-level value. The entry is present on every successful run, with an empty visualization_data when skin_sagging_visualization wasn’t requested.
This is a slow-changing metric — month-over-month tracking is appropriate; week-over-week noise will dominate signal.
Edge cases
Section titled “Edge cases”valuecan benullfor males in the lower-face / beard region. Beard analysis isn’t reliable, so the API returnsnullrather than guessing — this behavior is fixed, not configurable. Render skin sagging with an “n/a” treatment whenvalueis null. (In rare cases, some analysis areas may not be visible and will return null exceptionally.)
local_warnings[]
Section titled “local_warnings[]”3001(error, onskin_sagging) — Cannot analyze skin sagging since eyebag analysis had failed.3002(error, onskin_sagging) — Cannot analyze skin sagging since wrinkle analysis from required locations had failed.4000(error, onskin_firmness) — Skin firmness not analyzed due to error in skin sagging analysis.
Related
Section titled “Related”- How metrics connect —
skin_firmnessis the inverse ofskin_sagging; sagging combineswrinkles+eyes. - Visualization data — Cat D− (advanced visualization structure but with simpler outputs — relevant finding-area data only). Polygon-area type, intensity range
[0..1]. - Rendering recipes → Polygon areas — paste-ready renderer; a neutral white overlay reads better here than the warm-color ramp used elsewhere — the metric is more “regions contributing to the score” than a severity heatmap.