> ## Documentation Index
> Fetch the complete documentation index at: https://help.agatabo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Period Closing Checklist

> Step-by-step end-of-period procedures for financial close

## Overview

Complete these tasks at the end of each accounting period to ensure accurate financial records before closing the period.

<Note>
  **Accounting period** depends on your organization's configuration:

  * **MONTHLY**: Close every month
  * **QUARTERLY**: Close every 3 months
  * **YEARLY**: Close annually

  See: [Organization Settings](/tontines/settings/organization-settings)
</Note>

***

## Pre-Close Checklist

<Steps>
  <Step title="Record all transactions">
    Ensure all financial activity for the period is recorded:

    * ✅ All deposits received
    * ✅ All loan payments collected
    * ✅ All loan disbursements made
    * ✅ All expenses paid
    * ✅ All bank fees recorded
    * ✅ No pending/unrecorded transactions

    **Verify**: Check with treasurer that all cash collected has been entered.
  </Step>

  <Step title="Reconcile bank accounts">
    Match Agatabo records to actual bank balances:

    1. **Download bank statements** for all organization bank accounts
    2. **Compare** statement ending balance to Agatabo cash/bank account balance
    3. **Identify differences**:
       * Uncleared checks/deposits
       * Bank fees not yet recorded
       * Interest earned
       * Errors (data entry mistakes)
    4. **Record adjustments**:
       * Bank fees → Record as expenses
       * Interest → Record as income (manual journal entry)
       * Correct errors
    5. **Verify reconciliation**: Adjusted Agatabo balance = Bank statement balance

    **Tool**: Use Account Statements report to review bank account activity
  </Step>

  <Step title="Review member balances">
    Spot-check member savings for accuracy:

    * Select 5-10 members randomly
    * Compare Agatabo balance to member passbooks/records
    * Investigate any discrepancies
    * Verify recent deposits/withdrawals recorded correctly

    **Tool**: Use Shares Report to see all member balances
  </Step>

  <Step title="Verify loan portfolio">
    Ensure loan records are accurate:

    1. **Run Loans Outstanding report** (as of period end date)
    2. **Verify** total outstanding loans matches Loan Receivable ledger account balance
    3. **Identify overdue loans** (arrears > 0)
    4. **Apply penalties** if organizational policy requires automatic penalties
    5. **Document** any loan modifications, waivers, or write-offs

    **Important**: Reconcile loans BEFORE closing period to ensure accurate interest income calculation.
  </Step>

  <Step title="Generate financial statements">
    Run all reports as of period end date:

    **Required reports**:

    * **Balance Sheet** (as of last day of period)
    * **Profit & Loss** (for the entire period)
    * **Shares Report** (member ownership as of period end)
    * **Loans Outstanding** (portfolio status as of period end)

    **Export all reports** to PDF or CSV for records.

    **API endpoints**:

    ```
    GET /reports/balance-sheet?asOfDate=2026-06-30
    GET /reports/profit-loss?startDate=2026-06-01&endDate=2026-06-30
    GET /reports/shares-report?asOfDate=2026-06-30
    GET /reports/loans-outstanding?expectedDate=2026-06-30
    ```
  </Step>

  <Step title="Review trial balance">
    Verify accounting equation balances:

    1. **Run Trial Balance** (as of period end)
    2. **Check**: Total Debits = Total Credits
    3. **Investigate** any out-of-balance conditions
    4. **Verify** retained earnings reflects prior period net income

    **If trial balance doesn't balance**: Do NOT close period. Find and correct errors first.
  </Step>

  <Step title="Review unusual items">
    Investigate anomalies before closing:

    * Large or unexpected expenses (> 10% of budget)
    * Unusual account balances (negative balances where not expected)
    * Significant variances from prior period (> 20% change)
    * Uncategorized or miscoded transactions

    **Document explanations** for material items (for auditors, management).
  </Step>

  <Step title="Run period close preview">
    Simulate the close to verify impact:

    ```http theme={null}
    GET /period-closing/preview
    Headers:
      x-organization-id: {organizationId}
    ```

    **Review preview response**:

    * Period being closed (verify correct period)
    * Net income/loss amount
    * Journal entry that will be created
    * Accounts that will be zeroed (INCOME/EXPENSE accounts)

    **Verify**: Net income matches Profit & Loss report.
  </Step>

  <Step title="Get management approval">
    Present financial statements for approval:

    1. **Share reports** with treasurer/board/management committee
    2. **Explain** significant items, variances, concerns
    3. **Address questions** and requests for additional detail
    4. **Obtain sign-off** (written approval recommended)

    **Do not close** until management approves the financial statements.
  </Step>
</Steps>

***

## Closing the Period

Once all pre-close tasks complete and approval obtained:

<Steps>
  <Step title="Close the period">
    Execute period close via API:

    ```http theme={null}
    POST /period-closing/close
    Headers:
      x-organization-id: {organizationId}
      x-idempotency-key: {unique-key}
    ```

    **Permission required**: `periods:close`

    **What happens**:

    1. Determines next period to close automatically
    2. Creates PERIOD\_CLOSE journal entry
    3. Zeros all INCOME and EXPENSE accounts
    4. Transfers net income to RETAINED\_EARNINGS
    5. Locks period (prevents further changes)

    **Confirm successful close**: Check response status 200.
  </Step>

  <Step title="Verify period close results">
    Confirm close completed correctly:

    * **Check audit logs**: Period close action logged
    * **Run Balance Sheet**: Retained earnings increased by net income
    * **Run Profit & Loss**: Current period shows zero (new period started)
    * **Check INCOME/EXPENSE accounts**: All have zero balances

    **If something wrong**: Use undo endpoint (can only undo LAST close)
  </Step>
</Steps>

***

## Post-Close Tasks

<Steps>
  <Step title="Archive documentation">
    Preserve period records:

    * Save all reports to archive folder (named by period, e.g., "2026-06-June")
    * File physical receipts and supporting documents
    * Export journal entries for period (for audit trail)
    * Backup database

    **Retention**: Keep closed period records for 7+ years (varies by jurisdiction).
  </Step>

  <Step title="Communicate to members">
    Share period results with membership:

    * Publish Balance Sheet (shows financial position)
    * Publish Profit & Loss (shows period performance)
    * Publish Shares Report (shows member ownership percentages)
    * Announce dividend distribution if applicable

    **Method**: Email, member meeting, posted notice
  </Step>

  <Step title="Plan for next period">
    Prepare for upcoming period:

    * Review budget vs. actual (identify variances)
    * Adjust budget for next period if needed
    * Schedule loan committee meetings
    * Plan any needed reserve allocations
    * Identify operational improvements
  </Step>
</Steps>

***

## Timeline Examples

### Monthly Close (accountingPeriod: MONTHLY)

| Day                   | Task                                           |
| --------------------- | ---------------------------------------------- |
| **Last business day** | Record final transactions for month            |
| **1st of next month** | Download bank statements, begin reconciliation |
| **2-3**               | Complete reconciliation, run reports, review   |
| **4-5**               | Present to management, obtain approval         |
| **5-7**               | Close period, verify, archive                  |

**Total time**: 5-7 days after month end

***

### Quarterly Close (accountingPeriod: QUARTERLY)

| Day                        | Task                                         |
| -------------------------- | -------------------------------------------- |
| **Last week of quarter**   | Ensure all transactions recorded             |
| **1-2 days after quarter** | Download statements, begin reconciliation    |
| **3-7**                    | Complete reconciliation, run reports, review |
| **7-10**                   | Present to management, obtain approval       |
| **10-14**                  | Close period, verify, archive                |

**Total time**: 10-14 days after quarter end

**Note**: Quarterly closes typically require more review time due to larger data volume.

***

### Yearly Close (accountingPeriod: YEARLY)

| Week    | Task                                            |
| ------- | ----------------------------------------------- |
| **1-2** | Record all transactions, reconcile all accounts |
| **2-3** | Run all reports, prepare annual statements      |
| **3-4** | Review with accountant, prepare for audit       |
| **4-6** | Present to board, obtain approval               |
| **6-8** | Close period, finalize annual report            |

**Total time**: 6-8 weeks after year end

**Note**: Annual closes often require external audit before finalizing.

***

## Common Issues and Solutions

<AccordionGroup>
  <Accordion title="Trial balance doesn't balance">
    **Problem**: Total debits ≠ total credits

    **Common causes**:

    * Journal entry missing debit or credit side
    * Data entry error (transposed digits)
    * Manual journal entry not balanced
    * System bug (rare)

    **Solution**:

    1. Run Trial Balance report with details
    2. Calculate difference amount
    3. Search journal entries for that exact amount
    4. Review recent manual entries
    5. Correct error before closing
  </Accordion>

  <Accordion title="Loans don't reconcile to ledger">
    **Problem**: Loans Outstanding total ≠ Loan Receivable account balance

    **Common causes**:

    * Loan payment recorded incorrectly
    * Principal/interest allocation error
    * Loan created but not properly recorded
    * Missing loan disbursement entry

    **Solution**:

    1. Run Loans Outstanding report
    2. Check Loan Receivable ledger account balance
    3. Calculate difference
    4. Review recent loan transactions
    5. Verify loan disbursements created journal entries
    6. Correct discrepancies before closing
  </Accordion>

  <Accordion title="Bank reconciliation won't balance">
    **Problem**: Agatabo cash balance ≠ bank statement balance

    **Common causes**:

    * Unrecorded bank fees
    * Deposits not yet cleared
    * Checks not yet cashed
    * Data entry errors

    **Solution**:

    1. List outstanding checks (issued but not cleared)
    2. List deposits in transit (recorded but not cleared)
    3. Identify bank fees not recorded in Agatabo
    4. Record fees as expenses
    5. Calculate: Agatabo balance + deposits in transit - outstanding checks = Bank balance
  </Accordion>

  <Accordion title="Can't close period - error message">
    **Error**: "Cannot close period" or similar

    **Check**:

    * Do you have `periods:close` permission?
    * Is x-organization-id header set correctly?
    * Is x-idempotency-key header provided?
    * Is there already a close in progress?
    * Are there validation errors (unbalanced entries)?

    **Solution**: Check error message details, verify permissions, ensure all prerequisites met.
  </Accordion>

  <Accordion title="Need to undo period close">
    **Situation**: Discovered error after closing period

    **Solution**:

    ```http theme={null}
    POST /period-closing/undo
    Headers:
      x-organization-id: {organizationId}
      x-idempotency-key: {unique-key}
    ```

    **Limitations**:

    * Can only undo LAST period closed
    * Cannot undo arbitrary historical periods
    * Reverses PERIOD\_CLOSE journal entry
    * Reopens period for corrections

    **After undo**: Make corrections, then re-close period.
  </Accordion>
</AccordionGroup>

***

## Best Practices

<Note>
  **Period closing guidelines:**

  **Before closing:**

  * ✅ Complete ALL steps in checklist (don't skip)
  * ✅ Reconcile ALL bank accounts (not just main account)
  * ✅ Verify trial balance balances
  * ✅ Get management sign-off
  * ✅ Run preview to verify period close impact
  * ✅ Archive current reports before closing

  **During closing:**

  * ✅ Use unique idempotency key (prevent duplicate close)
  * ✅ Close during low-activity time (minimize disruption)
  * ✅ Notify users period close is in progress
  * ✅ Verify close completes successfully

  **After closing:**

  * ✅ Verify period close results immediately
  * ✅ Check retained earnings updated correctly
  * ✅ Confirm INCOME/EXPENSE accounts zeroed
  * ✅ Archive all period reports
  * ✅ Communicate results to members

  **General:**

  * ✅ Close periods promptly (within 7 days of period end)
  * ✅ Don't skip periods (close sequentially)
  * ✅ Document significant items for auditors
  * ✅ Keep closed period records for 7+ years
  * ✅ Train backup staff on closing procedures
</Note>

***

## Related Topics

<CardGroup cols={2}>
  <Card title="Period Closing" icon="lock" href="/tontines/advanced/period-closing">
    Period close API documentation
  </Card>

  <Card title="Balance Sheet" icon="scale-balanced" href="/tontines/reports/balance-sheet">
    Financial position report
  </Card>

  <Card title="Profit & Loss" icon="chart-line" href="/tontines/reports/profit-and-loss">
    Income statement
  </Card>

  <Card title="Audit Trail" icon="file-magnifying-glass" href="/tontines/advanced/audit-trail">
    Track period close activity
  </Card>
</CardGroup>
