# Rental and flatshare scams

A rental scam is decided in the first replies. The "landlord" is abroad, the
keys will be posted, and a deposit is needed to hold the room. No single
message is alarming, and by the time a renter reports it the money has moved.
SigWise scores the **advertiser**, over everything they have said and done, so
the pattern shows while the conversation is still going.

## What to send

Send each advertiser's activity as events on an object named after their user
ID, and the renters' replies as messages on the same object:

- **Messages** between advertisers and enquirers, with the listing in `metadata`.
- **Actions** that matter here: account created, listing posted, listing edited,
  the same photos or address posted on another account, listing price changed.
- **Context** in `metadata`: account age, listing city, monthly rent, deposit
  asked, whether the account is verified.

```json
POST /v1/objects/user-318/events
{
  "object_type": "user",
  "events": [
    { "type": "event", "name": "listing.created", "metadata": { "city": "Leeds", "rent": 520, "account_age_days": 1 } },
    { "type": "message", "content": "Hi, is the room still available? Could I view it this week?" },
    { "type": "message", "content": "Yes, but I am abroad for work at the moment. My agent will give you the keys once the deposit is paid by bank transfer.", "metadata": { "listing": "room-9921" } },
    { "type": "message", "content": "I have another person interested so please confirm today." }
  ]
}
```

The conversation above is invented for this page.

## The signals

Describe the evidence you want weighed. Concrete criteria steer the analysis
far more than words like "suspicious":

```json
PUT /v1/signals/deposit_before_viewing
{
  "type": "noul",
  "instructions": "Is this advertiser asking an enquirer to pay a deposit, holding fee or rent before the enquirer has viewed the property or met the landlord or an agent in person?",
  "criteria": {
    "true": "asks for money first, or makes viewing depend on payment, or says the keys will be posted or collected by an agent after payment",
    "false": "offers an in-person or live video viewing before any payment, or does not ask for money"
  }
}
```

```json
PUT /v1/signals/fake_landlord
{
  "type": "score",
  "instructions": "How likely is it that this advertiser does not have the right to let the property?",
  "criteria": ["unlikely", "unclear", "likely", "very likely"]
}
```

Other useful questions: `claims_to_be_abroad`, `urgency_pressure` (rival
enquirers, "confirm today"), and `repost_of_other_listing` when you send an
event for matching photos or addresses.

## Act on it

Rental platforms usually want two moves:

- **Hold new listings for review** when `deposit_before_viewing` is high on a
  new account. Set `"wait": true` on the advertiser's first messages if you want
  the verdict before the enquirer sees them. See [Direct moderation](https://sigwise.ai/docs/guides/moderation.md).
- **Alert your trust team in Slack** when a listing crosses a line, with a
  [rule](https://sigwise.ai/docs/guides/rules.md):

```json
{
  "name": "rental scam alert",
  "when": "deposit_before_viewing >= 80 and fake_landlord >= 2",
  "action_type": "slack",
  "action_config": { "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXX" },
  "cooldown_seconds": 3600
}
```

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

## Judge fairly

Real landlords also work abroad and also ask for deposits, usually after a
viewing. That is why the criteria above separate "payment before viewing" from
"deposit at all". Keep the question narrow, and add the account's history (age,
verified identity, earlier listings) so a long-standing landlord is judged in
context.
