Owner Statements
Statement lifecycle, layouts, sections, publishing, and owner payouts
Owner Statements
Overview
Owner statements are periodic financial reports for property owners. They summarize revenue, expenses, management fees, and payouts for a specific time period. Statements are generated per ownership period, showing each owner their share of the property's financial activity.
Key uses:
- Monthly/periodic reporting to property owners
- Tracking owner balances and payouts
- Providing transparent breakdown of income and expenses
- Generating owner distributions
Key Concepts
Statement Lifecycle
Statements progress through these statuses:
| Status | Description | Data Locked? |
|---|---|---|
draft | Preview state, not persisted | No |
inReview | Saved, ready for review | Yes |
void | Canceled/superseded | Yes |
published | Finalized and sent to owner | Yes |
Important: Once a statement is saved (any status except draft), the underlying financial data becomes locked. This prevents modifications that would cause the statement totals to become inaccurate.
Financials Structure
Each statement calculates these financial totals:
| Field | Description |
|---|---|
balanceStart | Carry-forward balance from previous statement |
netRevenue | Total revenue minus management fees |
expenses | Property expenses allocated to owner |
netIncome | Revenue minus expenses |
transfers | Owner payouts made |
balanceEnd | Remaining balance owed to owner |
Balance calculation:
balanceEnd = balanceStart + netIncome - transfersStatement Rows
Statement content is organized into rows of three types:
Reservation rows - Revenue from guest bookings:
- Guest name, dates, confirmation code
- Rental income, fees, taxes
- Payment status (paid, unpaid, underpaid)
Transaction rows - Expenses and deposits:
- Repairs, utilities, supplies
- Deposits received
- Any manual adjustments
Summary rows - Section totals:
- Subtotals by category
- Grand totals
Sections
Rows are grouped into sections defined by the statement layout:
- Revenue: Rental income by reservation
- Fees: Management fees, channel fees, etc.
- Expenses: Repairs, maintenance, utilities
- Transfers: Owner payouts
- Summary: Net income and ending balance
Ownership Period Matching
Statements are generated for specific ownership periods. Each statement shows:
- The property (listing)
- The ownership period with owner split percentages
- Financial data for that time range
When a property has multiple owners (e.g., 60/40 split), each owner's statement reflects their percentage of revenue and expenses.
Transfers (Owner Payouts)
Transfers are payments made to owners. Two key concepts:
Triggered from statement: When you create a payout from a specific statement, that statement's transfers array shows the payout details.
Attached to statement: The payout amount is counted in the statement's financials.transfers total for balance calculations.
Example: Create a $5,000 payout from the September statement:
- September
transfersarray shows the $5,000 payout - September
financials.transfers= $5,000 - September
balanceEnddecreases by $5,000
View Modes
Statements support two viewing perspectives:
| Mode | Description |
|---|---|
owner | What the owner sees - may hide certain details |
manager | Full details including internal notes |
Layout sections can be configured to show in one or both views.
Common Scenarios
Generating a Monthly Statement
POST /owner-statements
{
"ownershipPeriodId": "period-123",
"startAt": "2024-06-01",
"endAt": "2024-07-01",
"layoutId": "layout-456",
"status": "draft"
}Response includes:
- Calculated financials (revenue, expenses, fees)
- All reservation and transaction rows
- Starting balance from previous statement
- Issues/warnings if any
Publishing a Statement
PUT /owner-statements/stmt-789
{
"status": "published"
}Publishing:
- Locks all underlying data permanently
- Triggers owner notification (if enabled)
- Makes the statement available in owner portal
Creating an Owner Payout
After reviewing a statement with positive balance:
POST /transactions
{
"type": "transfer",
"date": "2024-06-30",
"description": "June 2024 Owner Payout",
"ownerStatementId": "stmt-789",
"lines": [
{
"accountId": "account-owner-payout",
"contactId": "owner-123",
"amount": 150000,
"description": "June distribution"
}
]
}API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /owner-statements | List statements with filters |
GET | /owner-statements/{id} | Get statement details |
POST | /owner-statements | Generate a statement |
PUT | /owner-statements/{id} | Update statement status |
DELETE | /owner-statements/{id} | Delete a statement (if not locked) |
Filtering Statements
GET /owner-statements?ownershipPeriodId=period-123&status=published&year=2024Response Structure
{
"id": "stmt-123",
"status": "published",
"uniqueRef": "2024-06-ABC",
"startAt": "2024-06-01",
"endAt": "2024-07-01",
"currency": "USD",
"listing": {
"id": "listing-456",
"name": "Beach House",
"uniqueRef": "BH-001"
},
"ownership": {
"id": "period-789",
"startAt": "2024-01-01",
"endAt": null,
"members": [
{
"id": "member-1",
"contactId": "owner-abc",
"split": 60
},
{
"id": "member-2",
"contactId": "owner-def",
"split": 40
}
]
},
"financials": {
"balanceStart": 0,
"netRevenue": 425000,
"expenses": 25000,
"netIncome": 400000,
"transfers": 350000,
"balanceEnd": 50000
},
"transfers": [
{
"id": "txn-transfer-1",
"date": "2024-06-28",
"total": 350000,
"totalFormatted": "$3,500.00"
}
],
"layout": {
"id": "layout-standard",
"name": "Standard Owner Statement"
},
"rows": [
{
"type": "reservation",
"section": "revenue",
"total": 65000,
"source": {
"id": "res-123",
"confirmationCode": "ABC123",
"guestName": "John Smith",
"checkIn": "2024-06-01",
"checkOut": "2024-06-05",
"nights": 4
},
"columns": [
{"name": "guest", "text": "John Smith", "type": "text"},
{"name": "dates", "text": "Jun 1-5", "type": "text"},
{"name": "total", "text": "$650.00", "type": "currency", "value": 65000}
],
"issues": []
}
],
"issues": []
}Validation & Issues
The issues array indicates potential problems:
| Code | Severity | Description |
|---|---|---|
emptyJournalEntryAccountIds | error | Entries missing account assignments |
netRevenueLayoutMismatch | error | Layout calculation doesn't match |
listingInactive | error | Property is inactive |
balanceMismatch_start | warning | Starting balance differs from previous end |
balanceMismatch_end | warning | Calculated end balance differs |
unpaidReservations | warning | Reservations with outstanding payments |
previousMonthJournalEntries | warning | Entries from prior periods included |
Locking Rules
Owner statements are subject to locking:
| Condition | Blocked Operations |
|---|---|
| Statement exists (any status) | Underlying reservations, transactions, and fees locked |
| Statement attached to entries | Cannot delete statement |
To modify locked data: Delete the statement first (if allowed), make changes, then regenerate.
Related Topics
- Statement Layouts - Customizing statement appearance
- Ownership Periods - Who receives statements
- Transactions - Recording owner payouts
- Recurring Fees - Management fee calculations
- Locking - Modification restrictions
