Daily Cash Position

Monitor real-time cash balances across all accounts, track available funds versus projected disbursements, and receive alerts when balances fall below configured thresholds.

Dashboard Overview

The daily cash position dashboard provides a real-time snapshot of the fund's total liquidity. The position is calculated from the cash.account table, which maintains running balances updated with every posted transaction.

The dashboard displays four primary metrics:

Total Balance

Sum of current_balance across all cash accounts. Represents the total book cash position.

Total Available

Sum of available_balance across all accounts. Excludes holds, pending transactions, and restricted reserves.

Total Accounts

Count of all cash accounts in the system, including inactive accounts for historical reference.

Active Accounts

Count of accounts with status = ACTIVE. Only active accounts are included in operational cash position calculations.

Cash Position API

Retrieve the current cash position via the position endpoint:

GET /api/v1/cash/position

Response:
{
  "totalBalance": 2705000.00,
  "totalAvailable": 2580000.00,
  "totalAccounts": 4,
  "activeAccounts": 3
}

This endpoint aggregates balances across all accounts in a single query. Access is logged to the immutable audit trail as a READ event on the CASH_POSITION entity, since this is sensitive financial data.

Per-Account Detail

For a breakdown by individual account, use the accounts list endpoint:

GET /api/v1/cash/accounts

Response:
{
  "accounts": [
    {
      "account_id": "uuid-1",
      "account_number": "****4521",
      "account_name": "Operating Checking",
      "bank_name": "First National Bank",
      "account_type": "CHECKING",
      "status": "ACTIVE",
      "current_balance": "1850000.00",
      "available_balance": "1780000.00",
      "created_at": "2025-01-15T00:00:00Z"
    },
    {
      "account_id": "uuid-2",
      "account_number": "****7890",
      "account_name": "Money Market Reserve",
      "bank_name": "First National Bank",
      "account_type": "MONEY_MARKET",
      "status": "ACTIVE",
      "current_balance": "650000.00",
      "available_balance": "650000.00",
      "created_at": "2025-01-15T00:00:00Z"
    },
    {
      "account_id": "uuid-3",
      "account_number": "****3456",
      "account_name": "Reserve Fund",
      "bank_name": "Federal Home Loan Bank",
      "account_type": "SAVINGS",
      "status": "ACTIVE",
      "current_balance": "205000.00",
      "available_balance": "150000.00",
      "created_at": "2025-03-01T00:00:00Z"
    }
  ],
  "count": 3
}

Account Types and GL Mapping

Each cash account maps to a specific General Ledger account code. The account type determines the GL mapping and the operational role of the account:

Account NameTypeGL CodePurpose
Operating CheckingCHECKING1010Primary operating account for loan payments received, disbursements issued, and daily operations
Money MarketMONEY_MARKET1020Higher-yield account for excess cash and short-term reserves. Earns interest income.
Reserve FundSAVINGS1030Restricted reserve for regulatory requirements and risk mitigation. Withdrawals require approval.

Balance vs. Available: The current_balance reflects all posted transactions. The available_balance subtracts pending holds, uncleared deposits, and restricted amounts. Treasury decisions should be based on available balance, not current balance.

Monitoring and Alerts

CEF Core's monitoring module (/api/v1/monitoring) can be configured to alert treasury staff when cash balances fall below defined thresholds:

Low Balance Thresholds

Alert LevelConditionAction
WARNINGAvailable balance falls below the configured warning thresholdEmail notification to treasury staff
CRITICALAvailable balance falls below the configured critical thresholdImmediate notification to treasury manager and fund administrator
EMERGENCYAvailable balance insufficient to cover next 7 days of projected disbursementsEscalation to executive leadership with recommended actions

Projected Disbursements

The cash position dashboard factors in known upcoming obligations to help treasury staff plan ahead:

  • Scheduled loan fundings: Approved loans with upcoming disbursement dates
  • Note redemptions: Notes maturing within the next 30 days
  • Interest payments: Quarterly or monthly interest payable to note holders
  • Escrow payments: Property tax and insurance premiums due from escrow accounts
  • Approved pending disbursements: Items in the maker-checker approval queue that have been approved but not yet executed

Daily Review Workflow

Treasury staff should perform a daily cash position review as part of the morning operational routine:

  1. Check the cash position dashboard: Review total balance and available balance across all accounts via GET /api/v1/cash/position or the web dashboard at /cash/.
  2. Review overnight bank feed imports: The importBankActivity job runs at 2:05 AM UTC. Check for any bank-initiated transactions (fees, returned items, interest credits) that need to be recorded.
  3. Assess today's projected disbursements: Review the approval queue for pending disbursements and compare against available balance.
  4. Verify unreconciled transaction count: A growing backlog of unreconciled transactions may indicate missed entries or data quality issues.
  5. Transfer funds if needed: If the operating checking balance is low relative to projected disbursements, initiate a transfer from the money market account using a TRANSFER transaction type.

Data Sources

The cash position is derived from several data sources that are updated throughout the day:

Data SourceUpdate FrequencyImpact
Manual cash transactionsReal-time (on POST)Immediate balance update in cash.account
Auto-created transactions (loan payments, notes)Real-time (on source event)Immediate balance update when parent transaction posts
Plaid bank feed syncHourlyNew bank transactions imported for matching
Interest accrualEvery 15 minutesAccrued interest entries created by scheduled job
Approved disbursement executionEvery 15 minutesMaker-checker approved items are executed and balances updated

Best Practices

  • Check position before large disbursements: Always verify available balance via the position endpoint before approving loan fundings or large payments.
  • Maintain minimum operating balance: Keep at least 2-3 weeks of projected disbursements in the operating checking account. Use the money market for excess funds to earn interest.
  • Do not rely on current_balance alone: The available_balance accounts for holds and pending items. Disbursement decisions should use available_balance to avoid overdrafts.
  • Review the position at the same time each day: Consistent daily review at a set time (e.g., 8:00 AM local) establishes a reliable operational rhythm and catches issues early.
  • Configure alert thresholds conservatively: Set warning thresholds high enough to provide several days of lead time for corrective action. It is better to over-alert than to discover a shortfall when a disbursement fails.

Troubleshooting

Common Issues:

Issue: Cash position shows zero or stale balances

Solution: Verify the cash.account table has active accounts with the correct tenant context. Check that the Plaid bank feed sync job is running (review the /api/v1/monitoring endpoint). If balances are not updating, confirm that new transactions are being posted with the correct account_id.

Issue: Available balance is significantly lower than current balance

Solution: This indicates pending holds or uncleared items. Review recent deposits to check for holds placed by the bank. Also check if the Reserve Fund account has restricted amounts reducing available balance. This difference is expected and normal for accounts with recent large deposits.

Issue: Position does not match the bank's reported balance

Solution: Run a bank reconciliation for the affected account. The difference is typically caused by outstanding checks, deposits in transit, or bank fees not yet recorded. See the Bank Reconciliation guide for the full process.

Related Documentation

The daily cash position is the starting point for treasury management. These related guides cover the supporting workflows.