Portfolio and enterprise
One read-only console across several communities. It exists so a managing agent, developer or group can see money and health across everything they run, without holding any power inside the communities themselves.
A portfolio is a set of communities that one organisation runs. The console is read-only on purpose: it answers "how are the communities doing?" and refuses every question of the form "change this community". That line is the reason the feature exists — a group role that could moderate or suspend inside a community would be a second admin layer, and this product has already removed one of those.
What it is
One account, one screen, every community side by side. You see each community's money, its member count, the work still open and the one number that community is judged on. What you cannot do is act: there is no write path anywhere in the console, for any role.
/portfolio/portfolio/{organisation}/super-admin/organisationsHolding a portfolio role grants nothing inside a community — no broadcasts, no role changes, no settings, no moderation queue. It is a separate system from platform staff access, and the two are checked apart.
Your role
Every person on a portfolio is an owner, a manager or read-only. The roles differ in one place only: managing the organisation itself.
| Role | Views the portfolio | Manages the organisation | Anything inside a community |
|---|---|---|---|
| Owner | Yes | Yes — add people, change roles, rename | Nothing |
| Manager | Yes | No | Nothing |
| Read-only | Yes | No | Nothing |
"Nothing" is literal: an organisation role cannot open a community's admin pages, send a message, or touch a setting. If a manager needs to act inside a community, they need a membership in that community, granted by that community's own committee.
What the console shows
One row per community, and a month-by-month series behind it.
| Column | Meaning |
|---|---|
| Community | Name and community type, with a marker if the community is inactive |
| Members | Active memberships |
| Billed this month | What the community raised this calendar month |
| Collected this month | What was paid against it |
| Outstanding | Everything still owed, from any month |
| Arrears over 30 days | Owed and late by more than 30 days — readable for every housing community |
| Open work orders | Maintenance still in flight |
| Its own metric | That community's north star, phrased in its own unit |
The monthly series is derived on read — never stored — so it cannot drift from the ledger. Months that are still projected are excluded from the historical totals, and a month with nothing billed reports nothing rather than a misleading zero percent.
Why there is no portfolio score
Money is comparable across communities: a rand collected in a stokvel and a rand collected in an estate are the same rand, so totals sum them. A north star is not. An estate is judged on arrears over 30 days; a stokvel on how this cycle completed; those are different units, and averaging them produces a number nobody can act on. So each row keeps its own metric and the portfolio totals have no score field at all.
Zero and "not measured yet" are also kept apart: an HOA with no decisions in 90 days is a problem, not a quiet success, and a stokvel that has not raised a cycle yet says so instead of reporting 0% paid in.
Getting a portfolio
Portfolios are provisioned by us, because attaching a community is a commercial act rather than a self-service one.
- Tell us which communities belong together — get in touch and we will quote for Enterprise.
- We create the organisation and attach the communities you name. Attaching changes nothing inside a community: no members, settings or modules move.
- You add people by email and choose owner, manager or read-only. They sign in with the account they already have.
- Your contract sets a ceiling — how many communities it covers — and communities can be attached or detached later by us at your request. Detaching leaves the community exactly as it was.
Your contract
Every portfolio carries a contract rather than an open door. It records six things:
| Field | What it means |
|---|---|
| Customer kind | Managing agent, developer, landlord or other — how you describe the business you run |
| Community ceiling | How many communities the contract covers. It is a number, not "unlimited": raising it is a deliberate act, done with us |
| Contract reference | The agreement the console sits under |
| Contract ends | When the agreement lapses, so nobody has to remember |
| Billing rail | Invoice (EFT) or card — recorded per portfolio, so the two can coexist |
| Billing status | Active and past due both open the console: a card that failed this morning should not kill reporting before finance has read the email. Pending, suspended and cancelled do not. |
| Price basis | Flat per portfolio, or a unit price per community — whichever the agreement says |
Your list shows n of max communities and flags Over contract when a portfolio holds more than its ceiling. Nothing detaches automatically: a portfolio over its ceiling is a fact for a person to fix, not a reason to switch off a paying community over night. Lowering the ceiling below what is attached is allowed on purpose — that is how a lapsed contract gets recorded honestly.
Attaching is enforced on the server, not in a form. The check locks the organisation, counts what it already holds and refuses an over-capacity attach with a plain instruction ("contracted for 5 communities and already holds 5 — detach one, or raise the contract first"), so two simultaneous attaches cannot overfill a portfolio and a customer cannot attach a community themselves.
Console views are recorded
Opening a portfolio is logged: who viewed it, how many communities it held and which page they opened. It is an append-only record, written after the page has rendered so it can never slow the console down, and it is the answer to "who has been looking at our group?" without instrumenting a single community.
What it will not do
- No writes of any kind — the console has no create, edit or delete path
- No cross-community messaging: you cannot broadcast to another community's members
- No access to a community's private records beyond the aggregates the console publishes
- No role inside a community: portfolio persons must be given a community membership separately, by that committee
- No blended health number that hides a failing community behind an average
- No organisation member writing inside a community — not a message, not a setting, not a role
- No safety, chat or personal data rolled up to portfolio level: the console reads aggregates only
- No impersonation of a community admin from the portfolio
Which plan
The console is the portfolio module, granted on the Enterprise plan. Enterprise is quoted per group and billed annually rather than sold as a price card — see what Enterprise includes. The other community types keep their published plan sets; nothing here changes a community's own bill. The entitlement is enforced on the portfolio’s own subscription: it opens the console only while that subscription is active or past due, and the plan behind it must include the portfolio module. Pending, suspended and cancelled subscriptions do not open it. A contract that lapses therefore switches the console off rather than quietly carrying on.
How billing works today
Each portfolio is billed on its own subscription rather than through any community: an invoice for the period, with the amount derived from the contract — flat, or a unit price per community. An unpaid subscription shows as past due and keeps the console open while finance works it out; suspension or cancellation closes it.
An invoice is raised for the period in the console and carries a signed PayFast payment link. The payer chooses card or Instant EFT on PayFast’s page, and paying it settles the invoice and rolls the subscription period forward in one step — so a customer who has paid cannot sit suspended, and one who has not cannot stay active. Nothing auto-charges: it is a link that pulls, which is exactly why the period only advances on settlement. No invoice email is sent yet; the link is shown on the invoice in the console.
Questions
Does joining a portfolio give us access to their data? No. You get the aggregates the console publishes — money, members, open work orders, their north star. Community records stay with the community, and the database functions that build the console are aggregate-only.
Can a portfolio owner approve a levy in a community? No. That is a community governance action, done by that community's committee under its own rules.
What happens when we detach a community? Nothing inside it changes. It stops appearing in your console; its members, ledger and settings are untouched.
Can a community belong to two portfolios? No — a community is attached to one organisation at a time, or none, which is the normal case for a standalone community.