The model is not the moat
I am building my own AI. I am not an expert in AI. I am an expert in my own business.
That second sentence is doing most of the work. The path I’m on is not “master machine learning, then apply it to real estate.” It is the reverse: take the multifamily judgment I already have — what a good month looks like, when a delinquency number is lying, which variance stories and pricing decisions are real — and teach software to respect it.
Last close, I asked our operating system a delinquency question I already knew the answer to. Not to learn the number. To see whether the model would invent one.
It had to call a tool, read the aged-receivables rows, and show its work. Inventing a total, treating a missing feed as zero, or pulling another property’s data into the answer would have been an automatic fail. Same instinct as credit work: a clean narrative with a bad covenant is still a fail.
That little test is the whole Note in miniature. The valuable part is not a chat window. It is ordinary operating machinery — exports in, contracts that catch garbage, numbers computed the boring way — with one narrow language path on top that is not allowed to freestyle. Finance is a bad place to freestyle.
Why local showed up in the first place
Like a lot of operators, I already use frontier models. They are excellent rented brains for hard, messy, one-off work. I am not trying to boycott them.
What started bothering me was quieter. Every time someone pastes a rent roll, a GL quirk, or a “here’s how we actually think about this variance” correction into a generic chat box, a little bit of firm-specific judgment leaves the building. Sometimes that is fine. Often it is just convenient. Over a year it adds up to teaching the outside world how you operate, while your own shop keeps rediscovering the same lessons.
NVIDIA now sells a desktop machine — DGX Spark — aimed at local prototyping, fine-tuning, and inference, with enough unified memory to do serious work beside the desk. I care about that object less as a gadget and more as a boundary. There is finally a practical place where a firm our size can test, and eventually adapt, an open model without making “ship the books to the cloud” the default move.
I still rent the frontier models when the frontier is worth renting. I just do not want the frontier to become the only place my operating judgment lives.
What I’m actually building
The system underneath is deliberately unglamorous.
Property-management exports come in. They get checked against contracts before anything downstream trusts them. The numbers — T12s, vendor spend, delinquency, unit economics — are computed by code, not by vibes. Only after that is there a language interface, and it has to ask through tools. It does not get to invent a delinquency total. It has to go get the row.
If you have lived inside multifamily ops, you know why that order matters. Footers pretend to be units. Concessions do not flow through. AR feeds go missing. Expense categories occasionally flip sign depending on who exported the file. Manual journal entries come and go in the GL. You cannot fine-tune your way out of a bad Yardi extract. You fix the extract first. Then you ask whether the model is the weak link.
The loop I want looks like this in plain language:
Someone asks a real operating question. The system answers from real books. A human catches the miss. The miss becomes a test case or a tighter rule. Next month is slightly less stupid than this month.
That is the asset. Not the base model weights. The accumulated sense of what “good” means in this portfolio, with these managers, under this chart of accounts.
Fine-tuning sits at the end of that chain. The honest version of my plan is: get a set of real operating questions with answers I can recompute from the books; compare a frontier model to a small open model on those questions; and only if the local model is close but consistently short in a way prompts and better tools do not fix, adapt it with LoRA/QLoRA on one desktop box. NVIDIA’s Spark is built for exactly that kind of local adaptation. Until the comparison exists, “we fine-tuned a multifamily model” would be a press release, not a capability. I would rather be early and boring than loud and wrong.
This is also how I keep any edge worth keeping. The proprietary layer is not a chatbot personality. It is the contracts, the questions we score against, the corrections a competent asset manager actually makes, and the rule for what never leaves the building. If the underlying model changes next year — and it will — the firm should still know how it underwrites an answer.
I’m not inventing this concern alone
Other people with larger microphones are circling the same seam.
Alex Karp has written about tethering AI to objects and relationships in the real world rather than leaving it as detached fluency. For an operator, that translates cleanly: units, leases, work orders, GL accounts, and the review habits around them. General smarts only pay when they touch your actual objects.
Satya Nadella has been blunter about ownership. Firms need both human judgment and the AI systems that extend it. The test he offers is whether you can swap out a generalist model without losing the “company veteran” expertise you built around it. He has also warned that companies can end up paying for intelligence twice — once in cash, and again with the proprietary knowledge they have to reveal to make the tool useful.
I read those as industrial weather, not as endorsements of my stack. They are useful because they match what the quarterly reconciliation already taught me. If your corrections only live in someone else’s chat history, you are volunteering to pay twice.
How I decide what runs where
I do not have a religion about local versus cloud. I have a few practical habits.
If the work is repetitive, tied to our books, and needs to be inspectable later, I want it inside a system we control — eventually on a local or open-weight model once the quality is good enough. If the work is hard, rare, or needs fresh outside knowledge, I rent a frontier model and I try to log what I asked and what I accepted. If a workflow has both shapes, local handles the stable middle and the frontier call is the exception, not the home address.
Money decisions stay human. Delinquency posture, anything near housing outcomes, capex versus opex calls, owner distributions — those are not “the model said so” moments. The model can prepare the binder. A person still signs the page.
The question I come back to is simple: when this is wrong, who sees it, who fixes it, and does next month inherit the fix? If nobody owns that, it does not matter whether the answer came from a desktop GPU or the best API on earth.
Where this actually is
I want to be straight about altitude.
The operating path is real: ingestion, contracts, deterministic numbers, a narrow ask interface, human review. The local/open model work is earlier. I am not publishing a fine-tune win, a cost-savings chart, or a tokens-per-second brag. The next honest milestones are ordinary:
- a fixed set of operating questions with answers recomputed from the books,
- the same questions run through a frontier model and a small local model,
- only then, if a real gap remains, one narrow adaptation experiment on a single Spark-class workstation.
If that sequence sounds slow, good. Multifamily cash flow is not a demo-day audience.
I would change my mind quickly if local quality loses on the questions that matter, if the team will not use the thing, if we spend more attention babysitting infrastructure than we gain in better decisions, or if the failures keep turning out to be bad exports rather than weak models. You cannot backprop through a broken CSV. That is not a slogan. It is Tuesday.
What I’m really trying to show
I am not trying to win an AI benchmark. I am trying to become dangerous in a narrower way: know the business deeply enough to define “good,” and know the tools well enough to keep that definition inside the firm while still using the best rented brains when they earn their keep.
The models will keep getting cheaper and more interchangeable. That is not the scarce part. The scarce part is an operator who can teach a system his standards, catch it when it bluffs, and still remember which judgment calls are not delegable.
I am building that on purpose, in the domain I actually run. The model is not the moat. The loop is.
—
Compound is a bi-weekly Monday letter on bottom-up CRE analysis, informed by operator-grade private-market context. Free bi-weekly, with paid deep-dives launching later in 2026. Subscribe at matthewd.com/letter.
—
Sources
NVIDIA DGX Spark product page (vendor capability claims for local fine-tuning/inference, including up to ~70B-parameter fine-tunes on one box): nvidia.com/dgx-spark.
Alex Karp, Palantir Q2 2025 letter to shareholders (Aug 4, 2025), on tethering AI to real-world objects and relationships: palantir.com/q2-2025-letter.
Satya Nadella, “A frontier without an ecosystem is not stable” (June 14, 2026) and “The Reverse Information Paradox” (July 12, 2026): snscratchpad.com/frontier-ecosystem, snscratchpad.com/reverse-information-paradox.
This is a first-person operating note, not a completed fine-tune report and not investment, legal, or procurement advice. No property-level financials or run metrics are published here.