> ## Documentation Index
> Fetch the complete documentation index at: https://docs.botshield.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Signal Durability

> The streak mechanism. Consecutive days the device has been signed into BotShield, and how it drives MultiPass freshness.

# Signal Durability

Signal Durability is **the streak** — the number of consecutive days the device has been signed into BotShield. It is the primary time signal that drives the **MultiPass TTL window** (`ttlHours` in the freshness math).

## How a Day Counts

A day counts when the user has at least one verified session on a registered device — the device is logged into BotShield with a valid local credential. A verified session is established by any hardware-backed biometric event (Face ID / Touch ID / passcode via the Secure Enclave).

## The Streak Multiplier

The streak feeds a multiplier that produces a base TTL. v2 (per Engine Spec v3.4 §5.4) uses this schedule:

| Consecutive days | Multiplier | Base TTL (streakTtlHours)     |
| ---------------- | ---------- | ----------------------------- |
| ≥ 365            | 7.0        | 168h *(at the 7-day ceiling)* |
| ≥ 270            | 5.5        | 132h                          |
| ≥ 180            | 5.0        | 120h                          |
| ≥ 90             | 4.5        | 108h                          |
| ≥ 30             | 2.5        | 60h                           |
| ≥ 7              | 1.5        | 36h                           |
| \< 7             | 1.0        | 24h                           |

A new device or a fresh account starts at 24h. The base TTL is then combined with [Class A/B Trusted Account boosts](/concepts/trusted-account-signal) and capped at the 168h (7-day) hard ceiling:

```
ttlHours = streakTtlHours
         + classABoost(matureClassACount)
         + classBBoost(matureClassBCount)
ttlHours = min(ttlHours, 168)
```

## What Affects the Streak

| Event                                         | Effect on streak                                             |
| --------------------------------------------- | ------------------------------------------------------------ |
| Daily verified session on registered device   | Increments streak                                            |
| Trusted Account linked or removed             | **No effect** — streak is device-in-BotShield only           |
| Device wiped / lost                           | **No effect** — streak is account-bound (see below)          |
| Re-registering a previously registered device | **Restores** the account's streak — does not start from zero |
| Explicit sign-out from BotShield              | Streak resets on the next sign-in                            |

The v1 90-day auto sign-out has been removed in v2. After `MULTIPASS_TTL_DAYS = 7` of inactivity the **MultiPass freshness** lapses (the user sees the "MultiPass is Not Active" takeover and re-verifies with Face ID), but the credential persists and the streak resumes from the prior count after the next verified session.

## Account-Bound Streak

Signal Durability is stored at the account level, not the device level. Losing, wiping, or deregistering a device does not reset streak history. This protects legitimate users from losing their durability due to hardware events.

Because the streak is account-bound:

* **Device loss does not break the streak.** Register a new device, the streak continues.
* **Device policy: maximum 5 active devices per account.** This cap is what makes account-bound streaks safe — farming across unlimited devices is not possible.
* **Re-registering a previously registered device restores the account's existing streak.** It does not start from zero.

## Calibration Target

The freshness math is tuned around a canonical "established real user" configuration:

> **90-day streak + 2 mature Class A + 2 mature Class B Trusted Accounts → 162h TTL** (Durable-class durability, ≥ 155h threshold)

This is the lived experience the math optimizes for: a real user with a moderate streak and a diversified set of identity-verified anchors should get \~6.5 days between Face IDs. Brand-new users or users with no Trusted Accounts live at the 24h base TTL and verify daily.

## What Streak Is Not

* **Streak is not a fraud signal.** A long streak does not prove anything beyond continuous presence.
* **Streak is not recoverable from the outside.** BotShield does not offer a way to credit streak days retroactively.
* **Streak is not shared across accounts.** Creating a new BotShield account starts from zero. The accumulated time investment cannot be transferred — this is the anti-gaming mechanism.

## Related Concepts

* [Trusted Account Signal](/concepts/trusted-account-signal) — Class A/B classification and how mature linkages contribute to ttlHours
* [Human Presence](/concepts/human-presence) — what BotShield verifies in each session and the verdict + reason contract
