Skip to content

Lot Statuses

The lot status is a single letter on each lot. It appears on schedules, sales screens, and reports — so recognizing the code matters.

At a glance

  • Each lot has one of 11 status codes.
  • The big four day-to-day: s For Sale, f Sold, p Production Inventory, c Closed.
  • Side branches: m Accepted, i Sold-Contingent, v Model, w R&D, z Not Available, a/b Job Cost / Non-Job.
  • Status is never edited by hand. It’s a side effect of a Contract operation (Accept / Ratify / Close / Cancel) almost every time.
CodeNamePlain EnglishTypical lifecycle position
zNot Available for SaleLot exists but isn't being marketed yet (still being set up, no plan, no permit, etc.).Default for a brand-new lot.
sFor SalePublic/marketing inventory. Sales agents can sell it.Right after lot setup is finished.
mAcceptedBuyer has signed; the contract is at acc. Options are loaded but the plan isn't locked yet.When a sale is accepted.
fSoldContract is at rat: plan is locked, schedule is generating, POs queue.When a contract is ratified with no open contingencies.
iSold, ContingentSame as f but the contract has at least one open contingency (financing, sale of current home).When a contract is ratified with contingencies still open.
pProduction InventoryAn inventory contract is being built without a buyer. Schedule and POs run as on a sold home.Set on inventory accept, or on a buyer cancel that releases the lot.
cClosedMoney has changed hands. Lot is locked from edits. Warranty period started.Final state.
vModel HomeUsed as a model. Carries inventory cost; doesn't follow the normal sales rules.Special.
wR&D HomeResearch / prototype home — a "Spec" used to test new floor plans, materials, or features.Special.
aJob Cost JobInternal cost-tracking job (e.g. amenity construction, sales-center build).Special.
bNon-JobMisc cost bucket inside a project (e.g. project-level overhead).Special.

Almost every change to Lot.Status is a side effect of a contract operation. The headline transitions: ratify drives m → f/i; close drives f/i → c; cancel drives f → p or p → z. See Contracts for the full cascades.

All Lot.Status transitions and the proc/script that drives each
Lot.Status came fromDriven by
sm / p / v / wspProcessContractAccept
mf / ispProcessContractRatify (sale path)
f / icspProcessContractClose
fpspProcessContractCancel (sale path)
pzspProcessContractCancel (inventory path)
cfUnclose a contract.sql (CSR script)

Lot.SoldDate follows f/i. Lot.CloseDate follows c. Lot.ProdRatifiedDate is set the first time an inventory home is ratified and is not moved by later events.

Lot.Status is just the headline. Several sibling columns clarify why the lot is where it is.

The five helper columns (StatusAtStart, PendingStatus, Reserved, LockedAfterClose…)
ColumnWhat it tells you
StatusAtStartWhat the status was when the build started (used to detect spec vs. presold).
PendingStatusIf a status change is in flight (e.g. closing batch is mid-run).
Reserved / ReservedExpDateBuyer is holding the lot but hasn’t signed; expires automatically.
LockedAfterClose / LockedAfterCloseDateAfter close, prevents accidental edits to the closed lot.
Counts by status across the whole company
SELECT s.LotStatusName, COUNT(*) AS Lots
FROM dbo.Lot l
JOIN dbo.LotStatus s ON s.LotStatusID = l.Status
GROUP BY s.LotStatusName
ORDER BY Lots DESC;