Communications
Community Voting
How to run board resolutions and community-wide votes in HomeHerald. Covers both vote types, eligibility, the public results checkbox, the audit trail, and the resident experience.
Last updated May 2, 2026
Community Voting is how the board makes decisions on the record in HomeHerald. Two vote types, full audit trail, instant tally, printable PDF. This article walks through both the admin side and the resident side.
Where to find it
Dashboard (the first screen you land on as admin)
In the Quick Actions row, look for the Community Voting tile. Tapping it opens a small chooser:
- Start a new vote opens the create form
- Review past votes drops you into the Votes panel where you manage active votes and see history
There is no separate sidebar entry. The tile is the only way in. Once you have created a vote, you can also reach the Votes panel from the Operations / Votes route the tile sends you to.
The two vote types
Community Voting has two scopes that are mutually exclusive on a given vote.
| Scope | One ballot per | Cast by | Used for |
|---|---|---|---|
| Community Wide | Property | The primary resident on file | Dues changes, rule amendments, board elections, capital projects, anything every owner gets a say on |
| Board Only | Active board seat (plus admins) | The board member or admin themselves | Vendor contracts, budget approvals, formal resolutions, anything the board decides on the community’s behalf |
A vote is one type or the other, never both. If a board member also lives at a property, they cast one ballot per vote: as the board member on a board vote, as the property primary on a community vote. They never get to vote twice on the same vote.
Who is eligible
For Community Wide votes the eligible list is every property that has a currentResidentId set (every property with a primary resident on file). Properties without a primary are skipped. Co-residents in the same household do not get their own ballot.
For Board Only votes the eligible list is every active user with role BOARD_MEMBER or ADMIN. This is by design: in most professionally managed HOAs the admin is the property manager and is part of the governing body. If your bylaws restrict voting to elected board members only, the admin can simply not cast a ballot. The audit will show them as not having voted, which is the same visible record as an Abstain.
Eligibility is locked at open
When you click Save and Open Now the system snapshots the eligibility list at that moment. Mid-vote roster changes (a resident moves out, a new board member joins) do not affect the tally. This is the most common point of confusion, so it bears repeating: eligibility is a snapshot, not a live query.
Creating a vote
Tap Community Voting on the Dashboard, then Start a new vote.
The form has these fields:
- Vote Type: Community Wide or Board Only. Default is Community Wide.
- Title: short, descriptive (for example “Approve 2026 dues increase”)
- Description: the actual motion text. This is what voters read before they cast.
- Opens At: when ballots can start being cast. Default is now.
- Closes At: the deadline. Default is 7 days from now. The system auto-closes any open vote whose deadline has passed.
- Make results public to all residents (checkbox, Board Only votes only): see the next section.
Two save options:
- Save Draft stores the vote in DRAFT status. No eligibility snapshot is taken yet. You can come back and open it later.
- Save and Open Now transitions the vote straight to OPEN, snapshots eligibility, and locks in the voter list.
Drafts can be opened or cancelled later from the Votes panel.
The “Make results public to all residents” checkbox
This is the only governance choice the form asks you to make.
- Community Wide votes: results are always public to all residents. The checkbox does not appear on this form because there is nothing to choose.
- Board Only votes: the checkbox controls whether the closed-vote tally is shown on every resident’s dashboard. Default is checked (public).
Two real-world scenarios:
Public board vote (checkbox on). The board votes on a new pool maintenance vendor. The community deserves to know. When the vote closes, every resident sees the tally on their dashboard for 7 days, the same way they would see a community-wide vote.
Restricted board vote (checkbox off). The board votes on a personnel matter or a sensitive contract negotiation. Residents do not need to see the tally. When the vote closes, only board members and admins see the result banner; for everyone else, the vote was never visible at all.
The ballot-level audit (who voted what) stays restricted to board and admin in either case. The checkbox controls only the public tally.
Closing a vote
Three ways a vote moves to CLOSED:
- Auto-close. The scheduled function runs every 5 minutes and closes any open vote whose
closesAthas passed. This is the most common path. - Manual close from the Votes panel. Tap the Close action on an open vote. A confirmation modal explains that the tally will be frozen and ballots can no longer be cast.
- Manual cancel. Cancellation marks the vote CANCELLED and skips the tally entirely. Cancelled votes do not appear on the resident banner. Use this if you opened a vote in error.
When a vote closes, the Cloud Function reads every ballot, computes the Yes / No / Abstain counts and percentages, and writes a frozen tally field on the vote document. After that, ballots are read-only and the tally cannot be recomputed.
The audit and PDF download
From the Votes panel, tap any vote (open or closed) to open the audit modal. You will see:
- Tally panel: a stacked bar with Yes / No / Abstain percentages plus three stat cards showing each choice’s percentage and raw count
- Turnout: how many of the eligible voters cast a ballot, as a count and a percentage
- Ballot table: one row per ballot with voter name, property address (community vote) or board title (board vote), choice chip, and cast timestamp
Click Download Audit (PDF) to generate a multi-page PDF. The PDF includes:
- Community letterhead with name and “Vote Audit Trail” subtitle
- Vote metadata: scope, status, opened, closed, eligible voters, ballots cast, turnout
- The motion text in italics
- The full tally
- A row for every ballot with voter, identifier, choice, timestamp
- A footer on every page with the generated time and page number
That PDF is what you attach to your meeting minutes, hand to a lawyer, or file with your insurer.
The audit modal and the PDF are visible to admins and board members. Residents do not see the ballot-level audit in any form.
The resident experience
Residents see voting in two places, both on the dashboard banner area at the top of the app.
Active vote banner
If there is an open vote the resident is eligible for, and they have not yet cast their ballot, a colored banner appears:
- Blue for Community Wide votes
- Rose for Board Only votes (visible to board members and admins only)
The banner shows the vote title, a short description preview, the scope chip, and a “closes in X days” or “closes in X hours” countdown. Tapping the banner opens the cast modal. The cast modal shows the full motion text and three buttons: Yes, No, Abstain. After submitting, the banner disappears for that voter.
Closed vote results banner
When a vote closes, a results banner replaces the active-vote prompt for 7 days. It shows:
- The scope chip and a “VOTE RESULTS” label
- The vote title
- A stacked Yes / No / Abstain progress bar
- Each choice’s percentage with a colored dot
- A turnout pill: “X percent of community responded” (or “X percent of board members responded”)
- The ballot count and how long ago the vote closed
- A clear “X days left” hourglass countdown showing when the banner will auto-clear
After 7 days the banner clears automatically. Residents can also dismiss it manually with the X button; the dismissal persists in their browser so reloading does not bring it back.
For board votes with the public checkbox unchecked, only board members and admins see the result banner. For everyone else, the vote never appears at all.
Herald Chat integration
Closed votes (the most recent 20) are part of Herald Chat’s context. The chat respects the same visibility rules as the dashboard banner: a resident cannot have the chat recall a board vote they would not have seen on the banner.
In practice this means residents can ask things like:
- “What was the result of the dues vote?”
- “Did the pool repair vote pass?”
- “What did the board decide about the new gate?”
And the AI will pull the title, scope, motion text, and tally from the closed-vote record. Restricted board votes are filtered out of the chat context for residents.
Frequently asked questions
Can I edit a vote after I open it?
No. The motion text, opens-at, closes-at, and eligibility are all locked at open. If something is wrong, cancel the vote and create a new one. Cancellation does not affect any ballots already cast (they are not counted in a cancelled vote).
What happens if no one votes?
The vote closes with a tally of zero. The system records “0 of N voted” and the banner reflects that. There is no failure state for a low-turnout vote: the system records what happened and you decide what to do with the result based on your bylaws.
Can a resident change their vote after they cast?
No. Once a ballot is submitted it is immutable. This is intentional for audit integrity. If a voter casts in error, there is no recovery path short of cancelling the vote and starting over.
What if a resident is the primary on more than one property?
They cast one ballot per property they are primary on. The cast modal will prompt them to specify which property they are voting on if they own multiple. The audit shows each ballot tied to its property address.
Can I run a vote that closes the same day?
Yes. Set the closes-at to a few hours from now. The auto-close runs every 5 minutes, so the vote will close within roughly 5 minutes of the deadline.
Can residents see who voted what?
No. The ballot-level audit (with names attached to choices) is visible only to admins and board members. Residents see the tally and turnout, never individual ballots.