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 September 25, 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:
| Type | Direction | Typical use |
|---|---|---|
| DUES | Charge (positive) | Recurring monthly or annual dues |
| FINE | Charge (positive) | Violation fines |
| ASSESSMENT | Charge (positive) | Special / one-time assessments |
| BOOKING FEE | Charge (positive) | Amenity rental fees |
| PAYMENT | Payment (negative effect on balance) | A resident pays |
| CREDIT | Reduces balance | Manual credit / write-off / promo |
| REFUND | Reverses a payment | Money 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
Finances > Transactions in the admin sidebar.
From here you can:
- See every transaction in the community
- Search transactions and filter by account
- 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 (Community > Properties) and look at its Payment History.
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:
- Go to Finances > Transactions in the admin sidebar
- Click Add and choose Property Payment / Charge (for a vendor bill or money received that is not tied to a property, choose Expense / Adjustment instead)
- Pick the property
- Pick what it is: a payment received, a charge, or a credit adjustment
- Enter the amount and a clear memo
- 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 (Community > 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 Payment History, struck through with a Deleted 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 (Finances > 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”
- Filter the ledger to their property
- Look for a recent PAYMENT record
- 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”
Dues amounts are set on assessments, not in the ledger (see Configuring dues). Fix the assessment, or the property’s assessments on its edit screen, to correct future charges. 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:
- Finances > Transactions > Export gives you the ledger as a CSV. Choose income, expenses, or both, and a time frame (year to date, a specific month, or a full year)
- Finances > Reports > General Ledger gives the account-by-account detail with running balances, in CSV or PDF
For board reports:
- Finances > Reports has the Balance Sheet, Profit & Loss, AR Aging, AP Aging, and Budget vs Actual, each exportable to PDF for a meeting packet.
Where to go next
- Configuring dues - how dues records are generated automatically
- Properties are the unit of record - why money attaches to properties
- Enabling Stripe payments - how online payments turn into ledger entries