# Dating and romance scams

Photo verification shows that a profile belongs to a real person. It does not
show what that person is doing in the chat. A romance scam is a conversation:
warmth for days, a move to another app, then a story that ends in a request for
money or an investment. SigWise scores the **user**, over all their messages, so
the pattern is visible before the request.

## What to send

- **Messages** between matched users. Send both sides, so the signal can see
  how the other person responds.
- **Actions**: account created, profile edited, photo changed, matches made,
  reports received, verification passed.
- **Context** in `metadata`: account age, verification status, how many matches
  the user has started conversations with in the last day.

```json
POST /v1/objects/user-5521/events
{
  "object_type": "user",
  "events": [
    { "type": "event", "name": "account.created", "metadata": { "account_age_days": 3, "verified": false } },
    { "type": "message", "content": "You have such a kind smile. I do not usually write first." },
    { "type": "message", "content": "I hate this app, can we talk on Telegram? It is easier for me." },
    { "type": "message", "content": "I made good money last month with a platform my uncle uses. I can show you, it is very safe." }
  ]
}
```

The conversation above is invented for this page.

## The signals

```json
PUT /v1/signals/moves_to_other_app
{
  "type": "noul",
  "instructions": "Is this user trying to move the conversation to another app or channel early in the relationship?",
  "criteria": {
    "true": "asks for a phone number, WhatsApp, Telegram or another channel within the first messages, or insists on leaving the app",
    "false": "keeps chatting in the app, or shares contact details only after a long, mutual conversation"
  }
}
```

```json
PUT /v1/signals/money_or_investment_pitch
{
  "type": "choice",
  "instructions": "Is this user introducing money, a financial hardship or an investment opportunity?",
  "criteria": {
    "none": "no talk of money",
    "hardship_story": "describes an emergency, a stuck payment or a need for help with money",
    "investment_pitch": "recommends a trading platform, crypto, or a way to make money, especially one they say they or a relative use"
  }
}
```

A third signal, `romance_scam_risk` (a `score`), combines what the user has said
with their account's age and how many conversations they started at once.

## Act on it

- **Show a safety prompt** inside the conversation when `moves_to_other_app` is
  high on a new account.
- **Queue for review** when `money_or_investment_pitch` is `investment_pitch`
  and the account is young. A [rule](https://sigwise.ai/docs/guides/rules.md) can send these to your
  trust team in Slack.
- **Hold the user's reach** (fewer new conversations per day) while a review is
  open, rather than removing them outright.

Start in alert-only mode and review what it flags before you restrict anyone.
See [Test SigWise on your own data](https://sigwise.ai/docs/guides/evaluating.md).

## Judge fairly and respect privacy

Real people also move to other apps, usually after getting to know each other.
That is why the signal considers how early and how insistent the request is, and
why the account's history matters. Messages on a dating app are private. Choose
a [retention policy](https://sigwise.ai/docs/guides/data-retention.md) that keeps content only as long as
you need it, and tell your users in your privacy policy that conversations are
analysed for safety.
