The tech, and the receipts

Don't trust it. Check it.

How it's built, where the code lives, and every number's source.

How it's built

Reproducible to the penny, from a seed.

Liberty Bee is an event-driven Monte-Carlo simulation engine — Python 3.12 + SQL Server — that plays out 240 months of housing operations per run: acquisitions, leases, renewals, maintenance events, inflation regimes, tenant retention. Every random draw comes from a recorded seed, so any run — a survival, a death, one tenant's discount schedule — can be reproduced exactly by anyone with the code.

  • Event-driven engine — every acquisition, lease, renewal, repair and rent change is a dated event, not an average
  • Seeded RNG + RunID / BatchID run tracking — deterministic and reproducible: the same seed replays the same 20-year history to the penny, each run in its own freshly-restored database
  • A frozen baseline (named engine version, read-only) a skeptic can cite — beside a living farm that ran on fresh seeds and only grew the evidence (closed with V2; preserved in the version archive)
  • Regime-based inflation; itemized operating costs calibrated on Salem and repriced from each region’s own data; regional wages; zero-debt acquisition — the realism, not a toy

Take it. Change the assumptions you doubt. Run it against your own city. If we got something wrong, this is how you'll prove it. And this is how you'll let me know: libertybeegray@gmail.com

Under the hood — the property market

It buys from a real, moving market.

Liberty Bee doesn't hand itself buildings. It runs a simulated property market that behaves like a real one: listings appear and disappear on a daily clock — more of them in the busy season — each priced from real local sales data and sized by real unit counts. Every building carries a days-on-market and a hold-period drawn from real distributions, so some sell fast, some linger, and owners sit on a property for years before it comes up again.

Against that market the operator does what a careful buyer does: watch what's available, value each property on its rents and its condition, and buy it outright when the numbers work and the cash is there. There's no auto-granted portfolio — every acquisition is a decision the model has to be able to afford, which is exactly why the starting-capital question has a hard floor.

The market's inputs — prices, rents, listing volume, days-on-market, seasonality, how long owners hold — are all calibrated from public real-estate and housing-market data for the Salem area. Where a number is a local market observation rather than an official statistic, we treat it as a calibration input, not a published claim — the goal is a market that behaves like Salem's, not a listings database.

Under the hood — inflation

The economy doesn't move in a straight line, so neither does the model.

Plenty of housing models pick one inflation number — say 3% a year — and let it ride. That single assumption can make an operator look invincible: a steady rate never produces a bad year. The world doesn't work that way. Neither does our simulation.

Instead, the model treats the economy as a set of regimes — calm stretches, rent surges, financial downturns, post-shock recoveries — and moves between them month to month, the way real markets do. And critically, everything inflates on its own track: rents, operating costs, property values, and vacancy don't march in lockstep. We model that because that decoupling is exactly what hurts a real operator — in a downturn, property values fall and vacancy climbs while taxes and insurance keep rising anyway. So we model it honestly.

The regimes are calibrated from real federal inflation and housing-price history. There have been only a couple of genuine crises in the last forty years — too few to simply resample — so how often a downturn strikes is a modeling decision we made to the best of our ability, not a statistic we can pretend to have measured. When we say "every market regime, calm to crash" that means something here, because the model has to survive surges and crashes, not one flattering straight line.

Compensation — how the deal got its numbers

Priced honestly, the original deal failed. So we changed the deal.

Earlier versions of this model ran on two subsidies at once, and one of them was hidden. The visible one was the tenant deal: sign 10% below market, deepening by 5, 5, and 10 points at years 3, 6, and 10. The hidden one was payroll: staff pay was set at what the founder was personally prepared to live on — a declared value, not market data. The simulations survived because someone was quietly underwriting them out of their own paycheck.

So we repriced the labor and reran everything. At each region's own market wages (BLS metro medians to hire, 75th-percentile caps for a career, 25% benefits), the old configuration stops working: at real market pay, the original Salem model has no clean survival floor anywhere up to $11M, and at metro-median pay the Massachusetts floors climb by $1.5–3M each, and San Francisco's by about $4M. Paying people fairly is not a rounding error — the founder's sacrifice had been worth more than $4.5M of starting capital.

The current deal is what survived honest pricing: sign 5% below market, deepen 3/3/5 at the same year-3/6/10 marks, keep the 10% timely-payment credit, and pay real regional wages. In Salem that model holds from $7M — five hundred thousand dollars more than the founder-sacrifice original needed. Every generation of this reckoning ships as a reproducible corpus in the release, so you can check the fork we took — or take the other one, knowing its price.

The discount axis was tested to its limits too: at the subsidized pay basis, no funding level we tested — up to $11M — guaranteed survival past a 40% discount. Deeper generosity doesn't just cost more; past a point it stops being purchasable at all. The full sweep behind that — every discount depth from 15% to 50% off, at every funding level, on both the 2025 and 2026 records — ships in the release datasets for anyone who wants the dose-response data.

Wage basis: BLS OEWS May 2025, each region's own metro. Metro-area medians are deliberate — staff hire from the metro labor pool, and parts of a metro naturally run above or below the metro median. The cockpit's staffing page is the adjustment tool if your labor market differs.

Built the hard way

We went looking for our own mistakes.

A model is only worth trusting if the people building it tried to break it. So we did — and when we found something wrong, it went on the page, even when the fix made our numbers worse. A sample of what we caught:

  • A real operating cost the org was quietly not being charged — now charged, and it made survival harder.
  • Qualifying applicants against a stale, too-low rent — now checked against the real rent; same standard, honestly applied.
  • Renewals that were a blind coin-flip — now a real retention model grounded in the deal and the market.
  • A rent bug that accidentally under-charged some tenants — we told you anyway; it happened to favor the tenant.
  • Lead-paint "assessment" that could never actually fail — abatement was unreachable code and lead costs quietly capped at $750 a buildingnow a real assessment at purchase, with real abatement costs the org must afford or walk away from. It reshaped which buildings the model buys, and it made the mid-funding rungs die more honestly.

The full list — every defect we knew about at close, its cause, and its fix status — lives on the known-issues ledger. It stands as the final honesty ledger of the project.

The honest fence — in full

What the model doesn't know, exactly.

A model that only tells you its wins isn't a model, it's a pitch. An honest model names its own edges. None of these move the survival record; all of them bound what it can claim. The defects we know about — cause, status, fix — live on the known-issues ledger; these are limits, not bugs.

  • Bedroom count is the only thing that sets a unit's market rent. In the current universe that means 6 distinct market rents across 5,823 units — every 1-bedroom carries the same median, every 2-bedroom the same, and so on. No square footage, location, or condition signal. And no bathroom signal either: public parcel data publishes no bathroom counts, so every unit defaults to one bath and the engine's bath-pricing channel is a no-op in this world. Rents do move through time — the inflation regimes reprice at signing — but at any moment, all units with the same bedroom count share one market rent. Import your own region with per-unit observed rents and the model uses them verbatim.
  • Tenants don't have lives yet. Hardship is a monthly probability, not a trajectory: no job loss, no new baby, no aging (ages are cosmetic). Evictions are correspondingly rare — the planned tenant engine turns them into the honest end of a real story, and it's the single biggest realism gap.
  • Two mechanics fight the mission, and are flagged rather than hidden: eviction has no cure period, and a partially-funded installment deposit forfeits money already paid on early exit. Both are documented tensions awaiting the tenant-engine era — on the ledger, not buried.
  • Some things never happen in the current model: late-payment status is structurally never written (grace-window collection lands on-time); staff are hired but never terminated; grants and the community-initiatives program are scaffolded but unread; compliance remediation always succeeds.
  • Vacancy is steady-state. Cyclical soft-market stress enters only through the inflation regimes' vacancy deltas — there is no independent vacancy-shock model, and widening the fluctuation band doesn't honestly fake one.

Where it isn’t finished — and where it was headed

It’s not done. Here’s exactly where — and what was next.

Development wrapped here: the project is mothballed with the record complete. But the roadmap was real, and it stays published — for a future version of this project, or for whoever picks the model up first. What was next:

  • Hardship is a probability, not yet a life. Evictions are rare here — 98.4% of surviving runs at the $7M floor record zero — partly because the model doesn't yet follow a single household year to year. The planned tenant engine does exactly that, so an eviction becomes the honest end of a real trajectory, not a dice roll.
  • Deep discounts at honest wages. The discount-depth ladders were measured at the founder-subsidy pay basis; re-running them on the fair-wage model is a knob-only sweep away, and would price the deep end of generosity honestly.
  • EIP — the mission beyond the rent roll. A future version could model an Experimental Initiatives Program: once housing and reserves are secure, surplus funding cultural preservation, reuse of historic buildings, artist and caretaker residencies, tenant-led place-making. Hard-gated — housing always comes first.
  • Grant simulations. This baseline assumes no grants at all. A future version can model them as an acquisition accelerator — never operating life support — to show how much faster the mission scales when someone does write the check.
  • "Survived" is solvency — we never invented a "mission score." Whether the mission was served isn't one number, so we didn't fake one. We show the concrete things instead: what tenants saved, what stayed local, how many were housed and for how long.

The model isn't flawless. What we stand behind is the direction it was built in: every pass made it more real and more mission-true — even when that was less flattering to us.

Liberty Bee