Provenance
Questions: public consult-form evidence 2026-11-05 (n=8), unvalidated Factors: public consult-form evidence 2026-11-05 (n=8), unvalidatedLaser-removal pack v0 (PRD-014)
This is an unvalidated reference pack, not a production quoting or medical assessment system. It estimates one non-cosmetic tattoo at a time, subject to an in-person consultation in every case. Neither removal, session count, outcome, safety nor final price is guaranteed. The existing site is unchanged.Evidence and limits
The canonical supplied evidence is preserved exactly inresearch/evidence/laser-removal-2026-11-05.json.
Its provenance and collection statements are supplied reviewer records, not an
independent revalidation or permission to collect more material. No network
collection is needed to use this pack.
This is a convenience sample of 8 eligible sources, 6 with forms, including
consultation guidance and a pricing FAQ. It is not representative; even a page
with a form can have tags from surrounding guidance rather than literal fields.
Question source_ids lists all eligible sources tagged for the corresponding
factor, and evidence_count is that list’s length. Counts use all eight sources,
not only the six form-bearing sources. Excluded sources do not contribute.
Frequency supports intake coverage only. It does not establish clinical relevance,
causation, weights, prices, or validated session predictions. Public price
observations remain context only and are never evaluator defaults. LR06’s
session guidance and LR04’s full-removal-versus-fade discussion provide context,
not scientific derivation of the numerical assumptions below.
Intake and privacy
The six core questions above are required:placement: a nonempty string; collected, not assigned a placement multiplier.ink_colors: a nonempty array from the catalog color options;unsurerequires manual review.tattoo_age: a nonnegative finite number of years; no age-based adjustment.size:small | medium | large. These are business-defined tiers, not universal dimensions. The business must explain its own tier boundaries.removal_goal:full_removal | fade_for_cover_up | unsure.photo:{ client_reference: string, clear: boolean, has_scale: boolean }. A usable reference must be nonempty, clear and include a scale.
prior_treatment is boolean; prior_session_count is an
optional nonnegative integer shown conditionally when prior treatment is true
using the question’s show_if condition. An omitted count means unknown, not zero.
Optional Fitzpatrick skin type I–VI is descriptive and non-diagnostic; it is not
inferred, used to assess suitability, or assigned a price multiplier. Budget,
timeline and informational details do not affect price or promise treatment dates.
PMU/cosmetic work and multiple tattoos require manual review rather than automatic
pricing. Each tattoo needs its own intake and consultation.
Business configuration and evaluation
Callevaluate(answers, config) with an explicit configuration. Alongside the
intake fields, answers must include protocol consent metadata
{ share_for_pricing_research: boolean, anonymize: boolean, captured_at: string }
under consent; opting out of research is supported. Photo references, placement
and free text are not echoed in the result. Configuration shape:
Any color other than black/grey adds
[0, 2] once, not once per color.
Known prior session count subtracts from both endpoints. The minimum is floored
at 1 and the maximum remains at least one session above the minimum; past
sessions cannot establish completion or eliminate remaining uncertainty.
Prior treatment with an unknown count widens only the maximum by 2. These are
illustrative modeling choices, not clinical rules or deductions from frequency.
The total range uses the configured per-session rate for the selected size times
the remaining-session endpoints. Placement, age and optional details do not add
hidden adjustments. There are no package discounts, deposits, treatment schedules
or interval promises, even where the evidence mentions them.
A priced result uses the protocol Estimate schema, including the additive
session-range variant with min/max and requires_in_person_consult. Required
consultation does not turn the reference estimate into a final quote. A manual
result is a separate, unpriced result, not an Estimate with zero or invented
prices: its review status is MUTATION_REQUIRED. PMU, multiple tattoos, missing
size or photo, unclear photos, missing photo scale, invalid required answers and
invalid business configuration all require this manual path.
Metadata and judgment calls
- Core-versus-optional intake is a conservative reference design, not a claim that every sampled provider requires these six fields.
- Source coverage is traceable through additive
source_ids/evidence_count. Question status marks assumptions/unvalidated choices. Factorevidence_statusis separate from the existingstatusvaluesmodeled/not_yet_modeled: an implemented factor is not validated evidence. - Session assumptions, the color adjustment, prior-session subtraction/floor, unknown-count widening and three business-defined size buckets are deliberately explicit unvalidated judgments. No universal size thresholds are invented.
- Required photo quality and scale are attested intake gates, not automated image analysis. Client references are not returned as estimate content.
- Conditional display is represented by question
show_if; display logic does not make missing core answers valid or override manual-review gates. inference-rules.jsonis empty: this pack does not invent text inference. An additive shared inference-rules schema validates its envelope and the existing tattoo rules; the schema inventory test now expects ten schemas.- Shared schema additions are additive; the manual-review result is not forced into the priced Estimate contract. This pack does not change tattoo pricing, deploy a site, or validate a medical treatment plan.