How PatchTest decides

Everything on this page is checkable. The rules are data, the thresholds are numbers you can read, and every source was fetched and quoted rather than remembered.

The LLM proposes, the rules decide

A language model reads your intake, your scan and the catalogue, and proposes a routine. It never sets a verdict. A pure TypeScript function then evaluates every item against 24 rules held in a YAML file, and that function produces the verdicts you see.

When the rules reject something, the rejection goes back to the model and it revises, up to two rounds. The rules still have the last word afterwards. Anything the model writes in prose passes through a filter that rewrites or drops wording a shop has no business using before it reaches you.

The engine evaluates what you put in your cart as well as what the model proposed. If the model quietly drops the thing you asked for, you would never learn why. Every item you added gets a verdict, even when the answer is no.

Which YouCam APIs are used, and where

APIWhat we take from itUnitsIn the code
AI Skin Analysis, SD tierEight concerns: acne, redness, oiliness, moisture, age_spot, wrinkle, texture, skin_type. We read raw_score and the mask overlays.12lib/youcam/client.ts
AI Fitzpatrick Skin Type AnalysisOne value, I to VI. Drives the three skin tone rules. You can override it.10lib/youcam/client.ts
File APIPre-signed upload. One upload serves both analyses.0lib/youcam/client.ts

One full scan costs 22 units, charged only when a task succeeds. Failed tasks are free. Every live call is written to an append-only ledger with the endpoint, the units, the status and a SHA-256 of the image. The image itself is never stored. A circuit breaker refuses live calls past the hard stop or the daily cap and falls back to a replayed scan.

Why we decide on raw_score

YouCam returns two numbers for every concern because they do two different jobs. ui_score is documented as a motivator, the number you show someone to keep them going. raw_score is the measurement. Both are useful. They are useful for different things, and a tool deciding what not to sell needs the second one.

On our recorded scans the adjustment is not a flat lift, it is a compression toward the middle. On one face a texture raw_score of 17.8 is presented as 53. We also found that the overall score the API returns is the mean of the ui_score values, not the measured ones. Both numbers are shown to you, labelled.

The engine is tested on this. One test replaces every ui_score with nonsense and asserts the verdicts come back identical.

Why we never read age off your face

The skin analysis returns a skin_age. We display it and no rule reads it. Age bands drive blocking rules, and a blocking rule should not rest on an estimate the vendor does not describe as an identity check. Across our nine recorded scans the returned value ranged from 8 years below to 20 years above the age the face was generated to depict.

The same principle applies to the scan generally. A low score never asserts that you have anything. It only decides which question is worth asking you.

Thresholds, all of them heuristic

8 recorded scans, all of AI-generated faces. Run `pnpm calibrate` to reprint the distribution.

Eight synthetic faces are a weak basis. A generated face is not a sample of real skin, and the bank has no Fitzpatrick IV. Treat every number here as provisional. This is stated on the Methods page.

ThresholdValueWhat it does and how it was set
ACNE_ASK_T88Below this acne raw_score, ask the shopper about deep painful bumps and scarring. The score never asserts that acne is present.Was 70, which asked nobody in the bank. The face with visible pustules scored 81.7 and the clearest face scored 96.9, so the whole usable range sits above 80. At 88 the question is asked of the three faces with any visible blemishes.
REDNESS_T60Below this redness raw_score, treat the skin as reactive: barrier first, no stacking.Was 70, which called 5 of 8 faces reactive. At 60 it fires on the flushing face at 7.1, the acne face at 58.4 and the dry face at 55.0, and leaves the rest alone.
WRINKLE_HEALTHY_T75At or above this wrinkle raw_score, an anti-aging product has nothing visible to work on yet.Unchanged. Separates the bank cleanly: the 63 year old face scored 1.1 and every face intended as under 35 scored above 84.
HIGH_ACID_PCT20Leave-on acid percentage at or above which an at-home product is treated as peel-strength. Overridable by the HIGH_ACID_PCT env var.Not scan-derived. A product formulation threshold, not a skin measurement.

Healthy-score cutoffs per concern: acne 95, redness 80, oiliness 75, moisture 70, age_spot 80, wrinkle 75, texture 70.

All 24 rules, with sources

Every rule carries the quote that backs it and the date it was checked. Where a source says less than the rule claims, the rule says so rather than overclaiming.

R-PREG-01Not for you right nowSource checked, supports the ruleguideline

Not for you right now. Retinoids are the one group that pregnancy skincare guidance consistently says to avoid, including the over-the-counter ones.

“It is generally recommended to avoid topical retinoid medications.” (checked 2026-10-30)
R-PREG-02Not for you right nowSource checked, supports the ruleguideline

You told us you are using hydroquinone. Pregnancy guidance says to stop it. Ask whoever prescribed it what to use instead.

“you should avoid prescription skin care or over-the-counter products with these ingredients” (checked 2026-10-30)

The AAD page lists hydroquinone among the ingredients to avoid. The quote is the page's general instruction for that list.

R-PREG-03Not for you right nowSource checked, says less than the ruleguideline

Not for you right now. Pregnancy guidance keeps salicylic acid at low strength and leaves peels alone.

“Broad use of salicylic acid, either with high concentration or under occlusion, should be avoided.” (checked 2026-10-30)

Neither source says the words 'avoid peels'. The catalogue peel is blocked because it is 30 percent AHA, which is above the 10 percent ceiling Putra 2022 gives, and it also contains salicylic acid. The peel branch of this rule is our inference from the concentration limits, not a quoted instruction.

R-PREG-04AdjustSource checked, supports the ruleguideline

Adjust. Benzoyl peroxide is generally treated as acceptable in pregnancy when it is used sparingly rather than over the whole face every day.

“Ingredients to use sparingly during pregnancy” (checked 2026-10-30)

The AAD page files benzoyl peroxide under 'use sparingly' rather than under 'avoid', which is exactly why this rule is ADJUST and not BLOCK.

R-PREG-05AdjustSource checked, supports the rulereview

Adjust. Keep leave-on acid strength modest while pregnant.

“it is considered safe to use AHA in concentration up to 10% with pH > 3.5” (checked 2026-10-30)

The source puts the safe ceiling at 10 percent, so a rule that fires above 10 percent matches it exactly. The 10 percent glycolic toner sits at that ceiling and correctly does not fire. LL-126, a 15 percent lactic acid serum, was added to the catalogue at sign-off so the rule has a live case in the eval and the demo.

R-BF-01AdjustSource checked, supports the ruleguideline

Adjust. Keep this off the nipple and areola, and wash your hands before feeding.

“Do not apply topical acne treatments directly to the nipple or areola.” (checked 2026-10-30)
R-ISO-01Not for you right nowSource checked, supports the rulelabel

Not for you right now. On isotretinoin, and for a while after stopping, skin tears and marks far more easily than usual. Waxing, peels and scrubs are the common way that happens.

“Do not have cosmetic procedures to smooth your skin, including waxing, dermabrasion, or laser procedures, during treatment” (checked 2026-10-30)

A 2017 JAMA Dermatology consensus relaxed the six month wait for some procedures. PatchTest keeps the stricter FDA label wording and shows that note next to the verdict rather than silently picking the looser reading. The label states the six month period directly: 'and for at least 6 months after you stop'. The AAD FAQ covers waxing only, so the label is the primary source here.

R-ISO-02Not for you right nowSource checked, supports the ruleguideline

Not for you right now. Isotretinoin is already doing this job from the inside. Layering actives on top mostly adds dryness and irritation.

“do not use skincare products containing salicylic acid or benzoyl peroxide” (checked 2026-10-30)

The AAD side effects page adds retinol, exfoliating acids, scrubs, toners and vitamin C to the same list.

R-AGE-01Not for you right nowSource checked, says less than the ruleguideline

You don't need this, and it is not for you. There is nothing in young skin for an active like this to work on. The likely result is stinging and a damaged skin barrier, not better skin.

“avoid products with active ingredients like retinol, vitamin C, and exfoliating acids” (checked 2026-10-30)

IMPORTANT. The AAD release of 28 Oct 2025 addresses 'tweens and teens' and never names age 13. The under-13 cutoff is ours, not the source's. The source also notes a dermatologist may still recommend a retinoid or salicylic acid for a young person, which is why this rule covers shopping, not prescribing.

R-AGE-02You don't need thisSource checked, says less than the ruleguideline

You don't need this. Anti-aging actives have nothing to work on yet at your age. A cleanser, a moisturizer and sunscreen is the whole routine.

“which target concerns like wrinkles, sun damage, and uneven skin tone, issues that children don't have” (checked 2026-10-30)

The source treats tweens and teens the same way and would support blocking rather than merely discouraging these actives at 13 to 17. We kept the softer verdict for this band because the same source allows a dermatologist-recommended retinoid or salicylic acid for acne at this age. Needs sign-off.

R-FITZ-01Not for you right nowSource checked, supports the ruleguideline

Not for you right now. At-home peels at this strength are a common way deeper skin tones end up with dark marks that last far longer than the thing being treated. A dermatologist can do a peel safely.

“even the at-home versions of these acne treatments can cause side effects like permanent dark marks” (checked 2026-10-30)

The AAD chemical peel page supports the referral half of the message: 'you should see a dermatologist or dermatologic surgeon'.

R-FITZ-02AdjustSource checked, supports the ruleguideline

Adjust. Start at the lowest strength, every other night, and build up slowly. On deeper skin tones, irritation tends to leave dark marks behind.

“use the least-intense retinoid formula they can find, and use it every other night to start” (checked 2026-10-30)
R-FITZ-03AdjustSource checked, supports the ruleguideline

Adjust. Start at 2.5% rather than 5%.

“To prevent benzoyl peroxide from irritating your skin, start with a product that contains 2.5% benzoyl peroxide.” (checked 2026-10-30)
R-STACK-01AdjustSource checked, supports the rulelabel

Adjust. This cart has more than one strong exfoliating or retinoid product. Use them on alternate nights, or drop one.

“skin irritation and dryness is more likely to occur if you use another topical acne medication at the same time” (checked 2026-10-30)

The adapalene Drug Facts label carries the same warning, and the AAD anti-aging page says to start with one product.

R-STACK-02AdjustSource checked, says less than the rulereview

Adjust. You told us you use tretinoin. Keep benzoyl peroxide to the morning and tretinoin at night, or pick adapalene instead.

“The combination of benzoyl peroxide and light results in more than 50% degradation of tretinoin in about 2 h” (checked 2026-10-30)

Two caveats, both shown to the shopper. The 1998 study tested tretinoin 0.025% gel mixed with benzoyl peroxide 10% lotion under light, so it may not apply to modern encapsulated or microsphere tretinoin. And it never tested whether separating the two by time of day prevents the problem, so that part is our inference. Adapalene stayed stable in the same study, which is why the swap hint is adapalene.

R-SPF-01AddedSource checked, supports the rulelabel

Added. Everything in this cart makes skin more sensitive to sun. Sunscreen is part of the routine, not an upsell.

“Use a sunscreen, wear protective clothing, and limit sun exposure” (checked 2026-10-30)

The FDA AHA sunburn alert is a recommendation to industry rather than a binding rule. The FDA page on beta hydroxy acids is weaker still and only says 'Use sun protection if you use a BHA product'. For benzoyl peroxide the warning is mandatory under 21 CFR 333.350.

R-SENS-01AdjustSource checked, says less than the ruleheuristic

Adjust. Your scan shows skin that is reacting right now. Settle the barrier first and add one active at a time rather than all of them.

“Start with one product.” (checked 2026-10-30)

The threshold is a heuristic set by us, not a clinical cutoff.

R-NEED-01You don't need thisOur own heuristic, no source claimedheuristic

You don't need this. There is nothing here for an anti-aging product to work on yet.

Entirely our own threshold. Labelled heuristic on the Methods page.

R-NEED-02You don't need thisOur own heuristic, no source claimedheuristic

You don't need this. The scan does not show anything for it to work on.

R-DUP-01You don't need thisOur own heuristic, no source claimedheuristic

You don't need both of these. They do the same job.

“Using several anti-aging products at the same time can irritate your skin.” (checked 2026-10-30)
R-REF-01Worth showing a professionalSource checked, supports the ruleguideline

Worth showing a professional. What you described tends to need prescription treatment, and scarring is easier to prevent than to fix. We have kept the gentle basics and sunscreen in your cart and held the rest.

“the spots are deep, painful or causing scars” (checked 2026-10-30)

The AAD 2024 acne guideline gives the stronger version: 'Oral isotretinoin is strongly recommended for acne that is severe, causing psychosocial burden or scarring.' Neither is something a shop can supply, which is the point of the rule.

R-REF-02Worth showing a professionalSource checked, says less than the ruleguideline

Worth showing a professional. That combination is worth a proper look before you put acids or retinoids anywhere near it.

“It's estimated that 50% of people who have rosacea will have a flare-up that affects their eyes.” (checked 2026-10-30)

The AAD page presents these as signs and does not itself tell the reader to see a dermatologist. The referral is our decision, based on the signs the page describes.

R-REF-03Worth showing a professionalSource checked, says less than the ruleguideline

Worth showing a dermatologist soon. A mole that has changed, or a sore that will not heal, is not a skincare question. Please get it looked at.

“see a board-certified dermatologist for a skin exam” (checked 2026-10-30)

The page supports this for a changing mole through its ABCDE criteria. It mentions a sore that does not heal as something to watch for during a self exam but does not explicitly send the reader to a dermatologist for it, so that half of the rule is weaker.

R-REF-04Worth showing a professionalSource checked, supports the ruleguideline

Worth showing a professional. If it is affecting how you feel, or months of over-the-counter products have not shifted it, a dermatologist has options a shop does not.

“it's affecting your mental health” (checked 2026-10-30)

The NHS page also lists 'you've tried treating it yourself but it's not getting better' with no timeframe attached. The two to three month wording in our intake is ours, not the NHS's.

Limitations

  • Fitzpatrick from a photo is a proxy. The real scale is about how skin responds to sun, which a camera cannot see. You can override it and your answer wins.
  • Scan scores are not clinical grades. They describe how skin looks in one photo under one set of lighting conditions. The seven scales are not comparable to each other: on our bank the acne score only ever used the top fifth of its range, while redness used almost all of it.
  • The gold labels come from one clinician. They are not externally validated and they have not been through any review process beyond one physician writing them.
  • The thresholds were calibrated on nine AI generated faces. A generated face is not a sample of real skin.
  • Coverage is finite. 24 rules cover the situations we found sources for. Anything outside them gets no verdict, and a missing verdict is not a safety claim.
  • English only.
  • Not a medical device. PatchTest does not diagnose anything, and it is not a substitute for seeing someone.

The catalogue

26 products in a fictional store called Lumen & Leaf. Every product, name and price is invented. Hydroquinone is deliberately absent: it is not sold over the counter in the US and cosmetics containing it are banned in Indonesia. One rule still covers it, for shoppers who report already using it.