Skip to content
Bureau of Applied Science
CLASSIFICATION: PUBLIC
DOCUMENT:       Bureau of Applied Science — Property Record Format
STANDARD:       Bureau of Applied Science Standard 1
REVISION:       1
DATE:           2026-07-29
AUTHOR:         Bureau of Applied Science
LICENSE:        CC BY-SA 4.0. Marks, wordmark, and palette reserved.
SOURCE BASIS:   Bureau pre-existing frameworks and public reference
                 standards. Contains no client-supplied parameters,
                 thresholds, market selections, or assumptions.

Property Record Format

Revision 12026-07-29

1Scope

This document specifies the structure of a Property Record: the machine-addressable object describing a single multifamily property under evaluation for acquisition.

A Property Record in the sense used here is an evaluation artifact assembled by a prospective buyer. It is distinct from a property record in the county sense, which is a recorded instrument held by a public office. This document specifies the former and treats the latter as one of its sources.

It specifies structure, not values. Every numeric quantity in this document is a placeholder. Underwriting parameters are configuration, and configuration belongs to the operator, not to the format.

1.1Relationship to existing standards

Reporting standards already exist on the servicing and securitization side of the multifamily asset lifecycle. The CREFC Investor Reporting Package governs periodic loan and property reporting to securitization investors. Freddie Mac's Multifamily Securities Investor Access distributes that package for its securitized collateral, with servicer watchlists maintained against CREFC criteria. The FHFA Enterprise Public Use Database discloses Enterprise multifamily acquisitions annually, carrying property size, unpaid principal balance, and seller or servicer identity.

Those standards describe assets already owned and already financed. No equivalent exists on the acquisition side, where the same property is evaluated by a prospective buyer working from county records, agency disclosures, listing data, and estimates.

This format is the acquisition-side counterpart. It borrows the reporting discipline of the servicing side and applies it to the point in the lifecycle where the data is least complete and the decisions are largest.

1.2What the format is for

A property evaluated today and a property evaluated eighteen months from now are compared against each other constantly. They are evaluated from sources of differing quality, currency, and license status. A record that does not carry the origin and age of its own fields cannot support that comparison, and the failure is silent: the numbers still render, the pipeline still sorts, and the ranking is wrong.

The format exists to make that failure loud.

1.3Conformance language

MUST and MUST NOT denote absolute requirements. SHOULD denotes a recommendation with legitimate exceptions. MAY denotes an optional feature.

2Record identity

Every Property Record MUST carry:

FieldTypeNotes
record_idstringStable within the implementation. MUST NOT be reused.
schema_revisionintegerRevision of this specification the record conforms to.
record_versionintegerIncrements on any field change.
created_attimestampISO 8601, with timezone offset.
updated_attimestampISO 8601, with timezone offset.

A property MUST resolve to exactly one Property Record. Where a single transaction covers multiple parcels or multiple properties, each property carries its own record and records are joined by an explicit portfolio reference. Collapsing a portfolio into one record destroys per-asset comparability.

2.1Property identity

FieldTypeNotes
parcel_idsarray of stringAssessor parcel numbers. Array, because properties commonly span parcels.
jurisdictionobjectState, county, and municipality where applicable.
addressobjectStructured, not a single string.
coordinatesobjectLatitude and longitude, with the geocoding source named.
unit_countintegerSee §2.2.
year_builtintegerWhere a property has phases, the earliest, with phases enumerated separately.
asset_classenumerationOperator-defined vocabulary, declared in configuration.

2.2Unit count

unit_count MUST carry provenance. Assessor unit counts, listing unit counts, and agency-reported unit counts disagree routinely, and unit count is the denominator of nearly every derived metric in the record. A price-per-unit figure computed against an unattributed unit count is not a comparable number.

Where sources disagree, the record MUST retain each reported value with its source and MUST NOT silently select one.

3Ownership

FieldTypeNotes
owner_of_recordobjectEntity or individual as recorded, verbatim.
entity_registry_matchobjectState corporate registry record where the owner is an entity.
beneficial_ownerobjectWhere determinable. Nullable.
acquisition_datedateMost recent recorded transfer.
acquisition_pricemoneyWhere recorded. Nullable.
hold_durationderivedComputed from acquisition_date and record date.
ownership_historyarrayPrior transfers, each with recording reference.

owner_of_record MUST be stored as recorded. Normalization is a derived field, never a replacement. Registry names carry punctuation and suffix variations that are the only reliable join key back to the source document.

4Debt position

The most consequential section, and the one most often modeled wrongly.

FieldTypeNotes
recorded_liensarrayFrom recorder of deeds. Each with instrument number and recording date.
original_principalmoneyPer lien, where recorded.
origination_datedatePer lien.
stated_raterateWhere recorded. Frequently absent. Nullable.
stated_term_monthsintegerWhere recorded. Nullable.
amortization_monthsintegerWhere recorded. Nullable.
maturity_datedateRecorded, or derived with derivation flagged.
estimated_balancemoneyDerived. Derivation method MUST be named.
agency_statusenumerationSee §4.1.

4.1Agency identification

Permitted values: confirmed_agency, probable_agency, non_agency, undetermined.

confirmed_agency requires a match in a public agency disclosure. Agency multifamily data is available through the FHFA Public Use Database, which is annual and lagged, and through securitization-level disclosure such as Freddie Mac's investor access tooling, which covers the securitized subset only. Neither is a real-time property lookup, and the consumer-facing Enterprise loan lookup tools are single-property borrower verification forms requiring borrower identifying information.

An implementation MUST NOT represent agency status as directly queryable per property. Where identification is inferential, the value is probable_agency and the inference basis MUST be recorded.

4.2Assumption

Assumption is a gated process, not a rate.

An implementation MUST NOT model an assumed loan by substituting a lower rate into an otherwise unchanged scenario. Agency and portfolio loan assumptions require servicer and holder consent, new-borrower underwriting, and a transfer fee, and they may be conditioned or refused.

FieldTypeNotes
assumption_permittedenumerationdocumented, probable, prohibited, undetermined.
assumption_basisstringWhat establishes the value above.
transfer_fee_basisrateFee as a share of assumed balance. Configuration.
assumption_probabilityrateOperator-set. Configuration.
equity_gapderivedPurchase price less assumed balance less other financing.

assumption_probability MUST be carried through to any derived return figure, and any scenario relying on assumption MUST be labeled as conditional in output. A conditional outcome presented beside an unconditional one, without that label, misstates the comparison.

5Income and expense

All values in this section are configuration. The format specifies fields, units, and required provenance.

5.1Income

FieldUnitNotes
gross_potential_rentmoney/yearReported or estimated. Basis required.
vacancy_raterateSee §5.3.
other_incomemoney/unit/month
loss_to_leaserate of GPR
bad_debtrate of GPR
effective_gross_incomederived

5.2Expense

FieldUnitNotes
real_estate_taxesmoney/yearMUST be actual, from the assessor. See below.
insurancemoney/unit/yearRegional variation is material. See §5.3.
payroll_and_managementrate of EGI
repairs_and_maintenancemoney/unit/year
utilities_owner_paidmoney/unit/year
administrative_and_marketingmoney/unit/year
contract_servicesmoney/unit/year
replacement_reservesmoney/unit/year
net_operating_incomederived

real_estate_taxes MUST NOT be estimated where an assessor figure is obtainable, and where a jurisdiction reassesses on transfer, the record MUST carry both the current assessed figure and the post-transfer estimate, separately labeled.

5.3Market defaults and the as-of requirement

Vacancy rates, insurance costs, and rent comparables are time-series values. Implementations commonly store them as constants.

Every market-derived default MUST carry:

FieldType
valuenumber
sourcestring
as_ofdate
geographystring
basisstring

A default without as_of MUST be treated as absent, not as current. This is the single most consequential requirement in this specification. A stale vacancy assumption does not produce an error. It produces a plausible number that quietly reorders the pipeline, and it degrades continuously from the day it is entered.

Implementations SHOULD source all market defaults for a given metric from one provider on one basis. Mixed-basis defaults across markets produce spreads between geographies that are artifacts of measurement rather than of the markets.

Implementations SHOULD define a maximum age per metric and SHOULD surface any record relying on a default older than that maximum.

6Financing scenarios

The format specifies a scenario framework. Structures and parameters are configuration.

An implementation MUST evaluate every property under every configured scenario and MUST present the results together. Different capital structures produce materially different outcomes on identical assets, and evaluating one structure per property makes the pipeline a function of the structure rather than of the assets.

Each scenario carries:

FieldType
scenario_idstring
structure_typeenumeration
parametersobject
parameter_sourcereference
conditionalboolean
conditionsarray
outputsobject

conditional is true wherever the scenario depends on third-party consent, including assumption. See §4.2.

Reference structures, all parameters configurable: new senior debt; senior debt with subordinate seller financing; assumption of existing debt with equity gap funded. Implementations MAY define others. Implementations MUST NOT hard-code parameters.

7Threshold evaluation

Thresholds are configuration. This section specifies how they are declared, applied, and checked.

Each threshold carries an identifier, the field it applies to, a comparator, a value, and a disposition of pass, warn, or fail. Thresholds MUST be declared as data. A threshold expressed in code is not configuration regardless of what it is called.

Threshold evaluation MUST be recorded per scenario, not per property. A property that fails under one structure and passes under another has produced two results, and collapsing them to one loses the finding.

7.1Filter set consistency

Acquisition filters commonly constrain the same asset along several axes at once: a size range, a total price range, and a normalized price band such as price per unit.

A conforming implementation MUST verify, at configuration time, that the declared filter set describes a non-empty region, and MUST report the effective bounds it computes.

The failure this prevents is not exotic. Where a size ceiling, a price ceiling, and a price-per-unit ceiling are declared independently, the binding constraint is frequently not the one the operator believes is binding. The stated size ceiling is inert and the real ceiling is the quotient of the price ceiling and the price-per-unit ceiling. The pipeline then behaves correctly and unexpectedly, and the discrepancy is invisible in output because nothing has failed.

Implementations MUST surface the computed effective bounds alongside the declared ones whenever they differ.

7.2Normalized indicators

Any indicator compared across properties of differing size MUST be expressed per unit, per square foot, or as a proportion of an in-place figure.

An absolute-dollar indicator applied across a wide size range is not comparable between records. The same absolute value describes a transformative outcome at the small end of the range and an unremarkable one at the large end, while presenting as a single metric.

Where an absolute figure is required for reporting, it MUST be stored alongside its normalized form, and ranking MUST use the normalized form.

8Provenance

Every field carrying a value not derived within the record MUST carry a provenance block.

FieldTypeNotes
sourcestringNamed source. Not a category.
source_classenumerationpublic_record, agency_disclosure, licensed_data, listing, direct_report, estimate.
retrieved_attimestampWhen the implementation obtained it.
as_ofdateWhat date the value describes. Distinct from retrieved_at.
license_statusenumerationSee §8.1.
confidenceenumerationreported, derived, estimated.

Derived fields MUST name their inputs and their derivation method.

8.1License status

Permitted values: public_domain, licensed_current, licensed_restricted, unlicensed, undetermined.

licensed_restricted denotes data obtained under terms restricting redistribution, retention, or derived use. Records containing restricted fields MUST carry that status through to any export.

Implementations MUST be able to produce, for any record, the set of fields carrying each license status. An operator cannot answer questions about redistribution, resale, or investor disclosure without that view, and those questions arrive after the data has already been accumulated.

Field-level license status is not a compliance ornament. It is what determines whether a record can be shown to a lender, attached to an offering, or sold with a portfolio.

8.2Terms of use

Implementations MUST record, per source, whether automated retrieval is permitted under that source's terms.

Sources are not interchangeable on this point. Public records maintained by county and state authorities are generally retrievable without restriction. Commercial listing and information platforms generally restrict automated access under terms of use, and those terms have been enforced against parties who obtained access without reading them.

A conforming implementation MUST NOT treat a source as automatable by default. automated_retrieval_permitted defaults to false and is set explicitly per source, with the basis recorded.

9Versioning

Records are versioned, not overwritten. record_version increments on any field change. Implementations SHOULD retain the prior value, its provenance block, and the change timestamp.

The reason is evaluative rather than archival. Acquisition decisions are made against a record state, and reconstructing the state at decision time is the only way to distinguish a bad decision from a decision made correctly against data that has since changed.

Schema revisions are integers. A revision that adds optional fields is backward compatible. A revision that adds a required field, removes a field, or changes a field's meaning is not, and implementations MUST NOT silently upgrade records across a non-compatible revision.

10Conformance

A conforming implementation:

  1. Produces records carrying every field in §2 marked MUST.
  2. Carries a provenance block on every non-derived value, per §8.
  3. Distinguishes retrieved_at from as_of and treats a market default lacking as_of as absent.
  4. Records field-level license status and carries it through export.
  5. Defaults automated_retrieval_permitted to false per source.
  6. Represents assumption as a gated, conditional process rather than a rate substitution.
  7. Evaluates all configured scenarios on every property and presents them together.
  8. Declares thresholds as data and records evaluation per scenario.
  9. Verifies filter set consistency at configuration time and reports computed effective bounds.
  10. Normalizes any indicator compared across properties of differing size.
  11. Versions records rather than overwriting them.

An implementation meeting items 1 through 5 and 11 conforms partially and SHOULD declare which items it does not meet.

Revision history

Revision 1, 2026-07-29. Initial publication.

Published by the Bureau of Applied Science as Standard 1, under CC BY-SA 4.0. Marks, wordmark, and palette reserved.

Comments and implementation reports to standards@bureauofapplied.science.