FP&A Platform — Data Dictionary
Version: 1.0
Last Updated: 2026-02-03
Document ID: DATA-001
Classification: Internal
1. Overview
This data dictionary documents all data entities, fields, relationships, and constraints in the FP&A Platform. It serves as the authoritative reference for developers, data engineers, and analysts.
Conventions:
- Field names use
snake_case - Primary keys are named
idwith format{entity_prefix}_{uuid} - Foreign keys are named
{referenced_entity}_id - Timestamps use ISO 8601 with timezone (UTC)
- Money fields use
DECIMAL(19,4)for precision
2. Core Accounting Domain
2.1 tenants
Description: Root entity for multi-tenant isolation. All data belongs to exactly one tenant.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique tenant identifier | tenant_acme123 | Internal | - |
name | VARCHAR(255) | NOT NULL | Tenant display name | ACME Corporation | Internal | - |
slug | VARCHAR(100) | UNIQUE, NOT NULL | URL-safe identifier | acme-corp | Public | - |
status | VARCHAR(20) | NOT NULL | Account status | active | Internal | - |
plan_tier | VARCHAR(50) | NOT NULL | Subscription tier | enterprise | Confidential | - |
settings | JSONB | DEFAULT '{}' | Tenant-specific settings | {"currency": "USD"} | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:30:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-20T14:22:00Z | Internal | - |
Indexes: idx_tenants_slug (slug), idx_tenants_status (status)
RLS Policy: All queries filtered by tenant_id from session context.
2.2 legal_entities
Description: Subsidiaries, business units, or companies within a tenant. Supports hierarchical structures.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique entity identifier | ent_us_hq_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
parent_id | VARCHAR(50) | FK | Parent entity (for hierarchy) | ent_global_001 | Internal | - |
code | VARCHAR(20) | NOT NULL | Short code | US-HQ | Internal | - |
name | VARCHAR(255) | NOT NULL | Full legal name | ACME USA Holdings Inc. | Internal | SOX |
entity_type | VARCHAR(50) | NOT NULL | Type classification | subsidiary | Internal | - |
currency_code | CHAR(3) | NOT NULL | Functional currency | USD | Internal | GAAP |
country_code | CHAR(2) | NOT NULL | Country of incorporation | US | Internal | Tax |
tax_id | VARCHAR(50) | Tax identification number | 12-3456789 | Restricted | Tax, PII | |
fiscal_year_end | VARCHAR(5) | NOT NULL | Fiscal year end (MM-DD) | 12-31 | Internal | - |
consolidation_method | VARCHAR(20) | NOT NULL | Consolidation treatment | full | Internal | GAAP |
ownership_pct | DECIMAL(5,2) | Ownership percentage | 100.00 | Internal | GAAP | |
status | VARCHAR(20) | NOT NULL | Entity status | active | Internal | - |
path | LTREE | NOT NULL | Hierarchy path | acme.us.hq | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:30:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-20T14:22:00Z | Internal | - |
Indexes:
idx_entities_tenant(tenant_id)idx_entities_parent(parent_id)idx_entities_pathUSING GIST (path)idx_entities_code(tenant_id, code) UNIQUE
Entity Types: holding, subsidiary, branch, joint_venture, associate, cost_center
Consolidation Methods: full, proportional, equity, excluded
2.3 chart_of_accounts
Description: Defines the account structure for each entity. Supports multiple account hierarchies.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique COA identifier | coa_acme_us_gaap | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK | Owning entity (null = shared) | ent_us_hq_001 | Internal | - |
name | VARCHAR(255) | NOT NULL | COA name | US GAAP Chart of Accounts | Internal | - |
version | INTEGER | NOT NULL | Version number | 3 | Internal | SOX |
base_currency | CHAR(3) | NOT NULL | Base currency | USD | Internal | - |
effective_date | DATE | NOT NULL | Effective from date | 2026-01-01 | Internal | SOX |
status | VARCHAR(20) | NOT NULL | COA status | active | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:30:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-20T14:22:00Z | Internal | - |
2.4 accounts
Description: Individual GL accounts within a chart of accounts.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique account identifier | acct_1000_cash | Internal | - |
coa_id | VARCHAR(50) | FK, NOT NULL | Parent chart of accounts | coa_acme_us_gaap | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
account_number | VARCHAR(20) | NOT NULL | Account number | 1000 | Internal | SOX |
name | VARCHAR(255) | NOT NULL | Account name | Cash and Cash Equivalents | Internal | - |
description | TEXT | Detailed description | Operating cash accounts | Internal | - | |
account_type | VARCHAR(20) | NOT NULL | Account classification | asset | Internal | GAAP |
account_subtype | VARCHAR(50) | Subtype classification | current_asset | Internal | GAAP | |
normal_balance | CHAR(1) | NOT NULL | Normal balance (D/C) | D | Internal | - |
is_header | BOOLEAN | DEFAULT false | Is header/summary account | false | Internal | - |
is_posting | BOOLEAN | DEFAULT true | Allows direct posting | true | Internal | - |
parent_account_id | VARCHAR(50) | FK | Parent account (hierarchy) | acct_1xxx_assets | Internal | - |
path | LTREE | NOT NULL | Hierarchy path | 1.10.1000 | Internal | - |
level | INTEGER | NOT NULL | Hierarchy level (1-10) | 3 | Internal | - |
fs_line_item | VARCHAR(100) | Financial statement mapping | cash_and_equivalents | Internal | SEC | |
tax_code | VARCHAR(50) | Tax reporting code | CASH | Internal | Tax | |
intercompany | BOOLEAN | DEFAULT false | Is intercompany account | false | Internal | - |
currency_code | CHAR(3) | Account currency (null=func) | USD | Internal | - | |
status | VARCHAR(20) | NOT NULL | Account status | active | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:30:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-20T14:22:00Z | Internal | - |
Account Types: asset, liability, equity, revenue, expense, statistical
Account Subtypes:
- Assets:
current_asset,fixed_asset,intangible_asset,other_asset - Liabilities:
current_liability,long_term_liability - Equity:
contributed_capital,retained_earnings,other_equity - Revenue:
operating_revenue,other_income - Expense:
cost_of_goods,operating_expense,other_expense
2.5 journal_entries
Description: Header record for accounting journal entries.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique entry identifier | je_2026010001 | Internal | SOX |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK, NOT NULL | Owning entity | ent_us_hq_001 | Internal | - |
entry_number | VARCHAR(30) | NOT NULL | Sequential entry number | JE-2026-000001 | Internal | SOX |
entry_type | VARCHAR(30) | NOT NULL | Type of entry | standard | Internal | - |
entry_date | DATE | NOT NULL | Transaction date | 2026-01-31 | Internal | SOX |
period_id | VARCHAR(50) | FK, NOT NULL | Accounting period | period_2026_01 | Internal | - |
description | TEXT | NOT NULL | Entry description | January revenue accrual | Internal | SOX |
reference | VARCHAR(100) | External reference | INV-2026-1234 | Internal | - | |
source_system | VARCHAR(50) | Originating system | salesforce | Internal | - | |
source_id | VARCHAR(100) | Source system ID | opp_abc123 | Internal | - | |
currency_code | CHAR(3) | NOT NULL | Transaction currency | USD | Internal | - |
exchange_rate | DECIMAL(15,8) | DEFAULT 1 | Exchange rate to func currency | 1.00000000 | Internal | - |
total_debit | DECIMAL(19,4) | NOT NULL | Sum of debit lines | 10000.0000 | Confidential | SOX |
total_credit | DECIMAL(19,4) | NOT NULL | Sum of credit lines | 10000.0000 | Confidential | SOX |
status | VARCHAR(20) | NOT NULL | Entry status | posted | Internal | SOX |
created_by | VARCHAR(50) | FK, NOT NULL | Creator user ID | user_john_doe | Internal | SOX |
approved_by | VARCHAR(50) | FK | Approver user ID | user_jane_smith | Internal | SOX |
posted_by | VARCHAR(50) | FK | Poster user ID | user_jane_smith | Internal | SOX |
reversed_by_id | VARCHAR(50) | FK | Reversing entry ID | je_2026010050 | Internal | - |
reverses_id | VARCHAR(50) | FK | Entry being reversed | je_2025120099 | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-31T14:30:00Z | Internal | SOX |
approved_at | TIMESTAMPTZ | Approval timestamp | 2026-01-31T15:00:00Z | Internal | SOX | |
posted_at | TIMESTAMPTZ | Posting timestamp | 2026-01-31T15:05:00Z | Internal | SOX | |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-31T15:05:00Z | Internal | - |
Entry Types: standard, adjusting, closing, reversing, recurring, statistical, eliminating, reclass
Status Values: draft, pending_approval, approved, posted, reversed, rejected
Business Rules:
total_debitMUST equaltotal_credit(balanced entry)approved_byMUST differ fromcreated_by(segregation of duties)posted_atMUST be within period date range- Cannot modify
postedentries
2.6 journal_lines
Description: Individual debit/credit lines within a journal entry.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique line identifier | jel_2026010001_01 | Internal | - |
journal_entry_id | VARCHAR(50) | FK, NOT NULL | Parent entry | je_2026010001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
line_number | INTEGER | NOT NULL | Line sequence | 1 | Internal | - |
account_id | VARCHAR(50) | FK, NOT NULL | GL account | acct_1000_cash | Internal | SOX |
description | TEXT | Line description | Cash receipt from customer | Internal | - | |
debit | DECIMAL(19,4) | DEFAULT 0 | Debit amount (func currency) | 10000.0000 | Confidential | SOX |
credit | DECIMAL(19,4) | DEFAULT 0 | Credit amount (func currency) | 0.0000 | Confidential | SOX |
debit_fc | DECIMAL(19,4) | Debit (transaction currency) | 10000.0000 | Confidential | - | |
credit_fc | DECIMAL(19,4) | Credit (transaction currency) | 0.0000 | Confidential | - | |
quantity | DECIMAL(15,4) | Statistical quantity | 100.0000 | Internal | - | |
unit | VARCHAR(20) | Unit of measure | units | Internal | - | |
dimension_1 | VARCHAR(50) | Custom dimension 1 (dept) | SALES | Internal | - | |
dimension_2 | VARCHAR(50) | Custom dimension 2 (project) | PRJ-001 | Internal | - | |
dimension_3 | VARCHAR(50) | Custom dimension 3 (product) | WIDGET-A | Internal | - | |
dimension_4 | VARCHAR(50) | Custom dimension 4 | Internal | - | ||
intercompany_entity_id | VARCHAR(50) | FK | Intercompany counterparty | ent_uk_sub_001 | Internal | - |
tax_code | VARCHAR(20) | Tax code | VAT-STD | Internal | Tax | |
tax_amount | DECIMAL(19,4) | Tax amount | 0.0000 | Internal | Tax | |
memo | TEXT | Additional notes | Internal | - | ||
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-31T14:30:00Z | Internal | - |
Business Rules:
- Either
debitORcreditmust be non-zero (not both) debitandcreditmust be >= 0- Sum of
debitacross all lines must equal sum ofcredit
2.7 periods
Description: Accounting periods (months) with open/closed status.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique period identifier | period_2026_01 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK, NOT NULL | Owning entity | ent_us_hq_001 | Internal | - |
year | INTEGER | NOT NULL | Fiscal year | 2026 | Internal | - |
period | INTEGER | NOT NULL | Period number (1-13) | 1 | Internal | - |
name | VARCHAR(50) | NOT NULL | Period name | January 2026 | Internal | - |
start_date | DATE | NOT NULL | Period start date | 2026-01-01 | Internal | - |
end_date | DATE | NOT NULL | Period end date | 2026-01-31 | Internal | - |
status | VARCHAR(20) | NOT NULL | Period status | open | Internal | SOX |
closed_by | VARCHAR(50) | FK | User who closed period | user_jane_smith | Internal | SOX |
closed_at | TIMESTAMPTZ | Close timestamp | 2026-02-05T18:00:00Z | Internal | SOX | |
reopened_by | VARCHAR(50) | FK | User who reopened | Internal | SOX | |
reopened_at | TIMESTAMPTZ | Reopen timestamp | Internal | SOX | ||
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2025-12-01T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-05T18:00:00Z | Internal | - |
Status Values: future, open, closing, closed, locked
3. Reconciliation Domain
3.1 bank_accounts
Description: Bank account master data linked to GL accounts.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique bank account ID | ba_chase_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK, NOT NULL | Owning entity | ent_us_hq_001 | Internal | - |
gl_account_id | VARCHAR(50) | FK, NOT NULL | Linked GL account | acct_1010_checking | Internal | SOX |
bank_name | VARCHAR(255) | NOT NULL | Bank name | JPMorgan Chase | Internal | - |
account_name | VARCHAR(255) | NOT NULL | Account name | Operating Account | Internal | - |
account_number | VARCHAR(50) | NOT NULL | Account number (masked) | ****4567 | Restricted | PCI |
account_number_hash | VARCHAR(64) | Hashed account number | sha256:abc... | Restricted | - | |
routing_number | VARCHAR(20) | Routing/sort code | 021000021 | Confidential | - | |
swift_code | VARCHAR(11) | SWIFT/BIC code | CHASUS33 | Internal | - | |
currency_code | CHAR(3) | NOT NULL | Account currency | USD | Internal | - |
connection_id | VARCHAR(50) | FK | Integration connection | conn_plaid_001 | Internal | - |
plaid_account_id | VARCHAR(100) | Plaid account identifier | plaid_acct_xyz | Confidential | - | |
status | VARCHAR(20) | NOT NULL | Account status | active | Internal | - |
last_sync_at | TIMESTAMPTZ | Last successful sync | 2026-02-03T06:00:00Z | Internal | - | |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:30:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-03T06:00:00Z | Internal | - |
3.2 bank_transactions
Description: Transactions imported from bank feeds.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique transaction ID | btx_20260201_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
bank_account_id | VARCHAR(50) | FK, NOT NULL | Bank account | ba_chase_001 | Internal | - |
external_id | VARCHAR(100) | NOT NULL | Bank's transaction ID | CHASE_TXN_12345 | Internal | - |
transaction_date | DATE | NOT NULL | Transaction date | 2026-02-01 | Internal | - |
posted_date | DATE | Bank posted date | 2026-02-01 | Internal | - | |
amount | DECIMAL(19,4) | NOT NULL | Transaction amount | -1500.0000 | Confidential | - |
currency_code | CHAR(3) | NOT NULL | Currency | USD | Internal | - |
description | TEXT | NOT NULL | Bank description | PAYROLL DIRECT DEPOSIT | Internal | - |
payee | VARCHAR(255) | Payee/payer name | ACME Payroll Services | Internal | - | |
category | VARCHAR(100) | Bank category | payroll | Internal | - | |
check_number | VARCHAR(20) | Check number if applicable | 1234 | Internal | - | |
reference | VARCHAR(100) | Reference number | PAY-202602 | Internal | - | |
transaction_type | VARCHAR(30) | NOT NULL | Type classification | debit | Internal | - |
is_pending | BOOLEAN | DEFAULT false | Pending transaction flag | false | Internal | - |
reconciliation_status | VARCHAR(20) | NOT NULL | Recon status | matched | Internal | SOX |
matched_at | TIMESTAMPTZ | Match timestamp | 2026-02-02T10:00:00Z | Internal | - | |
created_at | TIMESTAMPTZ | NOT NULL | Import timestamp | 2026-02-01T07:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-02T10:00:00Z | Internal | - |
Reconciliation Status: unmatched, suggested, matched, exception, excluded
3.3 reconciliation_matches
Description: Matches between bank transactions and GL entries.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique match ID | match_202602_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
session_id | VARCHAR(50) | FK, NOT NULL | Reconciliation session | recon_202602_001 | Internal | - |
bank_transaction_id | VARCHAR(50) | FK, NOT NULL | Bank transaction | btx_20260201_001 | Internal | - |
journal_line_id | VARCHAR(50) | FK | Matched GL line | jel_2026010001_01 | Internal | SOX |
match_type | VARCHAR(30) | NOT NULL | How match was made | auto_exact | Internal | - |
match_rule_id | VARCHAR(50) | Rule that matched | rule_exact_amt_date | Internal | - | |
confidence_score | DECIMAL(5,4) | ML confidence (0-1) | 0.9850 | Internal | - | |
amount_difference | DECIMAL(19,4) | Amount variance | 0.0000 | Internal | - | |
date_difference | INTEGER | Date variance (days) | 0 | Internal | - | |
status | VARCHAR(20) | NOT NULL | Match status | confirmed | Internal | SOX |
confirmed_by | VARCHAR(50) | FK | User who confirmed | user_john_doe | Internal | SOX |
confirmed_at | TIMESTAMPTZ | Confirmation timestamp | 2026-02-02T10:05:00Z | Internal | SOX | |
notes | TEXT | Match notes | Internal | - | ||
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-02-02T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-02T10:05:00Z | Internal | - |
Match Types: auto_exact, auto_fuzzy, manual, rule_based, ml_suggested
4. Planning Domain
4.1 budgets
Description: Budget headers with version control.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique budget ID | budget_2026_v1 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK, NOT NULL | Owning entity | ent_us_hq_001 | Internal | - |
name | VARCHAR(255) | NOT NULL | Budget name | FY2026 Operating Budget | Internal | - |
fiscal_year | INTEGER | NOT NULL | Budget year | 2026 | Internal | - |
version | INTEGER | NOT NULL | Version number | 1 | Internal | - |
budget_type | VARCHAR(30) | NOT NULL | Type of budget | operating | Internal | - |
status | VARCHAR(20) | NOT NULL | Budget status | approved | Internal | SOX |
start_date | DATE | NOT NULL | Budget start date | 2026-01-01 | Internal | - |
end_date | DATE | NOT NULL | Budget end date | 2026-12-31 | Internal | - |
currency_code | CHAR(3) | NOT NULL | Budget currency | USD | Internal | - |
total_revenue | DECIMAL(19,4) | Total budgeted revenue | 50000000.0000 | Confidential | - | |
total_expense | DECIMAL(19,4) | Total budgeted expense | 45000000.0000 | Confidential | - | |
approved_by | VARCHAR(50) | FK | Approver | user_cfo | Internal | SOX |
approved_at | TIMESTAMPTZ | Approval timestamp | 2025-12-15T09:00:00Z | Internal | SOX | |
created_by | VARCHAR(50) | FK, NOT NULL | Creator | user_fpa_mgr | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2025-11-01T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2025-12-15T09:00:00Z | Internal | - |
Budget Types: operating, capital, cash, headcount, project
Status Values: draft, submitted, under_review, approved, superseded
4.2 budget_lines
Description: Individual budget line items by account and period.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique line ID | bl_2026_001_rev | Internal | - |
budget_id | VARCHAR(50) | FK, NOT NULL | Parent budget | budget_2026_v1 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
account_id | VARCHAR(50) | FK, NOT NULL | GL account | acct_4000_revenue | Internal | - |
period_id | VARCHAR(50) | FK, NOT NULL | Budget period | period_2026_01 | Internal | - |
amount | DECIMAL(19,4) | NOT NULL | Budgeted amount | 4000000.0000 | Confidential | - |
quantity | DECIMAL(15,4) | Budgeted quantity | 100.0000 | Internal | - | |
unit_price | DECIMAL(19,4) | Unit price assumption | 40000.0000 | Confidential | - | |
dimension_1 | VARCHAR(50) | Custom dimension 1 | SALES | Internal | - | |
dimension_2 | VARCHAR(50) | Custom dimension 2 | ENTERPRISE | Internal | - | |
notes | TEXT | Line notes | Based on 10% growth | Internal | - | |
driver_id | VARCHAR(50) | FK | Driver assumption link | driver_revenue_growth | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2025-11-01T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2025-11-15T14:00:00Z | Internal | - |
5. AI/Agent Domain
5.1 agent_sessions
Description: AI agent conversation/task sessions.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique session ID | session_20260203_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
user_id | VARCHAR(50) | FK, NOT NULL | User who initiated | user_john_doe | Internal | - |
agent_type | VARCHAR(50) | NOT NULL | Type of agent | reconciliation | Internal | - |
status | VARCHAR(20) | NOT NULL | Session status | completed | Internal | - |
input_summary | TEXT | Summary of user request | Reconcile January bank | Internal | - | |
output_summary | TEXT | Summary of result | 98 matched, 2 exceptions | Internal | - | |
model_id | VARCHAR(100) | Model used | deepseek-r1-32b | Internal | - | |
total_tokens | INTEGER | Tokens consumed | 15432 | Internal | - | |
total_tool_calls | INTEGER | Number of tool calls | 12 | Internal | - | |
duration_ms | INTEGER | Processing time | 45000 | Internal | - | |
error_message | TEXT | Error if failed | Internal | - | ||
started_at | TIMESTAMPTZ | NOT NULL | Session start | 2026-02-03T10:00:00Z | Internal | - |
completed_at | TIMESTAMPTZ | Session end | 2026-02-03T10:00:45Z | Internal | - | |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-02-03T10:00:00Z | Internal | - |
Agent Types: orchestrator, reconciliation, variance, forecast, compliance, data_quality
5.2 agent_checkpoints
Description: LangGraph state checkpoints for resumability.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique checkpoint ID | ckpt_session_001_005 | Internal | - |
session_id | VARCHAR(50) | FK, NOT NULL | Parent session | session_20260203_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
step_number | INTEGER | NOT NULL | Step in workflow | 5 | Internal | - |
node_id | VARCHAR(100) | NOT NULL | Graph node ID | validate_matches | Internal | - |
state | JSONB | NOT NULL | Serialized state | {"matches": [...]} | Confidential | - |
requires_approval | BOOLEAN | DEFAULT false | Needs human approval | true | Internal | FDA |
approval_type | VARCHAR(50) | Type of approval needed | match_confirmation | Internal | - | |
approved_by | VARCHAR(50) | FK | Approver | user_jane_smith | Internal | FDA |
approved_at | TIMESTAMPTZ | Approval timestamp | 2026-02-03T10:01:00Z | Internal | FDA | |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-02-03T10:00:30Z | Internal | - |
6. Compliance Domain
6.1 compliance_controls
Description: Control definitions mapped to regulatory frameworks.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique control ID | ctrl_sox_itgc_01 | Internal | - |
tenant_id | VARCHAR(50) | FK | Tenant (null = global) | Internal | - | |
control_id | VARCHAR(50) | NOT NULL | Control identifier | ITGC-01 | Internal | - |
framework | VARCHAR(30) | NOT NULL | Regulatory framework | SOX | Internal | - |
name | VARCHAR(255) | NOT NULL | Control name | User Access Management | Internal | - |
description | TEXT | Control description | Access provisioned... | Internal | - | |
category | VARCHAR(50) | Control category | access_control | Internal | - | |
control_type | VARCHAR(30) | NOT NULL | Type of control | preventive | Internal | - |
frequency | VARCHAR(30) | NOT NULL | Testing frequency | quarterly | Internal | - |
owner_role | VARCHAR(50) | Responsible role | IT Security | Internal | - | |
automated | BOOLEAN | DEFAULT false | Can be automated | true | Internal | - |
test_procedure | TEXT | How to test | Review access logs... | Internal | - | |
evidence_required | TEXT[] | Required evidence | ["access_review.pdf"] | Internal | - | |
status | VARCHAR(20) | NOT NULL | Control status | active | Internal | - |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-01T00:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-01-15T10:00:00Z | Internal | - |
Frameworks: SOX, SOC2, HIPAA, FDA_21CFR11, LGPD, BACEN, CVM, GDPR
Control Types: preventive, detective, corrective, compensating
7. Users & Access Domain
7.1 users
Description: User accounts with profile information.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique user ID | user_john_doe | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
email | VARCHAR(255) | NOT NULL | Email address | john.doe@acme.com | Restricted | PII |
email_verified | BOOLEAN | DEFAULT false | Email verified | true | Internal | - |
first_name | VARCHAR(100) | First name | John | Restricted | PII | |
last_name | VARCHAR(100) | Last name | Doe | Restricted | PII | |
display_name | VARCHAR(200) | Display name | John Doe | Internal | - | |
avatar_url | VARCHAR(500) | Profile picture URL | https://... | Internal | - | |
phone | VARCHAR(30) | Phone number | +1-555-123-4567 | Restricted | PII | |
timezone | VARCHAR(50) | DEFAULT 'UTC' | User timezone | America/New_York | Internal | - |
locale | VARCHAR(10) | DEFAULT 'en-US' | Preferred locale | en-US | Internal | - |
status | VARCHAR(20) | NOT NULL | Account status | active | Internal | - |
mfa_enabled | BOOLEAN | DEFAULT false | MFA enabled | true | Internal | SOX |
last_login_at | TIMESTAMPTZ | Last login timestamp | 2026-02-03T08:00:00Z | Internal | - | |
password_changed_at | TIMESTAMPTZ | Password last changed | 2026-01-15T10:00:00Z | Internal | SOX | |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2025-06-01T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-03T08:00:00Z | Internal | - |
8. Integration Domain
8.1 connections
Description: External system connection configurations.
| Field | Type | Constraints | Description | Example | Sensitivity | Compliance |
|---|---|---|---|---|---|---|
id | VARCHAR(50) | PK, NOT NULL | Unique connection ID | conn_qbo_001 | Internal | - |
tenant_id | VARCHAR(50) | FK, NOT NULL | Parent tenant | tenant_acme123 | Internal | - |
entity_id | VARCHAR(50) | FK | Linked entity | ent_us_hq_001 | Internal | - |
connector_type | VARCHAR(50) | NOT NULL | Connector type | quickbooks_online | Internal | - |
name | VARCHAR(255) | NOT NULL | Connection name | QuickBooks - Main | Internal | - |
status | VARCHAR(20) | NOT NULL | Connection status | active | Internal | - |
config | JSONB | Non-sensitive config | {"realm_id": "123"} | Internal | - | |
credentials_id | VARCHAR(50) | FK | Reference to secrets | secret_qbo_001 | Restricted | - |
last_sync_at | TIMESTAMPTZ | Last successful sync | 2026-02-03T06:00:00Z | Internal | - | |
last_error | TEXT | Last error message | Internal | - | ||
sync_frequency | VARCHAR(30) | Sync schedule | every_15_minutes | Internal | - | |
created_at | TIMESTAMPTZ | NOT NULL | Creation timestamp | 2026-01-15T10:00:00Z | Internal | - |
updated_at | TIMESTAMPTZ | NOT NULL | Last update timestamp | 2026-02-03T06:00:00Z | Internal | - |
9. Data Sensitivity Legend
| Level | Description | Handling Requirements |
|---|---|---|
| Public | Can be freely shared | No restrictions |
| Internal | For internal use only | Authentication required |
| Confidential | Sensitive business data | Role-based access, encryption at rest |
| Restricted | Highly sensitive/regulated | Need-to-know, field-level encryption, audit logging |
10. Compliance Tag Legend
| Tag | Regulation | Description |
|---|---|---|
| PII | GDPR/CCPA/LGPD | Personally Identifiable Information |
| PHI | HIPAA | Protected Health Information |
| PCI | PCI-DSS | Payment Card Industry data |
| SOX | SOX | Sarbanes-Oxley relevant data |
| FDA | 21 CFR Part 11 | FDA electronic records |
| GAAP | US GAAP | Accounting standards relevant |
| Tax | IRS/Receita | Tax reporting relevant |
| SEC | SEC | Securities reporting relevant |
Data Dictionary v1.0 — FP&A Platform Document ID: DATA-001