Overview
Organizations are the top-level container entity in Accountability. Each organization owns multiple companies and defines the consolidated reporting currency for financial reports.Organizations enable multi-tenant isolation - each user belongs to one organization, and all data is scoped to that organization.
Organization Data Model
Organizations contain the following core attributes:packages/core/src/organization/Organization.ts
Key Properties
Unique identifier for the organization
Display name of the organization (non-empty, trimmed)
The currency used for consolidated reporting across all companies (ISO 4217 code)
Organization-wide configuration settings
Organization Settings
Settings allow customization of locale, timezone, and display preferences:packages/core/src/organization/Organization.ts
Default locale for number and date formatting (e.g., “en-US”, “en-GB”, “de-DE”)
Default timezone (IANA identifier like “America/New_York”, “Europe/London”)
Default decimal places for monetary display (0-4)
Multi-Tenant Model
Accountability uses a single-tenant-per-organization model:Data Isolation
All data queries are scoped to the selected organization - companies, accounts, journal entries, etc.
Creating an Organization
UI Workflow
The organization creation form is located at/organizations/new and includes:
- Required Fields
- Optional Settings
- Name: Organization display name (2-100 characters)
- Reporting Currency: ISO 4217 currency code selected from dropdown
Form Component
TheOrganizationForm component handles creation with client-side validation:
packages/web/src/components/forms/OrganizationForm.tsx
- Currency dropdown with search (powered by
CurrencySelectcomponent) - Collapsible settings panel for advanced options
- Inline validation errors for name and currency
- Real-time field validation on blur
API Request
Organizations are created viaPOST /api/v1/organizations:
Reporting Currency
The organization’s reporting currency is used for:- Consolidated Reports: Balance sheets, income statements, and cash flow statements
- Currency Translation: Converting company functional currencies to reporting currency (ASC 830)
- Intercompany Eliminations: Matching intercompany transactions in a common currency
The reporting currency can only be set during organization creation and cannot be changed afterward. Choose carefully based on your primary reporting requirements.
Translation Methods
When consolidating companies with different functional currencies:- Current Rate Method: Assets and liabilities at current (closing) rate, equity at historical rates
- Temporal Method: Monetary items at current rate, non-monetary at historical rates
- Translation Adjustments: Recorded in “Other Comprehensive Income” equity account
Organization Selector
Users can switch between organizations using the organization selector in the header:- Location: Available on every authenticated page
- Workflow: Click selector → Choose organization → Page reloads with new organization context
- Persistence: Selected organization is stored in session
Best Practices
Choosing a Reporting Currency
Choosing a Reporting Currency
Select the currency of your primary reporting jurisdiction:
- US-based: Use USD for SEC and GAAP reporting
- EU-based: Use EUR for IFRS reporting
- Multinational: Use the currency of your headquarters or parent company
Locale and Timezone Settings
Locale and Timezone Settings
- Set defaultLocale to match your primary user base (affects number formatting)
- Set defaultTimezone to your headquarters location (affects date/time display)
- Individual users can override these in their profile settings
Decimal Places
Decimal Places
- 2 decimal places: Standard for USD, EUR, GBP, most currencies
- 0 decimal places: JPY, KRW (currencies without subunits)
- 3 decimal places: KWD, BHD, OMR (currencies with 1/1000 subunits)
Technical Details
Schema Definition
TheOrganization schema is defined using Effect Schema:
packages/core/src/organization/Organization.ts
Type Guards
Related Pages
- Companies - Legal entities within an organization
- Multi-Currency - Currency translation and exchange rates
- Chart of Accounts - Account structure per company