Account Longevity
How to compute and send account age for age assurance scoring.
Overview
Account longevity carries the lowest weight (9%) in the Signal Fusion engine, but it provides a useful corroborating signal — especially for flagging brand-new accounts. A child is unlikely to have maintained an account for 5+ years, making mature accounts a reliable adult indicator. Conversely, very new accounts paired with child-like behavioral patterns raise suspicion.
This is the simplest signal to implement — it requires a single date calculation from data you already have.
Fields Reference
| Parameter | Type | Required | Description |
|---|---|---|---|
account_age_days | number (>= 0) | Required | Number of days since the user's account was created. Required when account_longevity is present. |
How Account Age Affects Scoring
The engine maps account age to a maturity score:
| Account Age | Score | Tag | Interpretation |
|---|---|---|---|
| < 7 days | 0.20 | very_new_account | Red flag — especially paired with child-like behavior |
| 7–30 days | 0.35 | new_account | Mildly suspicious |
| 30–365 days | 0.50 | (neutral) | No signal either way |
| 1–5 years | 0.70 | established_account | Mild adult indicator |
| 5+ years | 0.95 | mature_account | Strong adult corroborator |
A 5-year-old account (1,825+ days) belonging to a user currently assessed as "under-13" would mean the account was created when the user was 8 or younger. This is a strong signal that the user is likely older than the OS signal suggests.
How to Collect
Compute the number of days between the user's account creation date and the current date.
// Account age is computed server-side from your database.
// Your React app requests it from your backend:
async function fetchAccountAge(userId: string): Promise<number> {
const res = await fetch(`/api/account-age/${userId}`);
const { account_age_days } = await res.json();
return account_age_days;
}
// Include in signals sent to your backend for A3:
// { account_longevity: { account_age_days } }When to Compute Account Age
Compute account age server-side from your user database. This signal should never come from the client — a user could trivially forge their account creation date.
| Source | Recommended |
|---|---|
Your database users.created_at column | Yes |
JWT token iat (issued at) claim | Only if it reflects account creation, not session start |
| Client-provided value | No — always compute server-side |
Pairing with Other Signals
Account longevity is most powerful when combined with behavioral metrics:
-
New account + child-like behavior — A very new account (< 7 days) with low touch precision, rapid scrolling, and high autocorrect usage is highly suspicious. The combination of
very_new_accountand behavioral flags significantly increases override confidence. -
Mature account + adult behavior — A 5+ year old account with consistent adult-level behavioral patterns is a strong confirmation. This combination helps the engine produce
CONSISTENTverdicts with high confidence. -
Mature account + child-like behavior — This is the most interesting case. A 5-year-old account showing child-like interaction patterns could indicate a shared device (parent's account used by child), account takeover, or a legitimate user whose behavior happens to pattern-match. The engine weighs behavioral metrics (43%) far more than account longevity (9%), so strong behavioral evidence can still trigger an override even with a mature account.
Next Steps
- Signal Collection Overview — integration paths and coverage guidance
- Behavioral Metrics — the highest-impact category (43%)
- Full API Reference — complete endpoint documentation