Start here
A work in progress - what these numbers are (and aren't)
This is an initial preview, not a polished verdict, shared openly because the model and the process are the project.
The current preview uses Salem-area property and rent assumptions; future versions may test other markets, but Salem is the first case study.
- The cost model is currently ~2× too high. Our operating-expense model is a known over-estimate (a real limitation we're fixing next). Some assumptions are harsher than reality, especially OpEx; others are still simplified or optimistic, especially vacancy. These results are directional stress-test outputs, not benchmark figures.
- Dollar thresholds will move. Every enhancement, bug-fix, and code-change results in a likely shift of the results. Don't quote the dollar thresholds as "what it takes." They will move once the cost model, reserve curve, staffing model, and vacancy assumptions are made more realistic. This is not launch-capital guidance.
- "Survived" means the organization stayed solvent (didn't run out of money). The current model also preserves the core tenant-protection rules implemented so far, but this is not yet a formally verified mission score.
We'd rather show you the honest work-in-progress than a confident number we'd have to walk back.
Hundreds of simulation runs - What we're finding
Across 800 simulated 20-year runs spanning different starting capital and six inflation environments, the current draft model suggests a clear, sensible pattern: under-capitalized versions fail, better-capitalized versions survive, and the implemented tenant-protection rules hold in the runs tested.
Reading note: these figures describe gold-v0.3 on the V0.2 engine. They are a checkpoint on the model's behavior, not a fundraising target, feasibility promise, or final operating forecast.
And survival isn't a frozen, stagnant portfolio. In the current simulations, the model grows: from ~22 homes at $7.5M to ~43 at $11M, while holding the below-market rent rule. Evictions remain rare in this version, but that result is still partly a modeling artifact, not proof that tenant hardship has been solved.
Stay longer, pay less
In the model, a new tenant starts ~10% below market. From there, a tenant's rent only moves in one direction: down.
At set milestones, a tenant's rent obligation is reduced:
So a tenant pays 5%, then 10%, then 20% below their starting rent, holding steady in between. It's a reward for putting down roots, paid in stages, and across the 800 runs those milestones were reached tens of thousands of times.
A few notes on this one:
- Unlike the survival figures, this is not a projection that moves with the cost model. This is the tenant policy working as designed: starting below market, then stepping down at the 3-, 6-, and 10-year marks. It is a policy result we would stand behind today.
- The current public policy shown here is the three-reduction model. During review, we found that the
gold-v0.3baseline also applied an unintended fourth 15-year reduction in some runs; that finding is documented separately and is being cleaned up rather than promoted as policy.
Built the hard way: Honestly
This didn't start polished. The first version lived entirely in a SQL Server database and was, frankly, deeply flawed. Since then, it has been rebuilt and re-examined many times. And across a long run of bugs, rewrites, and hard second (and third and fourth) looks, there's been one stubborn objective: make the model honest, even when honesty makes the numbers worse.
That's not just a figure of speech. A number of the things we fixed were bugs that made the organization look better than it really is, e.g., a real cost that wasn't being charged, a benefit quietly counted in our favor. We corrected those the same way we would correct a "breaking" bug. And just as often, the "bug" wasn't a breaking bug at all, it was code that ran perfectly while quietly doing something the mission is supposed to refuse. We treat falling short of the mission as a bug, too, and a great deal of this work has been focused on that specifically: bringing the code into line with what the model is supposed to stand for.
Here's a sample of what we've caught:
- ✔ A growth deadlock
- ✔ Phantom employees
- ✔ Data tables changing shape mid-build
- ✔ Costs that quietly went uncharged
- ✔ Numbers that flattered us
- ✔ Code that ran fine but missed the mission
What we're still making honest
- ! Operating costs run ~2× real-world - the big one, and (true to form) it makes us look harder to sustain, not easier. Itemizing it is the next phase.
- ! The reserve rule is too blunt - a flat target that over-reserves as the portfolio grows.
- ! A couple of inputs are still optimistic (vacancy especially) - it makes us look better, but we've flagged against ourselves.
- ! An experimental setting slipped into this baseline - caught while building this page, actually. Some long-tenure tenants received an extra 15-year reduction that is not part of the current public spec. That made the simulated organization carry slightly more tenant benefit than intended, meaning the solvency results were achieved under a bit more pressure. We are excluding that fourth tier from this preview and cleaning the parameter set before the next baseline.
The model is not finished or flawless. What we'll stand behind is the direction: every pass has been aimed at making it more real and more mission-true, even when less flattering to us.
What's next
The next phase is another dive into making the cost model more realistic - itemized expenses, vacancy realism, a diversification-aware reserve, scale-appropriate staffing.
That's the version is expected to be a publicly released, benchmark-grade model.
This page is just a checkpoint on the way there.
Liberty Bee is a public data, simulation, and systems-design project, focused first on Salem, Massachusetts. The housing model is the case study; the goal is a credible, explorable, data-backed public model of whether a more-affordable-than-market, non-extractive housing organization can be financially stable.
open source reproducible honest about its limits