Mutual governance and AGM administration¶
| ID | MOD-131 |
| System | SD08 |
| Repo | bank-app |
| Build status | Not started |
| Deployed | No |
Purpose¶
Provides the governance workflow tooling required for mutual institutions — building societies and credit unions — to discharge their statutory AGM obligations, conduct member voting, and distribute their annual report. Operates exclusively when the platform is deployed with institution_type: mutual.
This module is a companion to MOD-118 (member equity and share registry), which manages the member register and share capital. MOD-131 manages the periodic governance events (AGM, extraordinary general meetings, board elections) that mutual institutions must conduct under their enabling legislation.
Enabling legislation¶
New Zealand. Building societies are incorporated under the Building Societies Act 1965 and must hold an annual general meeting. Member-elected boards are a statutory requirement; board election results must be filed with the Registrar of Companies. Credit unions operate under the Friendly Societies and Credit Unions Act 1982 with similar AGM obligations. Under the Depositor Compensation Scheme established by the Deposit Takers Act 2023, the member register maintained in MOD-118 must be accurate as at each reporting date.
Australia. Mutual ADIs (building societies and credit unions) are incorporated under state legislation or as companies limited by guarantee, and must hold an AGM under the Corporations Act 2001. APRA-regulated mutual ADIs are also subject to the Mutual Equity Interest (MEI) provisions and the Basel III Common Equity Tier 1 criteria for cooperative/mutual institutions. Member voting rights and their relationship to capital instruments must be documented in the institution's constitution.
AGM workflow¶
The AGM workflow covers five stages:
1. Notice generation. The back-office governance team initiates an AGM in the module, specifying the meeting date, venue or virtual meeting platform, agenda items, and notice period. The system queries MOD-118 to identify all eligible members (active status, shareholding ≥ 1 share as at the record date). The AGM notice document and proxy form are uploaded to MOD-073 and dispatched to all eligible members via MOD-063 on the notice date. The notice period is enforced as a gate — the meeting cannot proceed unless notice was dispatched at least the statutory minimum days before the meeting (configurable; NZ Building Societies Act: 14 days minimum; Corporations Act AU: 28 days minimum for public companies, 21 days for proprietary equivalent).
2. Proxy submission. Members who cannot attend in person may lodge a proxy. Proxies may be submitted digitally via the member portal or in writing. The module records each proxy with the member ID, nominated proxy holder, any directed voting instructions, and receipt timestamp. Proxy submissions after the cut-off time (typically 48 hours before the meeting) are rejected.
3. Quorum check. On meeting day, the back-office governance operator initiates the quorum calculation. The system counts members present or represented by proxy, expressed as a percentage of total eligible members. If quorum is not reached, the meeting must be adjourned or the threshold recalculated per the institution's constitution. Quorum rules are configurable.
4. Voting and result recording. For each resolution (ordinary, special, or board election), votes are recorded by the back-office operator. Results are calculated as: votes in favour, votes against, abstentions, and the resolution outcome (passed or failed). For board elections, a ranked count is run against the candidate list and the elected directors are recorded with their term start date.
5. Minutes and result filing. The AGM minutes are uploaded to MOD-073 and distributed to all members via MOD-063 within the statutory period after the meeting. Board election results are flagged for filing with the relevant registrar (Companies Office NZ, ASIC AU) — the module produces a structured filing summary but does not connect directly to registrar APIs (filing remains a manual step).
Data model¶
-- app.general_meetings
CREATE TABLE app.general_meetings (
meeting_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
meeting_type TEXT NOT NULL CHECK (meeting_type IN ('agm','egm')),
meeting_date DATE NOT NULL,
notice_date DATE NOT NULL,
notice_period_days INT NOT NULL,
record_date DATE NOT NULL, -- member eligibility determined at this date
eligible_members INT, -- populated when notice is dispatched
quorum_threshold_pct NUMERIC(5,2) NOT NULL,
quorum_met BOOLEAN,
status TEXT NOT NULL DEFAULT 'planned'
CHECK (status IN ('planned','notice_dispatched','in_progress','completed','adjourned')),
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- app.meeting_resolutions
CREATE TABLE app.meeting_resolutions (
resolution_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
meeting_id UUID NOT NULL REFERENCES app.general_meetings(meeting_id),
resolution_number INT NOT NULL,
resolution_type TEXT NOT NULL CHECK (resolution_type IN ('ordinary','special','board_election')),
description TEXT NOT NULL,
votes_for INT,
votes_against INT,
abstentions INT,
proxy_votes_for INT,
proxy_votes_against INT,
outcome TEXT CHECK (outcome IN ('passed','failed','deferred')),
resolved_at TIMESTAMPTZ
);
-- app.meeting_proxies
CREATE TABLE app.meeting_proxies (
proxy_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
meeting_id UUID NOT NULL REFERENCES app.general_meetings(meeting_id),
member_id UUID NOT NULL, -- MOD-118 member_id
proxy_holder_id UUID, -- member_id of proxy holder, if another member
directed_votes JSONB, -- {resolution_id: 'for'|'against'|'abstain'}
received_at TIMESTAMPTZ NOT NULL,
valid BOOLEAN NOT NULL DEFAULT true,
invalidation_reason TEXT
);
Annual report distribution¶
The annual report workflow is separate from the AGM workflow but typically runs on the same timeline. The governance team uploads the finalised annual report PDF to MOD-073. The module dispatches the annual report to all active members via MOD-063 (push notification with in-app and email delivery). Delivery status is tracked per member — members who did not receive delivery are queued for postal dispatch (external to the platform) if applicable.
Annual report dispatch is recorded as a governance event and logged to MOD-047. Regulators (RBNZ, APRA) may request evidence that the annual report was made available to all members; the dispatch record provides that evidence.
Configuration flag¶
When institution_type: proprietary, this module is inactive. All GOV policy workflows and back-office governance tools continue to function, but the mutual-specific AGM and member voting functions are hidden. This prevents a proprietary bank deploying this platform from inadvertently accessing mutual governance tooling.
Requirements¶
FR-585 — Notice period gate: the AGM workflow must enforce the configured minimum notice period as a technical gate; the meeting status must not advance past notice_dispatched unless MOD-063 confirms that the notice was dispatched to all eligible members at least the minimum number of days before the meeting date; the gate must be enforced based on the dispatch confirmation timestamp, not the scheduled dispatch date.
FR-586 — Proxy management: the module must record every proxy submission with the member ID, receipt timestamp, and any directed voting instructions; proxies received after the configured cut-off must be automatically rejected with a rejection record; the total proxy count and directed vote breakdown must be included in the quorum and voting calculations.
FR-587 — Voting record integrity: resolution outcomes must be calculated from the recorded votes and must not be manually entered as a final result without the supporting vote count; the resolution record must include votes_for, votes_against, abstentions, and the outcome derived from those figures; the AGM minutes document must be stored in MOD-073 and dispatched to all members within 30 days of the meeting date.
FR-588 — Annual report distribution: the annual report dispatch must be triggered from within the governance workflow, dispatched via MOD-063 to all active members, and the delivery status tracked per member; the dispatch event must be logged to MOD-047 with the document reference from MOD-073 and a count of successful and failed deliveries.
Module dependencies¶
Depends on¶
| Module | Title | Required? | Contract | Reason |
|---|---|---|---|---|
| MOD-118 | Member equity and share registry | Required | — | The member register in MOD-118 is the authoritative source of AGM eligibility — member count, shareholding at record date, and voting entitlement are all derived from it. |
| MOD-063 | Notification orchestration | Required | — | AGM notice, proxy voting invitations, reminder notifications, and annual report delivery are dispatched via the notification orchestration module. |
| MOD-073 | Document vault | Required | — | AGM notice documents, proxy forms, the annual report, and the AGM minutes are stored and delivered via the document vault. |
| MOD-047 | Agent action logger | Required | — | All AGM administration actions are logged to the agent action audit trail for governance and regulatory examination purposes. |
Required by¶
(No modules in this wiki currently declare a dependency on this module.)
Policies satisfied¶
| Policy | Title | Mode | How |
|---|---|---|---|
| GOV-001 | Board Charter | AUTO |
AGM notice, agenda, and proxy voting processes are delivered through a governed workflow that ensures all members on the register receive notice within the statutory timeframe and that quorum calculations are based on the live member register from MOD-118. |
| CON-001 | Customer Fairness & Conduct Policy | AUTO |
All eligible members receive AGM notice, proxy forms, and annual report simultaneously via their preferred channel — no member receives less notice than any other. |
| REP-002 | Prudential Reporting Policy | LOG |
AGM outcomes, board election results, and proxy voting tallies are recorded as immutable governance events and are available for regulatory examination and member inspection on request. |
| GOV-006 | Internal Audit Policy | LOG |
All AGM administration actions — notice dispatch, proxy receipt, vote recording, result declaration — are logged with the acting staff member's ID and timestamp. |
Capabilities satisfied¶
(No capabilities mapped)
Part of SD08 — Customer App & Back Office Platform
Compiled 2026-05-22 from source/entities/modules/MOD-131.yaml