Dues & Financials

How the ledger works

Every charge, payment, credit, and refund in HomeHerald is a financial record. Here's how the ledger is structured, how balances are computed, and how to fix mistakes the right way.

Last updated August 2, 2026

The ledger is HomeHerald’s accounting backbone. Every dollar that’s ever owed, paid, credited, or refunded against any property in your community is a row in the ledger. Understanding how it’s structured will save you from a lot of “why is this balance wrong” moments.

The model

The ledger is a list of financial records. Each record is one of these types:

TypeDirectionTypical use
DUESCharge (positive)Recurring monthly or annual dues
FINECharge (positive)Violation fines
ASSESSMENTCharge (positive)Special / one-time assessments
BOOKING FEECharge (positive)Amenity rental fees
PAYMENTPayment (negative effect on balance)A resident pays
CREDITReduces balanceManual credit / write-off / promo
REFUNDReverses a paymentMoney goes back to the resident

Charges grow the balance. Payments shrink it. Credits also shrink it. Refunds undo a payment, so they grow the balance again.

How balance is computed

The balance shown on a property is always computed from the ledger:

Balance = Σ(charges) − Σ(payments + credits) + Σ(refunds)
       + initial balance (if any)

You can’t directly edit a balance. You add or void records, and the balance recomputes.

This is on purpose. It means there’s never a “the balance says X but the records say Y” disconnect. The records are the balance.

Where to find the ledger

Transactions (in the admin sidebar under Manage)

From here you can:

  • See every transaction in the community, sortable by date / property / type / amount
  • Filter to a specific property or resident
  • Export to CSV (for your accountant)
  • Click any row to see details and history

Each property also has its own ledger view - open the property and click Transactions.

Anatomy of a record

Every ledger entry has:

  • Date - when the transaction happened (not necessarily when it was entered)
  • Property - what property it attaches to (for dues, fines, assessments)
  • User - who triggered it, if applicable (for fines, booking fees)
  • Type - DUES / FINE / PAYMENT / etc.
  • Amount - the dollar value
  • Description / memo - free text. Use it. Future-you will thank you.
  • Related ticket - if this is a fine, links to the violation it came from
  • Stripe payment intent - if processed online, links to Stripe

There’s also an internal changelog - every time a record is edited or voided, it’s logged with who and when. This is your audit trail.

Adding a manual transaction

You don’t usually need to - dues auto-generate, fines auto-generate from violations, payments auto-record from Stripe. But for the cases when you do:

  1. Go to Transactions in the admin sidebar
  2. Click New Transaction (or Add manual entry)
  3. Pick the property (and resident if applicable)
  4. Pick the type
  5. Enter the amount and a clear memo
  6. Save

Common cases for manual entries:

  • Recording a check - resident sent a paper check; record it as a PAYMENT against their property
  • Carryover credit - a property had a credit from a previous system that didn’t import
  • Fee reversal - board agreed to waive a late fee that already posted; add a CREDIT for the fee amount

Fixing mistakes

A few rules:

Edit or delete the wrong record - both are audited

Admins and board members can fix a manually-entered transaction directly. Open the property (Admin sidebar > Manage > Properties), find the record under Payment History, and click it:

  • Edit - correct the amount or description. Every edit is stamped into the record’s Change History (who, when, old value, new value).
  • Delete - soft-deletes the record. You’ll be asked for a reason (required - be specific). The record stays in the property’s transaction log, struck through with a “Deleted by [name] on [date]” badge, so the board always sees what happened. It stops counting toward the balance and every report, and residents never see it.

Deleting never destroys the record - it’s a void under the hood. The audit trail keeps the original entry, all edits, and the deletion visible to admins and board members.

Two guardrails to know about:

  • Stripe payments can’t be edited or deleted. The money actually moved, so the ledger row has to match Stripe. Use the refund flow instead.
  • System-generated records can’t be deleted (autopay charges, processing fees, transfers). Only transactions a person entered by hand are editable.

The Audit Log - every change in one place

For board oversight, the Transactions page (Admin sidebar > Manage > Transactions) has an Audit Log button next to Export. It shows every edit and delete across all transactions and expenses as a single list - one row per change, newest first, with who made it, when, the old and new values, and the reason for any deletion. Export it to CSV for board meetings or your accountant.

Don’t try to “edit your way” to the right balance

If a property’s balance is wrong, find the wrong record. Adjust or void that. Don’t add a corrective entry that paper-overs the issue without explaining what happened - your accountant will hate you in three months.

Use credits, not balance edits

If a board decision results in someone owing less, add a CREDIT. The credit shows up in the ledger with a memo (“Board waived late fee per 4/15/2026 meeting”) so anyone reading the history understands what happened.

Refunds are separate from voids

If a resident actually paid, and you need to give them money back:

  • Refund the payment - money physically goes back to their card or bank via Stripe
  • Don’t void the payment, because the money’s already in your bank account; voiding the record doesn’t reverse the actual money movement

If the payment was by paper check, you’ll handle the actual money transfer outside the system (write them a check, etc.) and record a manual REFUND entry to keep the ledger accurate.

Reading the ledger - practical scenarios

”A resident says they paid but it’s not showing”

  1. Filter the ledger to their property
  2. Look for a recent PAYMENT record
  3. If you don’t see one:
    • Card payments through Stripe usually show within seconds. If not, check Stripe’s dashboard for the transaction
    • ACH payments take 3-5 business days to clear
    • Paper checks need to be manually recorded by an admin

If the resident has a screenshot of a Stripe receipt and you don’t see the payment, contact support@homeherald.ai with the Stripe payment intent ID.

”The dues amount on this property is wrong”

The dues amount is set on the property, not in the ledger. Edit the property to fix the amount for future dues. To fix a past dues charge that already posted at the wrong amount:

  • Void the wrong DUES record
  • Add a new DUES record at the correct amount with a memo explaining

”I see a positive number on a CREDIT - is that a charge?”

Credits are stored as positive numbers but reduce the balance. The system handles the sign internally. You enter “$50” as a credit, the balance drops by $50.

The same is true for payments and refunds - enter positive numbers, the system applies the right sign based on the record type.

Exporting and reporting

For accounting:

  • Transactions → Export CSV in the admin sidebar gives you the full ledger
  • Filter first if you only want a date range, a property, or a type

For board reports:

  • The Admin Digest automation generates summaries on a quarterly / semi-annual / annual schedule. Configure under Configuration → Admin Digest.

For property-specific statements (e.g., a closing statement for a sale):

  • Open the property → TransactionsExport this property
  • The PDF is formatted for handing to a closing agent

Where to go next