Skip to content

Domain Model: Unified Financial Profile (Personal Finance)

1. Core Entities

1.1. Profile (The "Financial Twin")

The root aggregate for a user.

{
  "profile_id": "usr_123",
  "tenant_id": "org_neobank_abc",
  "created_at": "2023-10-01T12:00:00Z",
  "base_currency": "GBP",
  "risk_score": 750,
  "segments": ["high_earner", "crypto_active"],
  "identity": {
    "legal_name": { "first": "Jane", "last": "Doe" },
    "dob": "1990-01-01",
    "email": "jane.doe@example.com",
    "phone": "+447700900000",
    "citizenship": "GB",
    "national_id": "AB123456C" // Stored encrypted in Vault.
  }
}

1.2. Account

A container for value. Supports connected feeds and manual entry. - Types: CHECKING, SAVINGS, CREDIT_CARD, LOAN, MORTGAGE, INVESTMENT, CRYPTO_WALLET, PROPERTY, OTHER_ASSET. - Source: PLAID, YAPILY, MANUAL.

1.3. Transaction

An atomic movement of value. - Standardised Fields: - amount: Signed decimal (negative = outflow). - currency: ISO code. - status: PENDING, POSTED. - enrichment: - merchant_name: Cleaned name (e.g., "Starbucks"). - category: Hierarchical (e.g., Food & Drink > Coffee). - recurrence: WEEKLY, MONTHLY, SUBSCRIPTION.

See also: FintraOS Open Standard (FOS) for schema details.

2. Intelligence Models

2.1. CashflowStream

A detected recurring pattern. - type: INCOME | EXPENSE - frequency: MONTHLY - next_expected_date: 2023-11-01 - confidence_score: 0.95

2.2. Forecast

Probabilistic future states. - target_date: 2023-12-01 - predicted_balance: 1500.00 - lower_bound: 1200.00 - upper_bound: 1800.00

3. Configuration (Client Controlled)

3.1. RuleSet

Client-defined logic for "FintraOS Brain".

{
  "rule_id": "rule_low_balance",
  "trigger": "transaction.created",
  "condition": {
    "and": [
      { "<": ["account.balance", 100] },
      { "==": ["account.type", "CHECKING"] }
    ]
  },
  "action": "emit_event:low_balance_warning"
}

4. Extensibility Models

4.1. PlatformData

External data points ingested from tenant platforms. - key: "rides_completed" - value: 45 - context: { "region": "london" }

4.2. AgentSkill

Capabilities exposed to the AI Agent (e.g., "transfer_money", "update_budget"). - skill_id: Unique identifier (e.g., "cmd_transfer_funds"). - name: Human-readable name. - description: Instructions for the LLM on when/how to use this skill. - webhook_url: The internal endpoint to call when this skill is invoked. - required_scopes: List of permissions required (e.g., ["money:move", "account:read"]). - governance: - risk_level: LOW | MEDIUM | HIGH | CRITICAL. - requires_human_approval: Boolean. - max_daily_limit: Monetary amount (if applicable).

See also: FintraOS Open Standard (FOS) for full schemas.