# Model Card — AnomalyShield reference scorer (v0.1.0)

**Status:** illustrative reference, **not trained, not validated**.

## Intended use
Prioritise a human-review queue by estimated risk of age-inappropriate adult→minor
contact. Output is a risk signal; a trained human is the decision-maker.

## Out-of-scope / prohibited
Automated enforcement; public identification, naming or watch-lists; treating a score
as proof of intent or guilt; scoring real people with these illustrative weights;
profiling by identity, ethnicity, religion or national origin.

## Inputs
Abstract numeric features (see `features.py` / `FEATURE_DOC`). Feature extraction from
real content is **out of scope** for this package.

## Method
DAC sub-score = 100·σ(w·x+b); Social-Contact sub-score likewise; composite = calibrated
fusion in logit space. Calibration via temperature scaling. (`scoring.py`, `calibration.py`.)

## Weights
**Illustrative placeholders**, hand-set for exposition; not learned. Replace by training
on labelled data before any reliance.

## Evaluation
On synthetic data only, to demonstrate the *reporting format*: precision@k with bootstrap
CIs, recall@k, lift, AUPRC/AUROC, ECE/Brier. Real numbers require real held-out data.

## Limitations
Public grooming-detection benchmarks use adult decoys, not real victims; models degrade on
coded language, encryption and new platforms; age inference carries 4–7y error. Severe class
imbalance means even strong rankers yield many false positives — hence mandatory human review.

## Ethical & legal
GDPR (Art. 8 children's data; Art. 22 meaningful human review), DSA, EU AI Act (likely
high-risk). Fairness/subgroup audit required. See `GOVERNANCE.md`.
