<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Valuation Engineer Research Labs</title>
<link>https://research.valuation-engineer.com/</link>
<atom:link href="https://research.valuation-engineer.com/index.xml" rel="self" type="application/rss+xml"/>
<description>Short research papers and working notes between issues of the Valuation Engineer Journal.</description>
<image>
<url>https://research.valuation-engineer.com/images/social-default.png</url>
<title>Valuation Engineer Research Labs</title>
<link>https://research.valuation-engineer.com/</link>
<height>75</height>
<width>144</width>
</image>
<generator>quarto-1.9.37</generator>
<lastBuildDate>Mon, 05 Oct 2026 07:00:00 GMT</lastBuildDate>
<item>
  <title>The Foundations Department as a Dependency Map</title>
  <dc:creator>William Bert Craytor</dc:creator>
  <link>https://research.valuation-engineer.com/foundations/foundations-dependency-map/</link>
  <description><![CDATA[ 





<div class="paper-status">
<p>Working paper · not peer reviewed</p>
</div>
<p>The Foundations department of the <em>Valuation Engineer Journal</em> now holds seventeen entries across two issues, and they are not independent: an entry on endogeneity assumes the reader has the conditional expectation function; the basis of value assumes the purposes of valuation; terminological divergence assumes both the scheme and the basis of value. The department’s knowledge base records these dependencies as facts — <code>depends_on/2</code> and <code>related/2</code> — and each entry’s cross-references repeat them in prose. This page draws the facts.</p>
<p>The drawing is generated, not hand-made: a script reads every entry’s number, title, version and DOI from its source, reads the dependency facts from the knowledge base, and lays the result out as an engineering sheet. When Issue 3’s entries are added, the sheet is redrawn by running the script again. A dependency that names a concept with no entry of its own is reported in the audit box at the foot of the sheet rather than drawn; at the time of writing there are none.</p>
<section id="how-to-read-the-sheet" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="how-to-read-the-sheet">How to read the sheet</h2>
<ul>
<li><strong>Blocks</strong> are entries, in three columns: Issue 1’s hedonic vocabulary; Issue 2’s statistical ladder, with the MARS supplement beside it; and Issue 2’s four legal-conceptual entries. Each block shows the entry’s number and version; its DOI appears on hover.</li>
<li><strong>Solid arrows</strong> mean <em>depends on</em>: the entry at the tail uses vocabulary the entry at the head establishes, so read the head first.</li>
<li><strong>Dashed arrows</strong> mean <em>related</em>: a concept the entry discusses without depending on it. Related concepts that have no entry of their own (multicollinearity, instrumental variable, mass appraisal, …) are listed in small type under the block that refers to them.</li>
<li><strong>Click a block</strong> to light its wiring and list, beneath the drawing, what it depends on, what depends on it, and its related concepts. Press Esc to clear.</li>
<li><strong>The parts list</strong> below the drawing is the concept ontology: the structures the entries define — the classification of practice, the price decomposition, condition and the remodel, confounder and mediator, the residual and the Journal’s method, the scheme and the value effect — each with the entry that owns the definition and the entries that use it.</li>
</ul>
<div class="column-screen-inset">
<style>
/* Layout: an engineering sheet — title block, the wiring diagram, then the parts list (ontology) and an audit box. */
.sheet{--bg:#ECEFF4;--surface:#E5E9F0;--line:#4C566A;--text:#2E3440;--muted:#4C566A;--frost:#5E81AC;--frost2:#88C0D0;--green:#A3BE8C;--purple:#B48EAD;--hl:#D08770;
--body:"IBM Plex Sans",system-ui,sans-serif;--display:"Source Serif 4",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,monospace}
@media (prefers-color-scheme:dark){body:not(.quarto-light) .sheet{--bg:#2E3440;--surface:#3B4252;--line:#D8DEE9;--text:#ECEFF4;--muted:#9BA6B8;--frost:#81A1C1;--frost2:#88C0D0;--green:#A3BE8C;--purple:#B48EAD;--hl:#D08770;color-scheme:dark}}
body.quarto-dark .sheet{--bg:#2E3440;--surface:#3B4252;--line:#D8DEE9;--text:#ECEFF4;--muted:#9BA6B8;--frost:#81A1C1;--frost2:#88C0D0;--green:#A3BE8C;--purple:#B48EAD;--hl:#D08770;color-scheme:dark}
.sheet{background:var(--bg);color:var(--text);font-family:var(--body)}
.sheet{max-width:1240px;margin:0 auto;border:1.5px solid var(--line);padding:0}
.tb{display:grid;grid-template-columns:1fr auto;gap:12px;border-bottom:1.5px solid var(--line);padding:14px 18px;align-items:end}
.tb h1{font-family:var(--display);font-weight:600;font-size:1.5rem;margin:0;text-wrap:balance}
.tb .meta{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-align:right;line-height:1.5}
.legend{display:flex;flex-wrap:wrap;gap:18px;padding:10px 18px;border-bottom:1px solid var(--line);font-size:.82rem;color:var(--muted)}
.legend span::before{content:"";display:inline-block;width:28px;height:0;border-top:2px solid var(--line);margin-right:8px;vertical-align:middle}
.legend .d::before{border-top-style:dashed}
.legend .h::before{border-top:3px solid var(--hl)}
.wrap{overflow-x:auto;padding:12px 8px}
.wrap svg{min-width:760px;display:block}
.node{cursor:pointer} .node:hover rect:first-child,.node:focus rect:first-child,.node.on rect:first-child{stroke:var(--hl);stroke-width:2.2} .node:focus{outline:none}
path.dep.on{stroke:var(--hl);stroke-width:2.6} path.rel.on{stroke:var(--hl)}
path.dim{opacity:.18} .node.dim{opacity:.35}
.panel{border-top:1.5px solid var(--line);padding:14px 18px;min-height:64px;font-size:.9rem}
.panel b{font-family:var(--display);font-size:1.05rem}
.panel .doi{font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.panel ul{margin:.4rem 0 0;padding-left:1.1rem}
.parts{border-top:1.5px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:0}
.ont{padding:14px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.ont h3{font-family:var(--display);font-weight:600;font-size:1rem;margin:0 0 .5rem}
.ont ol{margin:0;padding-left:1.2rem;font-size:.86rem;line-height:1.45}
.ont .who{font-size:.78rem;color:var(--muted);margin:.5rem 0 0}
.ont.on{background:var(--surface)}
.audit{padding:12px 18px;font-family:var(--mono);font-size:.78rem;color:var(--muted);border-top:1.5px solid var(--line)}
.audit ul{margin:.3rem 0 0;padding-left:1.1rem}
@media (prefers-reduced-motion:no-preference){path,.node rect{transition:opacity .15s,stroke .15s}}
</style>
<div class="sheet">
 <div class="tb"><h1>Foundations — dependency map and concept ontology</h1>
  <div class="meta">The Valuation Engineer Journal · Foundations, Vol. 1 Nos. 1–2<br>drawn from the knowledge base: 18 dependencies, 17 relations, 17 entries<br>sheet 1 of 1 · generated by scripts/foundations-graph.py</div></div>
 <div class="legend"><span>depends on (read that entry first)</span><span class="d">related concept</span><span class="h">selected entry and its wiring</span><span style="margin-left:auto">click or focus a block; Esc clears</span></div>
 <div class="wrap"><svg viewbox="0 0 1094 790" width="100%" aria-label="Foundations entries and their dependencies" font-family="var(--mono)"><defs><marker id="arr" viewbox="0 0 10 10" refx="9" refy="5" markerwidth="8" markerheight="8" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--line)"></path></marker><marker id="arrd" viewbox="0 0 10 10" refx="9" refy="5" markerwidth="7" markerheight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--muted)"></path></marker></defs><text x="14" y="52" fill="var(--muted)" font-size="13" letter-spacing="1.5" style="text-transform:uppercase">Issue 1 — the hedonic vocabulary</text><line x1="14" y1="62" x2="304" y2="62" stroke="var(--line)" stroke-width="1"></line><text x="364" y="52" fill="var(--muted)" font-size="13" letter-spacing="1.5" style="text-transform:uppercase">Issue 2 — the statistical ladder</text><line x1="364" y1="62" x2="654" y2="62" stroke="var(--line)" stroke-width="1"></line><text x="714" y="52" fill="var(--muted)" font-size="13" letter-spacing="1.5" style="text-transform:uppercase">Issue 2 — the legal-conceptual four</text><line x1="714" y1="62" x2="1004" y2="62" stroke="var(--line)" stroke-width="1"></line><path class="dep" data-a="basis_of_value" data-b="scheme" d="M1004,392.0 C1064,392.0 1064,122.0 1004,122.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>The Basis of Value and the Approach depends on The Scheme, and Effects on Value</title></path><path class="dep" data-a="basis_of_value" data-b="valuation_purpose" d="M1004,392.0 C1064,392.0 1064,212.0 1004,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>The Basis of Value and the Approach depends on The Purposes of Valuation</title></path><path class="dep" data-a="characteristics_space" data-b="heterogeneous_good" d="M304,212.0 C364,212.0 364,122.0 304,122.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Characteristics Space depends on Heterogeneous Good</title></path><path class="dep" data-a="conditional_expectation" data-b="hedonic_regression" d="M364,212.0 C314,212.0 354,482.0 304,482.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Conditional Expectation depends on Hedonic Regression</title></path><path class="dep" data-a="endogeneity" data-b="conditional_expectation" d="M654,392.0 C714,392.0 714,212.0 654,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Endogeneity depends on Conditional Expectation</title></path><path class="dep" data-a="endogeneity" data-b="omitted_variable_bias" d="M654,392.0 C714,392.0 714,302.0 654,302.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Endogeneity depends on Omitted Variable Bias</title></path><path class="dep" data-a="hedonic_price_function" data-b="characteristics_space" d="M304,302.0 C364,302.0 364,212.0 304,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Hedonic Price Function depends on Characteristics Space</title></path><path class="dep" data-a="hedonic_price_function" data-b="heterogeneous_good" d="M304,302.0 C364,302.0 364,122.0 304,122.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Hedonic Price Function depends on Heterogeneous Good</title></path><path class="dep" data-a="hedonic_regression" data-b="hedonic_price_function" d="M304,482.0 C364,482.0 364,302.0 304,302.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Hedonic Regression depends on Hedonic Price Function</title></path><path class="dep" data-a="hedonic_regression" data-b="implicit_price" d="M304,482.0 C364,482.0 364,392.0 304,392.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Hedonic Regression depends on Implicit Price</title></path><path class="dep" data-a="identification" data-b="conditional_expectation" d="M654,482.0 C714,482.0 714,212.0 654,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Parameter Identification depends on Conditional Expectation</title></path><path class="dep" data-a="identification" data-b="endogeneity" d="M654,482.0 C714,482.0 714,392.0 654,392.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Parameter Identification depends on Endogeneity</title></path><path class="dep" data-a="implicit_price" data-b="hedonic_price_function" d="M304,392.0 C364,392.0 364,302.0 304,302.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Implicit Price depends on Hedonic Price Function</title></path><path class="dep" data-a="latent_variable" data-b="characteristics_space" d="M304,572.0 C364,572.0 364,212.0 304,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Latent Variable depends on Characteristics Space</title></path><path class="dep" data-a="omitted_variable_bias" data-b="conditional_expectation" d="M654,302.0 C714,302.0 714,212.0 654,212.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Omitted Variable Bias depends on Conditional Expectation</title></path><path class="dep" data-a="omitted_variable_bias" data-b="hedonic_regression" d="M364,302.0 C314,302.0 354,482.0 304,482.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Omitted Variable Bias depends on Hedonic Regression</title></path><path class="dep" data-a="omitted_variable_bias" data-b="implicit_price" d="M364,302.0 C314,302.0 354,392.0 304,392.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Omitted Variable Bias depends on Implicit Price</title></path><path class="dep" data-a="terminology_divergence" data-b="basis_of_value" d="M1004,302.0 C1064,302.0 1064,392.0 1004,392.0" fill="none" stroke="var(--line)" stroke-width="1.6" marker-end="url(#arr)"><title>Terminological Divergence depends on The Basis of Value and the Approach</title></path><g class="node" data-id="heterogeneous_good" tabindex="0" aria-label="Heterogeneous Good"><rect x="14" y="90" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="90" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="112" font-size="12" fill="var(--muted)">001 · v1.0.0</text><text x="30" y="133" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Heterogeneous Good</text><title>Heterogeneous Good — Vol. 1 No. 1, DOI 10.67330/s1scsv65</title></g><g class="node" data-id="characteristics_space" tabindex="0" aria-label="Characteristics Space"><rect x="14" y="180" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="180" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="202" font-size="12" fill="var(--muted)">002 · v1.0.0</text><text x="30" y="223" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Characteristics Space</text><title>Characteristics Space — Vol. 1 No. 1, DOI 10.67330/3yymh010</title></g><g class="node" data-id="hedonic_price_function" tabindex="0" aria-label="Hedonic Price Function"><rect x="14" y="270" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="270" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="292" font-size="12" fill="var(--muted)">003 · v1.0.0</text><text x="30" y="313" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Hedonic Price Function</text><title>Hedonic Price Function — Vol. 1 No. 1, DOI 10.67330/9x1a0489</title></g><g class="node" data-id="implicit_price" tabindex="0" aria-label="Implicit Price"><rect x="14" y="360" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="360" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="382" font-size="12" fill="var(--muted)">004 · v1.0.0</text><text x="30" y="403" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Implicit Price</text><title>Implicit Price — Vol. 1 No. 1, DOI 10.67330/md6wke17</title></g><text x="30" y="438" font-size="10.5" fill="var(--muted)">related: marginal value, sales comparison adjustment</text><g class="node" data-id="hedonic_regression" tabindex="0" aria-label="Hedonic Regression"><rect x="14" y="450" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="450" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="472" font-size="12" fill="var(--muted)">005 · v1.0.0</text><text x="30" y="493" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Hedonic Regression</text><title>Hedonic Regression — Vol. 1 No. 1, DOI 10.67330/ams1t139</title></g><text x="30" y="528" font-size="10.5" fill="var(--muted)">related: automated valuation model, mass appraisal</text><g class="node" data-id="latent_variable" tabindex="0" aria-label="Latent Variable"><rect x="14" y="540" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="14" y="540" width="6" height="64" fill="var(--frost2)"></rect><text x="30" y="562" font-size="12" fill="var(--muted)">006 · v1.0.0</text><text x="30" y="583" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Latent Variable</text><title>Latent Variable — Vol. 1 No. 1, DOI 10.67330/11n3g168</title></g><text x="30" y="618" font-size="10.5" fill="var(--muted)">related: proxy variable, residual signal, unobserved heterogeneity</text><g class="node" data-id="mars_rates" tabindex="0" aria-label="The Barrier to Human Understanding of MARS"><rect x="364" y="90" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="364" y="90" width="6" height="64" fill="var(--green)"></rect><text x="380" y="112" font-size="12" fill="var(--muted)">001 · v1.1.0</text><text x="380" y="133" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">The Barrier to Human Understanding of MA</text><title>The Barrier to Human Understanding of MARS — Vol. 1 No. 2, DOI 10.67330/qmnctv78</title></g><g class="node" data-id="conditional_expectation" tabindex="0" aria-label="Conditional Expectation"><rect x="364" y="180" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="364" y="180" width="6" height="64" fill="var(--frost)"></rect><text x="380" y="202" font-size="12" fill="var(--muted)">007 · v1.1.0</text><text x="380" y="223" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Conditional Expectation</text><title>Conditional Expectation — Vol. 1 No. 2, DOI 10.67330/99hhbc69</title></g><text x="380" y="258" font-size="10.5" fill="var(--muted)">related: ordinary least squares, residual</text><g class="node" data-id="omitted_variable_bias" tabindex="0" aria-label="Omitted Variable Bias"><rect x="364" y="270" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="364" y="270" width="6" height="64" fill="var(--frost)"></rect><text x="380" y="292" font-size="12" fill="var(--muted)">008 · v1.1.0</text><text x="380" y="313" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Omitted Variable Bias</text><title>Omitted Variable Bias — Vol. 1 No. 2, DOI 10.67330/460smg10</title></g><text x="380" y="348" font-size="10.5" fill="var(--muted)">related: adjustment, comp selection, multicollinearity</text><g class="node" data-id="endogeneity" tabindex="0" aria-label="Endogeneity"><rect x="364" y="360" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="364" y="360" width="6" height="64" fill="var(--frost)"></rect><text x="380" y="382" font-size="12" fill="var(--muted)">009 · v1.1.0</text><text x="380" y="403" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Endogeneity</text><title>Endogeneity — Vol. 1 No. 2, DOI 10.67330/z9feps66</title></g><text x="380" y="438" font-size="10.5" fill="var(--muted)">related: instrumental variable, selection bias, simultaneity</text><g class="node" data-id="identification" tabindex="0" aria-label="Parameter Identification"><rect x="364" y="450" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="364" y="450" width="6" height="64" fill="var(--frost)"></rect><text x="380" y="472" font-size="12" fill="var(--muted)">010 · v1.1.0</text><text x="380" y="493" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Parameter Identification</text><title>Parameter Identification — Vol. 1 No. 2, DOI 10.67330/xjszh949</title></g><text x="380" y="528" font-size="10.5" fill="var(--muted)">related: falsifiability, robustness</text><g class="node" data-id="scheme" tabindex="0" aria-label="The Scheme, and Effects on Value"><rect x="714" y="90" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="714" y="90" width="6" height="64" fill="var(--purple)"></rect><text x="730" y="112" font-size="12" fill="var(--muted)">011 · v1.0.0</text><text x="730" y="133" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">The Scheme, and Effects on Value</text><title>The Scheme, and Effects on Value — Vol. 1 No. 2, DOI 10.67330/30ncvp43</title></g><g class="node" data-id="valuation_purpose" tabindex="0" aria-label="The Purposes of Valuation"><rect x="714" y="180" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="714" y="180" width="6" height="64" fill="var(--purple)"></rect><text x="730" y="202" font-size="12" fill="var(--muted)">012 · v1.1.0</text><text x="730" y="223" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">The Purposes of Valuation</text><title>The Purposes of Valuation — Vol. 1 No. 2, DOI 10.67330/g9knsr34</title></g><g class="node" data-id="terminology_divergence" tabindex="0" aria-label="Terminological Divergence"><rect x="714" y="270" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="714" y="270" width="6" height="64" fill="var(--purple)"></rect><text x="730" y="292" font-size="12" fill="var(--muted)">013 · v1.1.0</text><text x="730" y="313" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">Terminological Divergence</text><title>Terminological Divergence — Vol. 1 No. 2, DOI 10.67330/symwrt78</title></g><g class="node" data-id="basis_of_value" tabindex="0" aria-label="The Basis of Value and the Approach"><rect x="714" y="360" width="290" height="64" rx="3" fill="var(--surface)" stroke="var(--line)" stroke-width="1.2"></rect><rect x="714" y="360" width="6" height="64" fill="var(--purple)"></rect><text x="730" y="382" font-size="12" fill="var(--muted)">014 · v1.1.0</text><text x="730" y="403" font-size="14" font-weight="600" fill="var(--text)" font-family="var(--body)">The Basis of Value and the Approach</text><title>The Basis of Value and the Approach — Vol. 1 No. 2, DOI 10.67330/jp7pr043</title></g></svg></div>
 <div class="panel" id="panel">Select an entry to see what it depends on, what depends on it, and the structures it defines.</div>
 <div class="parts"><section class="ont" data-owner="valuation_purpose"><h3 class="anchored">Classification of practice (012)</h3><ol><li>Purpose — why the valuation is needed (eight purposes)</li><li>settled together, in no fixed order: property interest · governing law · basis of value</li><li>Methodology — how the figure is reached</li></ol><p class="who">defined in <b>012 The Purposes of Valuation</b>; used by 014 The Basis of Value and the Approach, 011 The Scheme, and Effects on Value, 013 Terminological Divergence</p></section><section class="ont" data-owner="conditional_expectation"><h3 class="anchored">What a regression estimates (007)</h3><ol><li>P = E[P | Z] + ε,  E[ε | Z] = 0 always (the CEF and its deviation)</li><li>u = P − fitted equation: the structural error, which may move with the regressors</li><li>rate = slope of the CEF in one feature; adjustment = contribution difference</li></ol><p class="who">defined in <b>007 Conditional Expectation</b>; used by 008 Omitted Variable Bias, 009 Endogeneity, 010 Parameter Identification, 001 The Barrier to Human Understanding of MARS</p></section><section class="ont" data-owner="omitted_variable_bias"><h3 class="anchored">Condition, score and remodel (008)</h3><ol><li>Condition — a state of the house (latent)</li><li>Condition score — its estimate, 0.00–10.00: share of the market area in worse condition</li><li>Remodel — an event; its value is the condition and quality it produced</li></ol><p class="who">defined in <b>008 Omitted Variable Bias</b>; used by 009 Endogeneity, 010 Parameter Identification, 006 Latent Variable</p></section><section class="ont" data-owner="endogeneity"><h3 class="anchored">Which variables to hold fixed (009)</h3><ol><li>Confounder — causes both regressor and price → hold fixed</li><li>Mediator — the channel from regressor to price → do not hold fixed for the total effect</li><li>Treatment — any intervention asked about; a remodel is one, not randomly assigned</li></ol><p class="who">defined in <b>009 Endogeneity</b>; used by 010 Parameter Identification</p></section><section class="ont" data-owner="latent_variable"><h3 class="anchored">Residual and the Journal's method (006, RCA)</h3><ol><li>Regression on measured features only; residual ≈ 20 % in a California market</li><li>Latent contributions (condition, quality, …) assigned by the appraiser, summing to the residual</li><li>Proof II: how the residual is divided does not change the value conclusion</li></ol><p class="who">defined in <b>006 Latent Variable</b>; used by 007 Conditional Expectation, 008 Omitted Variable Bias</p></section><section class="ont" data-owner="scheme"><h3 class="anchored">The scheme and its effect on value (011 → 013)</h3><ol><li>Scheme / project — the undertaking whose effect on value is disregarded</li><li>Value effect — a counterfactual quantity; law fixes the form, a tribunal its extent</li><li>Directional pair — increase / decrease named separately; verb in Russian; none in China (surveyed)</li></ol><p class="who">defined in <b>011 The Scheme, and Effects on Value</b>; used by 013 Terminological Divergence, 012 The Purposes of Valuation, 014 The Basis of Value and the Approach</p></section></div>
 <div class="audit">Audit — dependencies naming a concept without an entry (drawn nowhere):<ul><li>none — every dependency names an entry</li></ul></div>
</div>
<script>
const N={"foundations_overview": {"num": "000", "title": "Overview", "version": "1.2.0", "doi": "10.67330/h5s4c242", "vol": "Vol. 1 No. 2", "deps": [], "dependants": [], "related": []}, "heterogeneous_good": {"num": "001", "title": "Heterogeneous Good", "version": "1.0.0", "doi": "10.67330/s1scsv65", "vol": "Vol. 1 No. 1", "deps": [], "dependants": ["characteristics_space", "hedonic_price_function"], "related": []}, "characteristics_space": {"num": "002", "title": "Characteristics Space", "version": "1.0.0", "doi": "10.67330/3yymh010", "vol": "Vol. 1 No. 1", "deps": ["heterogeneous_good"], "dependants": ["hedonic_price_function", "latent_variable"], "related": []}, "hedonic_price_function": {"num": "003", "title": "Hedonic Price Function", "version": "1.0.0", "doi": "10.67330/9x1a0489", "vol": "Vol. 1 No. 1", "deps": ["characteristics_space", "heterogeneous_good"], "dependants": ["hedonic_regression", "implicit_price"], "related": []}, "implicit_price": {"num": "004", "title": "Implicit Price", "version": "1.0.0", "doi": "10.67330/md6wke17", "vol": "Vol. 1 No. 1", "deps": ["hedonic_price_function"], "dependants": ["hedonic_regression", "omitted_variable_bias"], "related": ["marginal_value", "sales_comparison_adjustment"]}, "hedonic_regression": {"num": "005", "title": "Hedonic Regression", "version": "1.0.0", "doi": "10.67330/ams1t139", "vol": "Vol. 1 No. 1", "deps": ["hedonic_price_function", "implicit_price"], "dependants": ["conditional_expectation", "omitted_variable_bias"], "related": ["automated_valuation_model", "mass_appraisal"]}, "latent_variable": {"num": "006", "title": "Latent Variable", "version": "1.0.0", "doi": "10.67330/11n3g168", "vol": "Vol. 1 No. 1", "deps": ["characteristics_space"], "dependants": [], "related": ["proxy_variable", "residual_signal", "unobserved_heterogeneity"]}, "mars_rates": {"num": "001", "title": "The Barrier to Human Understanding of MARS", "version": "1.1.0", "doi": "10.67330/qmnctv78", "vol": "Vol. 1 No. 2", "deps": [], "dependants": [], "related": []}, "conditional_expectation": {"num": "007", "title": "Conditional Expectation", "version": "1.1.0", "doi": "10.67330/99hhbc69", "vol": "Vol. 1 No. 2", "deps": ["hedonic_regression"], "dependants": ["endogeneity", "identification", "omitted_variable_bias"], "related": ["ordinary_least_squares", "residual"]}, "omitted_variable_bias": {"num": "008", "title": "Omitted Variable Bias", "version": "1.1.0", "doi": "10.67330/460smg10", "vol": "Vol. 1 No. 2", "deps": ["conditional_expectation", "hedonic_regression", "implicit_price"], "dependants": ["endogeneity"], "related": ["adjustment", "comp_selection", "multicollinearity"]}, "endogeneity": {"num": "009", "title": "Endogeneity", "version": "1.1.0", "doi": "10.67330/z9feps66", "vol": "Vol. 1 No. 2", "deps": ["conditional_expectation", "omitted_variable_bias"], "dependants": ["identification"], "related": ["instrumental_variable", "selection_bias", "simultaneity"]}, "identification": {"num": "010", "title": "Parameter Identification", "version": "1.1.0", "doi": "10.67330/xjszh949", "vol": "Vol. 1 No. 2", "deps": ["conditional_expectation", "endogeneity"], "dependants": [], "related": ["falsifiability", "robustness"]}, "scheme": {"num": "011", "title": "The Scheme, and Effects on Value", "version": "1.0.0", "doi": "10.67330/30ncvp43", "vol": "Vol. 1 No. 2", "deps": [], "dependants": ["basis_of_value"], "related": []}, "valuation_purpose": {"num": "012", "title": "The Purposes of Valuation", "version": "1.1.0", "doi": "10.67330/g9knsr34", "vol": "Vol. 1 No. 2", "deps": [], "dependants": ["basis_of_value"], "related": []}, "terminology_divergence": {"num": "013", "title": "Terminological Divergence", "version": "1.1.0", "doi": "10.67330/symwrt78", "vol": "Vol. 1 No. 2", "deps": ["basis_of_value"], "dependants": [], "related": []}, "basis_of_value": {"num": "014", "title": "The Basis of Value and the Approach", "version": "1.1.0", "doi": "10.67330/jp7pr043", "vol": "Vol. 1 No. 2", "deps": ["scheme", "valuation_purpose"], "dependants": ["terminology_divergence"], "related": []}};
const panel=document.getElementById('panel');
function clear(){document.querySelectorAll('.on,.dim').forEach(e=>e.classList.remove('on','dim'));panel.textContent='Select an entry to see what it depends on, what depends on it, and the structures it defines.'}
function pick(id){clear();const n=N[id];if(!n)return;
 document.querySelectorAll('.node').forEach(g=>g.classList.add('dim'));document.querySelectorAll('path').forEach(p=>p.classList.add('dim'));
 const lit=new Set([id,...n.deps,...n.dependants,...n.related]);
 document.querySelectorAll('.node').forEach(g=>{if(lit.has(g.dataset.id)){g.classList.remove('dim');}if(g.dataset.id===id)g.classList.add('on');});
 document.querySelectorAll('path').forEach(p=>{if(p.dataset.a===id||p.dataset.b===id){p.classList.remove('dim');p.classList.add('on');}});
 document.querySelectorAll('.ont').forEach(s=>{if(s.dataset.owner===id)s.classList.add('on');});
 const li=a=>a.length?a.map(x=>'<li>'+(N[x]?N[x].num+' '+N[x].title:x.replace(/_/g,' '))+'</li>').join(''):'<li>—</li>';
 panel.innerHTML='<b>'+n.num+' '+n.title+'</b> &nbsp;<span class="doi">v'+n.version+' · '+n.vol+' · DOI '+n.doi+'</span>'+
  '<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:.4rem">'+
  '<div>Depends on<ul>'+li(n.deps)+'</ul></div><div>Depended on by<ul>'+li(n.dependants)+'</ul></div><div>Related<ul>'+li(n.related)+'</ul></div></div>';}
document.querySelectorAll('.node').forEach(g=>{g.addEventListener('click',()=>pick(g.dataset.id));g.addEventListener('keydown',e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();pick(g.dataset.id);}});});
document.addEventListener('keydown',e=>{if(e.key==='Escape')clear();});
</script>

</div>
</section>
<section id="what-the-sheet-shows" class="level2">
<h2 class="anchored" data-anchor-id="what-the-sheet-shows">What the sheet shows</h2>
<p>Three things are easier to see drawn than read.</p>
<p>First, the department has a spine. Everything in Issue 2’s statistical ladder descends from <em>Conditional Expectation</em> (007), and everything in Issue 1 descends from <em>Heterogeneous Good</em> (001) through <em>Characteristics Space</em> (002); the two spines meet at <em>Hedonic Regression</em> (005), on which both <em>Conditional Expectation</em> and <em>Omitted Variable Bias</em> depend. A reader new to the department can follow the solid arrows backwards from any entry to the two or three it rests on.</p>
<p>Second, the legal-conceptual four are wired differently from the statistical four. The ladder is a chain, each entry depending on the one before; the four of the second movement form a small web around <em>The Basis of Value and the Approach</em> (014), which depends on both <em>The Scheme</em> (011) and <em>The Purposes of Valuation</em> (012), and on which <em>Terminological Divergence</em> (013) depends in turn. That is why a change to 012’s classification, as in its version 1.1.0, had to be carried into 014 and the Overview.</p>
<p>Third, the parts list shows where a term is owned. <em>Condition</em> is defined in <em>Omitted Variable Bias</em> (008) and used by <em>Endogeneity</em> and <em>Identification</em>; <em>confounder</em> and <em>mediator</em> are defined in <em>Endogeneity</em> (009) and used by <em>Identification</em>; the residual and the rule that its division does not change the value conclusion belong to <em>Latent Variable</em> (006) and the RCA paper, and are used by 007 and 008. An entry that uses a term it does not own should cite the owner, and the sheet makes the omissions visible.</p>
</section>
<section id="source" class="level2">
<h2 class="anchored" data-anchor-id="source">Source</h2>
<p>The generator is <code>scripts/foundations-graph.py</code> in the Journal’s publishing repository; it writes this page’s drawing (<code>graph.html</code>) and a standalone sheet. The facts it draws are the ones the entries’ Prolog companions are tested against, so the drawing and the department’s machine-checkable claims cannot drift apart.</p>


<!-- -->

</section>

 ]]></description>
  <category>Foundations</category>
  <category>ontology</category>
  <category>knowledge base</category>
  <guid>https://research.valuation-engineer.com/foundations/foundations-dependency-map/</guid>
  <pubDate>Mon, 05 Oct 2026 07:00:00 GMT</pubDate>
  <media:content url="https://research.valuation-engineer.com/foundations/foundations-dependency-map/thumbnail.svg" medium="image" type="image/svg+xml"/>
</item>
<item>
  <title>Property Variables Most Subject to Endogeneity</title>
  <dc:creator>William Bert Craytor</dc:creator>
  <link>https://research.valuation-engineer.com/foundations/property-variables-endogeneity/</link>
  <description><![CDATA[ 





<style>
#title-block-header .quarto-title::before {
  content: "Valuation Engineer Research Labs Publication";
  display: block; margin-bottom: .6rem;
  font-variant: small-caps; letter-spacing: .06em; font-size: 1.05rem; opacity: .85;
}
</style>
<div class="paper-status">
<p>Working paper · not peer reviewed</p>
</div>
<p>This paper assumes the Residual Constraint Approach (Craytor 2026). The regression takes only measured features. Condition, quality, appeal and the other features the records do not measure are left to the residual: the appraiser ranks the comparable sales by residual, places the subject in that ranking, and other appraisers in the area can check the placement. The CQA score is never used in the primary regression, the one on measured features from which the value conclusion is reached. Where the appraiser rates condition, quality or another of these features, it is only for the purpose of explaining the differences in residuals between properties; the ratings do not enter the regression and do not change the value conclusion.</p>
<section id="the-definition" class="level2">
<h2 class="anchored" data-anchor-id="the-definition">The definition</h2>
<p>This paper uses the definition of the Journal’s entry 009 (<em>Endogeneity</em>), Vol. 1 No.&nbsp;2, version 1.1.0:</p>
<blockquote class="blockquote">
<p>Endogeneity is the condition in which a regressor — a feature the regression uses to explain price — moves with the part of price the model does not explain, so that its estimated coefficient does not recover the causal effect of interest. Its common causes are a feature left out, the price acting back on the feature, the sales being a selected set, and the feature being measured with error.</p>
</blockquote>
<p>A <strong>coefficient</strong> is the number the regression attaches to a feature: in an ordinary linear regression, the change in the estimated price for one more unit of it, the other features held fixed. In MARS the corresponding rate may vary across the feature’s range and with interactions. Two points in the definition carry the rest of this paper.</p>
<p>First, “the part of price the model does not explain” is the <strong>structural error</strong>, written <em>u</em>: the price minus what the causal relationship says the price should be. Entry 009 (<em>Endogeneity</em>) distinguishes it from the distance between a house’s price and the average price of houses with the same recorded features, which entry 007 (<em>Conditional Expectation</em>) writes ε and which averages zero for every combination of features by construction. A regressor is <strong>endogenous</strong> when it moves with <em>u</em>; it is <strong>exogenous</strong> when it does not.</p>
<p>Second, the definition is relative to <strong>the causal effect of interest</strong> — what the feature does to the price. A coefficient can be a correct description of the sales and still not be that effect. Whether the difference matters depends on the question the coefficient is used to answer.</p>
<p>Endogeneity is therefore not a fixed property of a variable. A variable is endogenous relative to a particular model and a particular causal question: living area can be exogenous for one question and endogenous for another. When this paper calls a variable “subject to endogeneity”, it means that in a residential sales model of the usual kind, read for the usual questions, the variable is often endogenous.</p>
<p>This paper asks which property and market variables are most often in that position, in which direction the resulting error tends to run, and what the appraiser does about it. The test that recurs throughout: <strong>a regressor deserves special scrutiny when someone chose its value or measured it using information that also affects price but is not available to the model. The sales as a whole deserve the same scrutiny when what put a house among them — the owner’s decision to sell, or the criteria by which the sales were chosen — is connected to its price.</strong></p>
</section>
<section id="when-it-affects-the-sale-price-and-market-value" class="level2">
<h2 class="anchored" data-anchor-id="when-it-affects-the-sale-price-and-market-value">When it affects the sale price and market value</h2>
<p>Endogeneity does not affect every use of a sales model in the same way.</p>
<p><strong>Market value of the property as it is.</strong> Market value asks what the property, with the features it actually has, would most probably sell for. For a property valued in its observed state, the principal statistical target is the expected price given the property’s observed features — the conditional expectation of entry 007 (<em>Conditional Expectation</em>). A model can estimate that conditional expectation well even when the coefficients attached to individual features cannot be read as what those features cause. The subject need not closely resemble any single comparable. MARS needs enough data to estimate the value of the subject’s features, and perhaps interactions if specified; where few sales share the subject’s combination of features, the estimate rests on extrapolation and is less reliable.</p>
<p>Endogeneity can affect the value conclusion an appraiser reaches, or the reading of a model’s results, in three situations:</p>
<ol type="1">
<li><strong>When a coefficient is read as an adjustment</strong> — as what the feature, by itself, is worth — rather than used to predict a price.</li>
<li><strong>When the value is a counterfactual value</strong> — a price for a state of the property that the market has not shown together with this property: value as if remodeled, value subject to completion of an addition, the before-and-after values of a partial taking, any value that disregards the effect of a public project. The sales cannot show these directly.</li>
<li><strong>When the subject differs from the comparables in the respect that drives the error</strong> — for example, a house that reached the top of its market area’s condition by maintenance, priced from comparables that reached it by remodeling.</li>
</ol>
</section>
<section id="the-market-used-in-this-paper" class="level2">
<h2 class="anchored" data-anchor-id="the-market-used-in-this-paper">The market used in this paper</h2>
<p>To demonstrate and quantify these errors under known assumptions, rather than discuss them only in the abstract, this paper uses a simulated market of 40,000 houses whose true price-setting is known. It is constructed, not fitted to any real market; its choices are stated in full in the downloadable program <code>endogeneity_sim.py</code>, and a reader can change any of them and rerun it. In outline:</p>
<ul>
<li><strong>Location quality</strong>, which the sales data do not record, varies from house to house.</li>
<li><strong>Remodeling</strong> — an action on the property — is more likely where location quality is better and where the house is older: owners remodel where they expect the market to pay. In this market 38% of houses were remodeled.</li>
<li><strong>Living area</strong> is somewhat larger where location quality is better, as additions would be where land value supports them.</li>
<li><strong>Condition</strong> — a state of the property — is scored on the Journal’s scale, 0.00 to 10.00, the score being ten times the share of houses in the market area in worse condition. A remodel raises a house’s condition and does nothing else. (Quality, the other state a remodel can change, is left out of this market to keep each result clear.)</li>
<li><strong>Price</strong> is set by living area ($350 a square foot), location quality, condition ($30,000 a point), age (−$800 a year) and an unexplained part.</li>
</ul>
<p>So in this market a remodel has <strong>no direct effect on price</strong>: its whole effect runs through condition. Three causal contrasts follow from it, and the paper names which one it uses each time:</p>
<ul>
<li>the <strong>effect on the remodeled houses</strong> — what the remodels did to the houses that were remodeled: <strong>$78,760</strong>;</li>
<li>the <strong>effect on the average house</strong> — what a remodel would do to a house chosen at random: $78,497;</li>
<li>the <strong>effect on the unremodeled houses</strong> — what a remodel would do to the houses that were not remodeled: $78,335.</li>
</ul>
<p>Every other number below is compared with one of them. Because the market’s price-setting is known, the figures are computed exactly for the 40,000 houses of one draw — they are not estimates from a sample of them, and need no measure of sampling uncertainty (a <strong>standard error</strong>). Small differences from the parameters that generated the market ($349.5 a square foot against $350, for instance) are chance in that one draw; across ten independent draws they move little — the remodel coefficient of the next section, for instance, ranges from $142,431 to $146,503. They show what each error does in this constructed market; they are not measurements of any real one.</p>
<p>The structure of the market, which the rest of the paper keeps returning to:</p>
<div id="4ffb6b47" class="cell" data-fig-height="2.6" data-fig-width="7" data-execution_count="2">
<div class="cell-output cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://research.valuation-engineer.com/foundations/property-variables-endogeneity/index_files/figure-html/cell-3-output-1.png" width="662" height="240" class="figure-img"></p>
<figcaption>The simulated market. A remodel (an action) reaches the price only through condition (a state); unrecorded location quality influences the decision to remodel, living area, and the price.</figcaption>
</figure>
</div>
</div>
</div>
<p>In the language of entry 009 (<em>Endogeneity</em>), the remodel is the <strong>treatment</strong>: the action whose effect is asked about. Price is the <strong>outcome</strong>. Condition and location quality have roles of their own, a mediator and a confounder, defined under Cause 1 below.</p>
</section>
<section id="two-kinds-of-variable-actions-and-states" class="level2">
<h2 class="anchored" data-anchor-id="two-kinds-of-variable-actions-and-states">Two kinds of variable: actions and states</h2>
<p>The variables of a sales model are not all of one kind, and the difference decides how endogeneity enters.</p>
<p><strong>Actions</strong> record that something was done to the property: a recent remodel, recent updates to the kitchen or baths, an addition, a new roof, an accessory dwelling unit. An action is an event — it happened, or it did not, within some period — and it is chosen by the owner.</p>
<p><strong>States</strong> describe the property as it is: condition, quality, functional utility, living area, age. A state can be changed by an action — a remodel raises condition and, through finishes and materials, quality — and the market pays for the state the property is in, not for the history of how it got there. Two houses identical in every current state that bears on value should have the same market value, however they reached those states.</p>
<p>In practice, however, those states are only partly observed, and the history of how a house reached them carries information about them. Condition and quality are only partly observed: a score captures what can be seen and judged, not new plumbing and wiring behind the walls, or the workmanship of the work. So a recent remodel or update, even when it adds nothing of its own to the price, remains <em>evidence</em> about the part of the state the scores do not capture, and a model or an appraiser that ignores it ignores real information.</p>
<p>A remodel or update usually tells a buyer something more. Work done under a building permit is inspected at stages, and passed inspections are evidence that the inspected work met the building code’s requirements when it was inspected — wiring, plumbing, structure, fire separation. That evidence is itself part of the property’s state, <em>documented safety and soundness</em>, which a condition score rarely records and a buyer cannot verify on a walk-through. It can reduce a buyer’s uncertainty about concealed components, and so can influence what buyers pay; how much it does in a given market is for the appraisal to establish.</p>
<p>This paper assumes that the local building code and other local regulations were followed, and that every inspection the regulations require was carried out and resulted in approval. Where that is not the case — work done without a required permit, or an inspection not passed — the appraiser has to determine its effect on market value, if any.</p>
<p>The two kinds fail in different ways. An action is often endogenous through the owner’s choice: the houses on which owners act are not a random set (Cause 1 below). A state is often endogenous through its measurement, as recorded living area is (Cause 2), although some states, living area among them, are partly chosen as well. And an action and the states it changes cannot both be read as separate contributions: the state is the channel through which the action reaches the price.</p>
</section>
<section id="cause-1-features-the-owner-chose" class="level2">
<h2 class="anchored" data-anchor-id="cause-1-features-the-owner-chose">Cause 1: features the owner chose</h2>
<section id="actions-remodels-updates-additions" class="level3">
<h3 class="anchored" data-anchor-id="actions-remodels-updates-additions">Actions: remodels, updates, additions</h3>
<p>The leading case. The table shows what three ways of reading the sales report for a remodel, against the truth.</p>
<div id="e9e3bcf1" class="cell" data-execution_count="3">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="3">
<table class="caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th>Reading of the sales</th>
<th style="text-align: right;">Reported</th>
<th style="text-align: right;">Truth</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Average price of remodeled houses minus average price of the rest</td>
<td style="text-align: right;">$167,199</td>
<td style="text-align: right;">—</td>
</tr>
<tr class="even">
<td>Remodel coefficient, location not recorded</td>
<td style="text-align: right;">$144,792</td>
<td style="text-align: right;">$78,760 (effect on remodeled houses, through condition)</td>
</tr>
<tr class="odd">
<td>Remodel coefficient, location recorded</td>
<td style="text-align: right;">$77,999</td>
<td style="text-align: right;">≈ $78,760 (effect on remodeled houses, through condition)</td>
</tr>
</tbody>
</table>
<p><em>Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample.</em></p>
</div>
</div>
<p>Two lessons follow, and each corresponds to a term from entry 009 (<em>Endogeneity</em>).</p>
<p><strong>The unrecorded location is a confounder.</strong> A <strong>confounder</strong> is a cause of both the feature and the price. Location quality raises the chance of a remodel and raises the price directly. When it is not recorded, the remodel coefficient carries part of its effect: the model reports $144,792 where the remodels did $78,760. Recording location brings the coefficient to $77,999. The difference, $66,793, is the <strong>confounding part</strong>: it reflects which houses the owners chose to remodel, not anything the work did. (The coefficient with location recorded still differs slightly from the effect on the remodeled houses; the section on counterfactual values returns to that gap.)</p>
<p><strong>Condition is a mediator.</strong> A <strong>mediator</strong> is the channel through which the feature acts on the price: the remodel raises condition, and condition raises the price. For the remodel’s total effect, the channel is therefore not held fixed. <strong>Including a variable is the right rule for a confounder and the wrong one for a mediator; neither choice can be made until the effect wanted has been named</strong> (entry 009, <em>Endogeneity</em>).</p>
</section>
<section id="states-the-owner-can-choose-living-area" class="level3">
<h3 class="anchored" data-anchor-id="states-the-owner-can-choose-living-area">States the owner can choose: living area</h3>
<p>Living area is a state, but partly chosen too. Here it is somewhat larger where location quality is better, so when location is not recorded the living-area rate carries part of location’s effect.</p>
<div id="d9868562" class="cell" data-execution_count="4">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="4">
<table class="caption-top table table-sm table-striped small">
<thead>
<tr class="header">
<th>Model</th>
<th style="text-align: right;">Rate per square foot</th>
<th style="text-align: right;">Truth</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Location not recorded</td>
<td style="text-align: right;">$437</td>
<td style="text-align: right;">$350</td>
</tr>
<tr class="even">
<td>Location recorded</td>
<td style="text-align: right;">$350</td>
<td style="text-align: right;">$350</td>
</tr>
</tbody>
</table>
<p><em>Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample.</em></p>
</div>
</div>
<p>The direction of this error depends on how size and location move together in the market at hand. Where larger houses sit on less desirable land, it runs the other way.</p>
</section>
<section id="age-through-what-happened-since" class="level3">
<h3 class="anchored" data-anchor-id="age-through-what-happened-since">Age, through what happened since</h3>
<p>The year a house was built is fixed, but which old houses survive, are remodeled or are torn down is not; in some neighborhoods the old houses are the remodeled ones. Age therefore acts partly as a <strong>proxy</strong> for condition — a measured feature that stands in for one that is not measured — and renovation history, and in the Residual Constraint Approach that is accepted: a later allowance for condition must represent condition not already reflected through age and the other measured features. In the simulated market, where condition falls with age, the age rate with condition left out — as the Residual Constraint Approach leaves it out — is −$2,528 a year, against a true −$800: the age rate has absorbed condition’s effect. Age is also a proxy for the selection behind which houses were remodeled or replaced, and the direction of that part varies from market to market.</p>
</section>
</section>
<section id="cause-2-features-measured-with-error" class="level2">
<h2 class="anchored" data-anchor-id="cause-2-features-measured-with-error">Cause 2: features measured with error</h2>
<p>Recorded living area differs from the actual living area. The errors in MLS and assessor figures are a mixture of overstatements and understatements, and their sign and size vary from one locality to another. The appraiser in most cases has to rely on MLS data, even though it may be somewhat inaccurate at times. Where the figures are badly wrong, he may have to be very selective in his comparables and check the figures against aerial photographs or by some other method.</p>
<p>Errors of this kind affect the living-area rate, and the rates of features that move with living area — location, lot size, bedroom and bathroom counts — in a direction the sales cannot show. Because the errors vary with the locality, they can make a rate larger or smaller, and more sales do not remove them. Bedroom and bathroom counts move with living area even when the records are exact, which makes it hard to tell how much of the price depends on the number of bathrooms and how much on living area; MARS, which selects the features and the ranges of each feature that carry the price, makes a predictive division between them in the fitted model, although that division need not identify their separate effects.</p>
</section>
<section id="cause-3-transaction-variables-and-simultaneity" class="level2">
<h2 class="anchored" data-anchor-id="cause-3-transaction-variables-and-simultaneity">Cause 3: transaction variables and simultaneity</h2>
<p><strong>Simultaneity</strong> is the case in which a feature and the price influence each other; a regression of price on such a feature cannot tell how much of their association is the feature’s effect. In sales data it arises chiefly with variables tied to the transaction itself, and these are not all tied to the price in the same way:</p>
<ul>
<li><strong>Set before the sale but endogenous: list price.</strong> It precedes the final price, but the seller and the broker set it using what they know about the house’s appeal and the market’s likely response — information that also drives the final price.</li>
<li><strong>Determined together with the price: concessions, seller credits, and some financing terms</strong> (others are set by lenders and capital markets largely outside the negotiation).</li>
<li><strong>Outcomes of the marketing process: days on market.</strong> Price and time on the market are products of the same evolving process.</li>
</ul>
<p>None of these should ordinarily be read as a cause of market value, or used to estimate an adjustment, without an argument for why its relation to price is causal. Some can still help a model predict a price, which is a different use.</p>
</section>
<section id="school-district-and-neighborhood" class="level2">
<h2 class="anchored" data-anchor-id="school-district-and-neighborhood">School district and neighborhood</h2>
<p>Where the data record both the neighborhood and the school district, a model can give the incremental price difference of each, and MARS can do so despite the correlation between them, provided the sales include enough houses in which the two differ; where they seldom differ, the division between them can be unstable. MARS keeps a district term only where the difference improves the model enough. Where a neighborhood contains more than one school district, comparisons within that neighborhood give stronger evidence about the price difference that goes with the district, because many of the neighborhood’s traits are held more nearly constant; they isolate the schools’ own effect only if other price-relevant differences between the district parts of the neighborhood — micro-location, tax jurisdiction, lots — can reasonably be excluded. Elsewhere the district’s figure is a proper location adjustment for a subject in that district, but it cannot be confirmed to be the schools’ effect alone, since traits the model does not record may travel with the district. For the market value of a property as it is, that causes no difficulty, since the subject’s district carries the same traits; it is something for the appraiser to be aware of, and it matters only if the question is about the schools themselves, as when a boundary change moves a house into another district.</p>
</section>
<section id="cause-4-which-sales-are-in-the-data" class="level2">
<h2 class="anchored" data-anchor-id="cause-4-which-sales-are-in-the-data">Cause 4: which sales are in the data</h2>
<p><strong>Selection</strong> is the case in which the sales are not a random draw from the houses the conclusion is about, and what put a house among the sales is connected to its price. Owners decide to list before they know what price they will get; but a listing whose offers come in low may be withdrawn or allowed to expire, and it then never appears among the sales. The sold houses are those whose offers were acceptable. The simulated market works this way: a house’s chance of closing rises with how high its offers come in for its features, and 34% of houses sell.</p>
<div id="3522ec27" class="cell" data-execution_count="5">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="5">
<table class="caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th></th>
<th style="text-align: right;">All houses</th>
<th style="text-align: right;">Sold houses only</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Rate per square foot</td>
<td style="text-align: right;">$349</td>
<td style="text-align: right;">$349</td>
</tr>
<tr class="even">
<td>Sold houses’ price above the market average for their features</td>
<td style="text-align: right;">—</td>
<td style="text-align: right;">$23,181</td>
</tr>
</tbody>
</table>
<p><em>Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample.</em></p>
</div>
</div>
<p>In this construction the selection depends only on how high each house’s offers come in for its features, so the rate is unaffected and the whole effect falls on the level: sold houses sit $23,181 above the average for houses with the same features. Where the selection also depends on the features — foreclosures concentrated in some neighborhoods or price ranges, estate sales concentrated among older houses — the rates move as well. Every comparable comes from this selected group.</p>
<p>Market value is what a house can sell for, so sales remain the evidence even for a house that is neither listed nor sold, such as the subject of a refinance appraisal. The question is whether the sales include houses like it. National sales at least include substantial numbers of houses in different states of renovation. In the National Association of Realtors’ <em>2025 Profile of Home Buyers and Sellers</em> (sales from July 2024 through June 2025), 35% of sellers sold the home as-is, 53% made minor renovations or fixed broken items, and only 12% carried out major renovations. In some areas, especially high-income ones, a larger share of the houses offered for sale have been updated, and the sales may represent fewer of the homes appraised for refinance. Even there, some sold houses are not updated. The difference between them and a subject that is not updated can be adjusted for: in the Residual Constraint Approach, the subject is placed in the ranking among the sales it resembles. A difference becomes harder to support the fewer sales share it, and one that no sale shows needs other evidence.</p>
</section>
<section id="the-variables-summarized" class="level2">
<h2 class="anchored" data-anchor-id="the-variables-summarized">The variables, summarized</h2>
<div id="05a19335" class="cell" data-execution_count="6">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="6">
<table class="caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th>Variable</th>
<th>Cause</th>
<th>Usual direction of the error in its rate</th>
<th>When it matters</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Actions — recent remodel, updates, additions, accessory dwelling unit, pool, solar</td>
<td>Owner’s choice (confounding by unrecorded location, plan, lot)</td>
<td>Up, where owners invest in better houses</td>
<td>Adjustments; counterfactual values</td>
</tr>
<tr class="even">
<td>Living area</td>
<td>Owner’s choice; record error</td>
<td>Up if size travels with unrecorded location quality; from record error, either way, not shown by the sales</td>
<td>Adjustments</td>
</tr>
<tr class="odd">
<td>Age</td>
<td>What happened since construction (remodel, replacement)</td>
<td>Varies by market</td>
<td>Adjustments</td>
</tr>
<tr class="even">
<td>List price, days on market, concessions, credits, financing</td>
<td>Set before the sale using price-relevant information (list price); determined with the price (concessions, credits, some financing); outcome of marketing (days on market)</td>
<td>Not interpretable as a cause</td>
<td>Not ordinarily a cause of value or an adjustment; some may help a prediction</td>
</tr>
<tr class="odd">
<td>School district and neighborhood</td>
<td>Unrecorded traits travel with the district</td>
<td>Carried along with the schools’ effect</td>
<td>A matter of awareness; matters only for questions about the schools themselves</td>
</tr>
<tr class="even">
<td>Sale type and timing</td>
<td>Selection of which houses sell</td>
<td>Level up where owners sell when prices are good; rates move where selection depends on features</td>
<td>All uses; extending a conclusion to unsold houses assumes the sales represent them</td>
</tr>
<tr class="odd">
<td>Position, distance, terrain-fixed view, slope</td>
<td>Physically fixed: not caused by the price, but not necessarily exogenous</td>
<td>—</td>
<td>Can still travel with features the model omits (noise, traffic, prestige); a view across land a neighbor could build on also carries an unrecorded risk of impairment</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>Physical fixity rules out the price acting back on such a feature, but not an omitted feature traveling with it: distance to the coast, for instance, can travel with noise, fog or prestige the model does not record. A view across land a neighbor could build on carries something more — an unrecorded risk that the view will be impaired, which a view protected by terrain does not carry — and the two should not be treated as the same feature.</p>
</section>
<section id="the-residual-in-the-residual-constraint-approach" class="level2">
<h2 class="anchored" data-anchor-id="the-residual-in-the-residual-constraint-approach">The residual in the Residual Constraint Approach</h2>
<section id="the-ranking-and-the-cqa-score" class="level3">
<h3 class="anchored" data-anchor-id="the-ranking-and-the-cqa-score">The ranking and the CQA score</h3>
<p>In the Residual Constraint Approach the primary regression takes only the measured features. It is fitted by MARS (multivariate adaptive regression splines, a regression whose rates may change across a feature’s range), using the R package earth. Condition, quality and the other <strong>latent</strong> features — those the records do not measure — are left out of it on purpose. For each comparable sale in the subject’s market area there are then three figures: its <strong>net sale price</strong> — the sale price less concessions — the price the regression estimates from its measured features, and the difference between the two, its <strong>residual</strong>. The comparable sales are ranked by residual, or by residual per square foot of living area, from largest to smallest — the choice is the appraiser’s — and from that ranking each sale’s <strong>CQA score</strong> (condition, quality and appeal) is formed: 0.00 to 10.00, the percent of the defined market area’s sales with lower residuals, divided by ten. (The residuals exist only for sales; reading the score as a percentile among all the area’s properties assumes the sales are representative of them — the selection question of Cause 4.)</p>
<p>The residual itself is not a measurement of condition, quality and appeal. It contains the value effects of everything the measured-feature model omitted or represented imperfectly, together with error in the model and noise in the transaction:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bresidual%7D_i%20%5C;=%5C;%20%5Cunderbrace%7BC_i%20+%20Q_i%20+%20A_i%7D_%7B%5Ctext%7Bcondition,%20quality,%20appeal%7D%7D%20%5C;+%5C;%20%5Cunderbrace%7BL_i%20+%20F_i%7D_%7B%5Ctext%7Bomitted%20location,%20other%20features%7D%7D%20%5C;+%5C;%20%5Ceta_i%20,"></p>
<p>where <img src="https://latex.codecogs.com/png.latex?%5Ceta_i"> is model error and negotiation noise. The CQA score orders the sales by the whole residual; it is a residual-placement index used to organize appraisal judgment, not a direct statistical measurement of condition, quality and appeal alone. Attributing that residual to condition, quality, appeal and the other latent features the appraiser judges significant is an appraisal interpretation, constrained by the ranking — not the residual itself.</p>
<p>The ranking is what makes the score checkable. A CQA score of 7.00 makes a definite claim — that seven in ten of the defined market area’s sales have lower residuals — and an auditor, or another appraiser who works in the area, can look at the sales on either side of the subject’s place in the ranking — at their MLS listings and photographs, and from their own knowledge of those houses — and judge whether that placement is reasonable. The appraiser makes the placement by judging all the residual’s latent features together — condition, quality, appeal and the rest — not by scoring each one; the method relies on the comparative judgment of appraisers familiar with the market, and its check is whether another qualified appraiser reviewing the same evidence finds the placement reasonable. Neither a score assigned on an absolute scale nor a coefficient read from a model provides this direct check against neighboring sales in the ranking.</p>
<p>The ranking is also a <em>nonparametric</em> statistic: the CQA score depends only on the order of the residuals, not on their sizes or on any assumed shape of their distribution. It reads the subject’s place directly from the sales’ own residuals, not from a fitted curve, and a few extreme sales move it far less than they would move an average or a fitted coefficient.</p>
<p>Ranking by residual per square foot can be the better measure when the subject is unusually small or large. A small house can carry a much higher degree of quality than a larger one, and in total dollars its residual will still look modest beside the residuals of larger houses. Measured per square foot, its quality shows, and its CQA score is placed accordingly; the same correction keeps a very large house of ordinary quality from ranking high on size alone. Dividing by living area is itself a choice of scale: it suits a market where residuals grow roughly in proportion to living area, and can over- or under-correct where they do not.</p>
</section>
<section id="what-the-approach-estimates" class="level3">
<h3 class="anchored" data-anchor-id="what-the-approach-estimates">What the approach estimates</h3>
<p>The CQA score is derived from the difference between the net sale price and the MARS estimated sale price, and it ranks the sales; it never enters the primary regression.</p>
<p>The value conclusion is the regression’s estimate at the subject plus the subject’s residual, the residual being estimated by placing the subject within the ranking. The approach therefore decomposes its valuation estimate into the part predicted from the measured features and a residual assigned from the subject’s place in the ranking; it is not an estimate of how condition impacts value. It does not identify a causal rate for condition, and does not need one.</p>
</section>
<section id="the-subject" class="level3">
<h3 class="anchored" data-anchor-id="the-subject">The subject</h3>
<p><strong>The subject is under contract, and its improvements are complete.</strong> The approach is applied to an existing property under an executed contract of sale, awaiting its loan and the other conditions of closing. Any remodel or update has been completed; it has already acted on the property’s condition, quality and perhaps other features, and the value sought is the value of the property as it is. The subject’s remodel is therefore not a counterfactual but a fact about the property: valuing the property as it stands does not require identifying the causal effect of remodeling.</p>
<p><strong>That fact still bears on the price.</strong> A recent remodel or update raises condition and quality in ways that are not fully observable, so it is evidence for the subject’s place in the ranking; and where the work was done to code with its required inspections passed, it also documents the soundness and safety of what it touched. The market still pays for the state the property is in; the remodel is evidence about that state, much of which lies behind the walls.</p>
</section>
<section id="placing-the-subject" class="level3">
<h3 class="anchored" data-anchor-id="placing-the-subject">Placing the subject</h3>
<p><strong>The evidence for the placement: MLS data and photographs.</strong> The subject is placed in the ranking by comparing it with the comparables, using the MLS data and, above all, the MLS photographs of each sale. The residuals order the comparables by the part of the net sale price the measured-feature model does not explain; the photographs show what each place in that order looks like — the finishes, the kitchens and baths, the state of repair, the light and the layout of the houses with high residuals, of those in the middle, and of those with low ones. The appraiser places the subject among the comparables whose photographs, and whose listing data, it most resembles in condition, quality and appeal, together with what the inspection of the subject itself shows.</p>
<p>The photographs do three things for the soundness of the placement. They make the ranking interpretable: a sale’s place can be seen to correspond, or not, to what its photographs show, and a sale whose residual its photographs do not explain is a signal to look for an omitted feature or an unusual transaction. They make the placement auditable: the photographs are part of the record, so a reviewer can look at the same evidence the appraiser used rather than take the placement on trust. And the listing photographs were taken to market each house, before its sale price was known, so the evidence itself is not formed with the price in view, even though it is read afterwards. Their limits are known as well: they show what is visible, from angles chosen to show the house at its best, and not what lies behind the walls — which is where the evidence of a recent remodel, and of its passed inspections, adds to them.</p>
<p>A comparable’s residual is everything the measured-feature model did not explain — in the terms of the equation above, its <img src="https://latex.codecogs.com/png.latex?C%20+%20Q%20+%20A"> (including the unobserved part a recent remodel signals), its <img src="https://latex.codecogs.com/png.latex?L%20+%20F"> (a better micro-location, a better plan) and its <img src="https://latex.codecogs.com/png.latex?%5Ceta"> (model error and negotiation noise). Two rules follow for placing the subject, and an auditor can check each one.</p>
<ul>
<li><strong>On <img src="https://latex.codecogs.com/png.latex?C%20+%20Q%20+%20A">: place the subject on all observed evidence of its latent state, and on nothing that only travels with that evidence.</strong> That the subject was recently remodeled or updated, with its required inspections passed, is evidence of its condition, quality and documented soundness, and belongs in the placement. But if the remodeled comparables sit high in the ranking partly because of their <img src="https://latex.codecogs.com/png.latex?L%20+%20F"> — location or plan — and the subject does not share those, its placement must not follow them there. The appraiser, unlike the regression, has inspected the subject and has the comparables’ photographs, and can see much of what the model omits.</li>
<li><strong>On what the model already explained: place the subject on latent value beyond what the measured features carry.</strong> If age is partly a proxy for condition, the subject is placed on its condition relative to its age; otherwise the condition counted through age is counted again.</li>
</ul>
<p>The placement is a judgment, and its check is whether other appraisers who work in the area find it reasonable.</p>
</section>
<section id="dividing-the-residual" class="level3">
<h3 class="anchored" data-anchor-id="dividing-the-residual">Dividing the residual</h3>
<p>Placing the subject fixes its residual as a whole. Dividing a residual among condition, quality, appeal and the other latent features — saying how much of it each contributes — is a separate step, and a harder one. Which latent features to recognize is the appraiser’s judgment: beyond condition, quality and appeal, he may add any he observes to have a significant effect on price — landscaping and yard features, for instance. The techniques available are approximate. Two sales alike in every respect except an update that raised condition from 4.00 to 7.00, for instance, give a price difference for those three points, when such a pair can be found; such pairs are scarce, and the appraiser works with whatever evidence the market area offers. How the residual is divided does not change the value conclusion. The RCA paper proves this (Proof II, p.&nbsp;36): the total residual adjustment for a comparable equals the subject’s total residual minus the comparable’s, and as long as the components assigned to each property add up to that property’s residual, any reallocation among the components leaves the total — and so the conclusion — unchanged. The division serves to explain the value, not to reach it. An appraiser may rank particular latent features across the market area and give each its own score; such rankings necessarily involve judgment. Under the constraint the contributions assigned to a comparable must sum to its residual, so they do not change the value conclusion; they should still be supportable, because they explain to the report’s user why a comparable’s residual differs from the subject’s, or from the other comparables’. This paper cannot supply the missing evidence. What it offers is a map of where value causation hides, and of the readings of the sales that mislead about it.</p>
</section>
</section>
<section id="counterfactual-values-what-the-sales-cannot-show" class="level2">
<h2 class="anchored" data-anchor-id="counterfactual-values-what-the-sales-cannot-show">Counterfactual values: what the sales cannot show</h2>
<p>Counterfactual values arise in assignments other than the contract sale of the previous section: value as if remodeled, subject to completion, before and after a partial taking. For them, ordinary <strong>cross-sectional</strong> sales — sales from one period, compared across houses rather than over time — do not <strong>identify</strong> the answer — determine it uniquely, in the sense of entry 010 (<em>Parameter Identification</em>) — when the choice to remodel depends on unrecorded features that also affect price; identifying it takes additional assumptions, additional data, or a research design such as <strong>repeat sales</strong>: the same house sold before and after the work. The price difference that goes with a remodel in the sales equals what the remodel does plus a part due to which houses were chosen for it. The sales give the sum. The second part cannot be read from them; it has to be assumed, and the value reported as a function of the assumptions.</p>
<section id="the-confounding-part-is-a-product-of-two-quantities" class="level3">
<h3 class="anchored" data-anchor-id="the-confounding-part-is-a-product-of-two-quantities">The confounding part is a product of two quantities</h3>
<p>The confounding part is not a free-standing dollar amount. In the linear specification used here, entry 008 (<em>Omitted Variable Bias</em>) gives its exact form, Theil’s formula: the bias in the remodel coefficient from an unrecorded feature is the product of two quantities,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bconfounding%20part%7D%20%5C;=%5C;%20%5Cgamma%20%5Ccdot%20%5Cdelta%20,"></p>
<p>where <img src="https://latex.codecogs.com/png.latex?%5Cgamma"> is <strong>how much one unit of the unrecorded feature adds to price</strong> under the assumed causal model, and <img src="https://latex.codecogs.com/png.latex?%5Cdelta"> is <strong>how much more of that feature the remodeled houses have</strong> than unremodeled houses alike in their recorded features. Both have to be large for the bias to be large: a feature that strongly affects price but is no more common among remodeled houses causes none, and so does one that is far more common among them but does not affect price.</p>
<p>In the simulated market the unrecorded feature is location quality, measured in <strong>standard deviations</strong> — the typical distance of a house’s location quality from the market’s average. The regression with location recorded puts one standard deviation at $90,904 of price (truth $90,000), and remodeled houses have 0.73 standard deviations more of it than unremodeled houses alike in living area and age. Their product, $66,793, is exactly the excess of the remodel coefficient ($144,792) over the coefficient with location recorded ($77,999).</p>
</section>
<section id="two-assumptions-reported-as-a-grid" class="level3">
<h3 class="anchored" data-anchor-id="two-assumptions-reported-as-a-grid">Two assumptions, reported as a grid</h3>
<p>For a counterfactual value the appraiser therefore assumes two things about the confounding part, each of which can be argued from knowledge of the market: how much the unrecorded qualities that attract remodeling — micro-location, plan, lot — add to price (<img src="https://latex.codecogs.com/png.latex?%5Cgamma">), and how much more of them the houses that get remodeled tend to have (<img src="https://latex.codecogs.com/png.latex?%5Cdelta">). The report shows the conclusion over a range of both. Where possible, the ranges are judged against observed features of known importance: could the omitted qualities matter as much to price, or travel as strongly with remodeling, as recorded location does? For an unremodeled house in the simulated market, the gain from remodeling, by assumption:</p>
<div id="65ba607d" class="cell" data-execution_count="7">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="7">
<table class="caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: right;">More unrecorded quality among remodeled houses (δ, standard deviations)</th>
<th style="text-align: right;">γ = $30,000</th>
<th style="text-align: right;">γ = $60,000</th>
<th style="text-align: right;">γ = $90,000</th>
<th style="text-align: right;">γ = $120,000</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: right;">0.25</td>
<td style="text-align: right;">$137,292</td>
<td style="text-align: right;">$129,792</td>
<td style="text-align: right;">$122,292</td>
<td style="text-align: right;">$114,792</td>
</tr>
<tr class="even">
<td style="text-align: right;">0.50</td>
<td style="text-align: right;">$129,792</td>
<td style="text-align: right;">$114,792</td>
<td style="text-align: right;">$99,792</td>
<td style="text-align: right;">$84,792</td>
</tr>
<tr class="odd">
<td style="text-align: right;">0.75</td>
<td style="text-align: right;">$122,292</td>
<td style="text-align: right;">$99,792</td>
<td style="text-align: right;">$77,292</td>
<td style="text-align: right;">$54,792</td>
</tr>
<tr class="even">
<td style="text-align: right;">1.00</td>
<td style="text-align: right;">$114,792</td>
<td style="text-align: right;">$84,792</td>
<td style="text-align: right;">$54,792</td>
<td style="text-align: right;">$24,792</td>
</tr>
</tbody>
</table>
<p><em>Gain from remodeling = observed coefficient − γ·δ. γ: price added by one standard deviation of unrecorded quality. Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample.</em></p>
</div>
</div>
<p>The true average gain for the unremodeled houses of this market — the effect on the unremodeled houses — is $78,335, near the cell for <img src="https://latex.codecogs.com/png.latex?%5Cdelta"> = 0.75 and <img src="https://latex.codecogs.com/png.latex?%5Cgamma"> = $90,000, close to the true values. Two cautions remain. First, the product accounts only for the confounding feature. Any difference between the condition gain of the houses that were remodeled and of those that were not is a further, separate gap between the coefficient and the effect wanted, which the product does not capture and the sales cannot separate; in this market it is small (the coefficient with location recorded, $77,999, against an effect on the unremodeled houses of $78,335). Second, nothing in the sales identifies <img src="https://latex.codecogs.com/png.latex?%5Cgamma"> or <img src="https://latex.codecogs.com/png.latex?%5Cdelta">. The grid does not give the answer an aura of identification it does not have; it shows the reader how the conclusion depends on assumptions that are stated.</p>
<p>This follows the general logic of <em>sensitivity analysis</em> for unmeasured confounding (Rosenbaum 2002; Cinelli and Hazlett 2020): identify what the observed data do not determine, vary it over a defensible range, and report how the conclusion changes. The grid is a simplified practitioner heuristic, not that formal procedure. Cinelli and Hazlett express the two quantities as partial <img src="https://latex.codecogs.com/png.latex?R%5E2"> values — each the share of the treatment’s, and of the price’s, remaining variation that the omitted confounder would explain — derive bounds on the bias from them that hold for any number of omitted variables combined, and calibrate the bounds against observed features (an omitted confounder “as strong as location”, for instance). The dollar form here writes the same product, <img src="https://latex.codecogs.com/png.latex?%5Cgamma%20%5Ccdot%20%5Cdelta">, for a single omitted feature acting linearly, in units an appraiser can argue about; it sets the two quantities by judgment, without that calibration, and its grid is a range of stated assumptions, not a bound. Where a study needs a defensible bound rather than a stated assumption, the formal procedure is the one to use. It has the same structure as the Residual Constraint Approach: what the data cannot divide is assigned by the appraiser under stated assumptions, and the conclusion is reported conditioned on them. Only the features the counterfactual changes need such assumptions; the others stay at the subject’s actual values.</p>
</section>
</section>
<section id="the-sellers-question" class="level2">
<h2 class="anchored" data-anchor-id="the-sellers-question">The seller’s question</h2>
<p>A seller deciding which updates to make before listing asks the counterfactual question directly: for this house, which update raises the price by more than it costs? The easy answer can mislead. The price difference updated houses show in the sales overstates the gain where updates go disproportionately to houses with favorable unrecorded features, as in the simulated market; where they go to distressed houses, as investors’ renovations may, it can understate it.</p>
<p>What an update yields also depends on where the house starts. In the simulated market, the same remodel yields on average:</p>
<div id="4e34d3b8" class="cell" data-execution_count="8">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="8">
<table class="caption-top table table-sm table-striped small">
<thead>
<tr class="header">
<th>Condition the house would have without the remodel</th>
<th style="text-align: right;">Average gain</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>below 3.00</td>
<td style="text-align: right;">$79,227</td>
</tr>
<tr class="even">
<td>3.00 to 7.00</td>
<td style="text-align: right;">$94,103</td>
</tr>
<tr class="odd">
<td>7.00 and above</td>
<td style="text-align: right;">$41,490</td>
</tr>
</tbody>
</table>
<p><em>Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample.</em></p>
</div>
</div>
<p>The physical improvement is the same in every row, and so is the price of a condition point ($30,000); what differs is how many points the same improvement adds. Because the score is a rank — ten times the share of the market area’s houses in worse condition — what matters is how many houses the improvement carries the house past. The scores themselves are spread evenly by construction (30% of houses below 3.00, 40% from 3.00 to 7.00, 30% above); the houses’ underlying condition is not, and the same improvement passes more houses where it is most bunched together, in the middle, than in either tail, while near the top the ceiling of 10.00 leaves little room. In points:</p>
<div id="d1188465" class="cell" data-execution_count="9">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="9">
<table class="caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Condition the house would have without the remodel</th>
<th style="text-align: right;">Condition points added</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>below 3.00</td>
<td style="text-align: right;">2.64</td>
</tr>
<tr class="even">
<td>3.00 to 7.00</td>
<td style="text-align: right;">3.14</td>
</tr>
<tr class="odd">
<td>7.00 and above</td>
<td style="text-align: right;">1.38</td>
</tr>
</tbody>
</table>
<p><em>Constructed market: one draw of 40,000 houses; computed exactly for that draw, not estimated from a sample. Starting condition is scored against the market as it stands.</em></p>
</div>
</div>
<p>The two tables rest on different things. The points come from the scale: on any rank scale the same improvement adds fewer points where few houses stand, and none past the ceiling. The dollars come from the constructed market as well: it pays the same $30,000 for every point, so the smaller dollar gain at the top only repeats the smaller number of points. A real market need not pay the same for every point; buyers may pay more for the step from 9.00 to 10.00 than for the step from 5.00 to 6.00, and in such a market the dollar gain at the top could match or exceed the gain in the middle. Whether they do is a question about the market area, not about the scale, and nothing in these tables answers it. The Residual Constraint Approach does not assume an answer: it reads the residual at the subject’s place in the ranking from the comparables there, so whatever the market pays at the top is in the residuals of the sales at the top.</p>
<p>For a seller, the practical question is therefore how many of the market area’s houses the update would carry the subject past, and what the market area’s buyers pay at the place it would reach. Work beyond the level that buyers in the market area pay for is not fully recovered in the sale price.</p>
<p>Updates that change measured features — an added bathroom, space that becomes living area — move the model’s prediction by the rate at the subject’s position, subject to the endogeneity of living area above. Updates that change latent features — paint, flooring, a kitchen refresh, landscaping — move the subject up the residual ranking, and the estimate is where it would land, judged on the features the update changes while holding fixed what it does not: location, plan, light, lot.</p>
<p>Work done to code, with its required inspections passed, carries one further return: passed inspections are evidence of code compliance for the inspected work, and may reduce buyers’ and lenders’ uncertainty.</p>
<p>Particularly strong observational evidence comes from repeat sales — the same house sold before and after its renovation — in which the house’s own unchanging, unrecorded qualities cancel — provided the market change over the interval, and any other change to the house or its surroundings, can be accounted for. One caution remains: houses renovated by investors are chosen for their upside, so the gains observed on them may overstate what a renovation would yield on a house chosen at random.</p>
</section>
<section id="what-a-report-should-state" class="level2">
<h2 class="anchored" data-anchor-id="what-a-report-should-state">What a report should state</h2>
<ol type="1">
<li>The question each coefficient is used to answer: a prediction, an adjustment, or a counterfactual value.</li>
<li>For each adjustment, whether the feature is one listed above, and the likely direction of its error.</li>
<li>For a counterfactual value, the two assumptions behind the confounding part — how much the unrecorded qualities add to price, and how much more of them the selected houses have — the reasoning for their ranges, and the value over those ranges.</li>
<li>In the Residual Constraint Approach, the basis on which the subject was placed among the comparables’ residuals — the MLS data and photographs of the subject and of the comparables on either side of its place.</li>
</ol>
</section>
<section id="limits-of-this-paper" class="level2">
<h2 class="anchored" data-anchor-id="limits-of-this-paper">Limits of this paper</h2>
<p>The paper assumes the Residual Constraint Approach. The simulated market is linear (it pays the same for every square foot and every condition point), has one confounder, and is constructed to show each cause clearly; real markets have several confounders at once, and MARS models rates that change across a feature’s range. The underlying mechanisms carry over, but with several confounders and interactions their effects need not separate cleanly feature by feature, and the sizes do not carry over: the figures above show the direction and mechanism of each error, not its size in any real market. The program is published so that its assumptions can be changed and the consequences seen. One interaction deserves a specific warning. A MARS model fitted where remodeling is concentrated above some age or below some condition could place a <strong>knot</strong> — a point where a rate changes — there, and encode the association created by selection in the fitted shape of the rate, where it is harder to see than in a single coefficient. The published program is linear; to examine this, make the price function nonlinear in age or condition and fit it with earth. The simulation demonstrates how each kind of error arises, not how common it is: whether a particular variable is endogenous in a particular market, and the size and direction of the resulting bias, have to be investigated in the market and the data being analyzed.</p>
</section>
<section id="references" class="level2">
<h2 class="anchored" data-anchor-id="references">References</h2>
<ul>
<li>The Valuation Engineer Journal, Foundations, Vol. 1 No.&nbsp;2 (2026): entry 007 (<em>Conditional Expectation</em>), entry 008 (<em>Omitted Variable Bias</em>), entry 009 (<em>Endogeneity</em>), entry 010 (<em>Parameter Identification</em>).</li>
<li>Craytor, W. B. (2026). Residual Constraint Approach (RCA): Framework &amp; Protocol. <em>The Valuation Engineer</em>, 1(1). <a href="https://doi.org/10.67330/kgebxf46" class="uri">https://doi.org/10.67330/kgebxf46</a></li>
<li>Cinelli, C., &amp; Hazlett, C. (2020). Making Sense of Sensitivity: Extending Omitted Variable Bias. <em>Journal of the Royal Statistical Society, Series B</em>, 82(1), 39–67.</li>
<li>Theil, H. (1957). Specification Errors and the Estimation of Economic Relationships. <em>Revue de l’Institut International de Statistique</em>, 25(1/3), 41–51.</li>
<li>National Association of Realtors (2025). <em>2025 Profile of Home Buyers and Sellers</em>. Chicago: National Association of Realtors.</li>
<li>Rosenbaum, P. R. (2002). <em>Observational Studies</em> (2nd ed.). Springer.</li>
</ul>
</section>
<section id="appendix-the-logic-as-a-prolog-program" class="level2">
<h2 class="anchored" data-anchor-id="appendix-the-logic-as-a-prolog-program">Appendix: the logic as a Prolog program</h2>
<p>The program below states the logic of this paper as facts and rules, so that a reader can query it: which variables are endogenous and by which cause, when that matters, whether a variable is included for the effect wanted, the confounding part <img src="https://latex.codecogs.com/png.latex?%5Cgamma%20%5Ccdot%20%5Cdelta"> and its grid, the CQA score from a list of residuals, the placement rules, and Proof II of the RCA paper — that dividing a residual differently leaves the adjustment unchanged. It builds on the vocabulary of entry 009 (<em>Endogeneity</em>) without loading it, and runs under Trealla (the Journal’s official Prolog), SWI-Prolog and Scryer Prolog. Its self-test runs each time this page is built; the result is printed after the listing. The file can be downloaded from the link at the top of the page.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode prolog code-with-copy"><code class="sourceCode prolog"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% </span><span class="an" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">SPDX-License-Identifier:</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> AGPL-3.0-or-later</span></span>
<span id="cb1-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Copyright (C) 2026 William Bert Craytor. Published by Valuation Engineer</span></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Research Labs (Pacific Vista Net). This program is free software: you can</span></span>
<span id="cb1-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% redistribute it and/or modify it under the terms of the GNU Affero General</span></span>
<span id="cb1-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Public License as published by the Free Software Foundation, either version 3</span></span>
<span id="cb1-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% of the License, or (at your option) any later version. It is distributed</span></span>
<span id="cb1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or</span></span>
<span id="cb1-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% FITNESS FOR A PARTICULAR PURPOSE; see</span></span>
<span id="cb1-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% &lt;https://www.gnu.org/licenses/agpl-3.0.html&gt;.</span></span>
<span id="cb1-10"></span>
<span id="cb1-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% property-variables-endogeneity.pl</span></span>
<span id="cb1-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%</span></span>
<span id="cb1-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% Prolog companion to the working paper</span></span>
<span id="cb1-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   "Property Variables Most Subject to Endogeneity" (Research Labs, 2026)</span></span>
<span id="cb1-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   Author:  Bert Craytor</span></span>
<span id="cb1-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   Version: 1.0.0 (draft)</span></span>
<span id="cb1-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%</span></span>
<span id="cb1-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% It states the logic of the paper as facts and rules, so that a reader can</span></span>
<span id="cb1-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% query it. It builds on the vocabulary of Foundations entry</span></span>
<span id="cb1-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% 009 (Endogeneity), Vol. 1 No. 2, version 1.1.0, without loading it: this</span></span>
<span id="cb1-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% file runs on its own. It runs under Trealla (the Journal's official</span></span>
<span id="cb1-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% Prolog), SWI-Prolog and Scryer Prolog.</span></span>
<span id="cb1-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%</span></span>
<span id="cb1-24"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%% Try:</span></span>
<span id="cb1-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   ?- run_tests.</span></span>
<span id="cb1-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   ?- often_endogenous_via(living_area, Cause).</span></span>
<span id="cb1-27"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   ?- matters_for(days_on_market, Use).</span></span>
<span id="cb1-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   ?- confounding_part(0.75, 90000, X).</span></span>
<span id="cb1-29"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%   ?- cqa_score(12000, [-30000,-8000,0,5000,15000,22000], S).</span></span>
<span id="cb1-30"></span>
<span id="cb1-31"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> use_module(library(lists))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-32"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">dynamic</span>(moves_with_structural_error<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">/</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span>   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% filled in for a given model</span></span>
<span id="cb1-33"></span>
<span id="cb1-34"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-35"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 1. The method assumed</span></span>
<span id="cb1-36"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-37"></span>
<span id="cb1-38">method_assumed(residual_constraint_approach)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-39"></span>
<span id="cb1-40"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Features the records measure, and those they do not (latent).</span></span>
<span id="cb1-41">measured(living_area)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-42">measured(age)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-43">measured(lot_size)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-44">measured(bedrooms)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-45">measured(bathrooms)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-46"></span>
<span id="cb1-47">latent(condition)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-48">latent(quality)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-49">latent(appeal)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-50">latent(unrecorded_location)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-51">latent(other_unmeasured_features)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-52"></span>
<span id="cb1-53"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Only measured features are eligible for the primary regression, the one</span></span>
<span id="cb1-54"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% from which the value conclusion is reached; MARS selects among them. The</span></span>
<span id="cb1-55"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% CQA score and the appraiser's ratings of latent features never enter it.</span></span>
<span id="cb1-56">eligible_for_primary_regression(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> measured(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-57"></span>
<span id="cb1-58"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% What the appraiser's ratings of latent features are for.</span></span>
<span id="cb1-59">purpose_of_latent_ratings(explain_residual_differences_between_properties)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-60">affects_value_conclusion(latent_ratings<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-61"></span>
<span id="cb1-62"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% The residual of a comparable sale and its components.</span></span>
<span id="cb1-63">residual_definition(residual <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=</span> net_sale_price <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span> primary_regression_estimate)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-64">net_sale_price_definition(net_sale_price <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=</span> sale_price <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span> concessions)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-65">residual_component(cqa<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       [condition, quality, appeal])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-66">residual_component(omitted<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>   [unrecorded_location, other_unmeasured_features])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-67">residual_component(eta<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       [model_error, negotiation_noise])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-68"></span>
<span id="cb1-69"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-70"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 2. The definition (entry 009, Endogeneity) and the scrutiny test</span></span>
<span id="cb1-71"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-72"></span>
<span id="cb1-73"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% A regressor is endogenous, relative to a model and a causal question,</span></span>
<span id="cb1-74"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% when it moves with the structural error u.</span></span>
<span id="cb1-75">endogenous(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Regressor</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Model</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Question</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-76">    moves_with_structural_error(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Regressor</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Model</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Question</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-77"></span>
<span id="cb1-78"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% The test that recurs through the paper. A regressor deserves scrutiny</span></span>
<span id="cb1-79"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% when someone chose its value or measured it using price-relevant</span></span>
<span id="cb1-80"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% information the model does not have. Selection is a property of the</span></span>
<span id="cb1-81"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% sales as a whole, not of one regressor: they deserve the same scrutiny</span></span>
<span id="cb1-82"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% when what put a house among them is connected to its price.</span></span>
<span id="cb1-83">scrutiny_reason(regressor<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> chosen)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-84">scrutiny_reason(regressor<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> measured)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-85">scrutiny_reason(sales_as_a_whole<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owners_decision_to_sell)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-86">scrutiny_reason(sales_as_a_whole<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> criteria_for_choosing_the_sales)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-87"></span>
<span id="cb1-88"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-89"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 3. When endogeneity affects the sale price and market value</span></span>
<span id="cb1-90"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-91"></span>
<span id="cb1-92">affects_value(reading_a_coefficient_as_an_adjustment)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-93">affects_value(counterfactual_value)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-94">affects_value(subject_unlike_comparables_in_the_driving_respect)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-95"></span>
<span id="cb1-96"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Market value of the property as it is: the target is the conditional</span></span>
<span id="cb1-97"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% expectation (entry 007, Conditional Expectation), which a model can</span></span>
<span id="cb1-98"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% estimate well even when its coefficients are not causal effects.</span></span>
<span id="cb1-99">unaffected_target(market_value_as_is<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> conditional_expectation<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-100">                  provided(subject_features_covered_by_comparables))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-101"></span>
<span id="cb1-102"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-103"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 4. Actions and states</span></span>
<span id="cb1-104"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-105"></span>
<span id="cb1-106">variable_kind(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>           action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-107">variable_kind(recent_updates<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>           action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-108">variable_kind(addition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                 action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-109">variable_kind(accessory_dwelling_unit<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>  action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-110">variable_kind(pool<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                     action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-111">variable_kind(solar<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                    action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-112">variable_kind(condition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                state)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-113">variable_kind(quality<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                  state)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-114">variable_kind(functional_utility<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       state)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-115">variable_kind(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>              state)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-116">variable_kind(age<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                      state)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-117"></span>
<span id="cb1-118">changes(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> condition)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-119">changes(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> quality)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-120">changes(recent_updates<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> condition)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-121">changes(recent_updates<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> quality)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-122"></span>
<span id="cb1-123"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% How each kind usually becomes endogenous.</span></span>
<span id="cb1-124">common_route(action<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-125">common_route(state<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>  measurement)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-126">common_route(state<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>  owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span>        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% living area is partly chosen</span></span>
<span id="cb1-127"></span>
<span id="cb1-128"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% An action is evidence about the part of the state the ratings miss, and</span></span>
<span id="cb1-129"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% work done to code with inspections passed documents safety and soundness.</span></span>
<span id="cb1-130">evidence_about(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Action</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">State</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> changes(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Action</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">State</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-131">documents(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Action</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> safety_and_soundness) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-132">    variable_kind(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Action</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-133">    assumed(code_followed)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> assumed(required_inspections_approved)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-134"></span>
<span id="cb1-135">assumed(code_followed)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-136">assumed(required_inspections_approved)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-137"></span>
<span id="cb1-138"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-139"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 5. Roles and the inclusion rule (entry 009, Endogeneity)</span></span>
<span id="cb1-140"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-141"></span>
<span id="cb1-142">role(remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>          treatment)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-143">role(condition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>        mediator)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-144">role(location_quality<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> confounder)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-145">role(price<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>            outcome)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-146"></span>
<span id="cb1-147"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Whether to include a variable depends on the effect wanted.</span></span>
<span id="cb1-148">include_rule(confounder<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_AnyEffect</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>   yes)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-149">include_rule(mediator<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>   total_effect<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-150">include_rule(mediator<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>   direct_effect<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> yes)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-151"></span>
<span id="cb1-152">include_variable(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Effect</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Answer</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-153">    role(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Role</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> include_rule(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Role</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Effect</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Answer</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-154"></span>
<span id="cb1-155"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-156"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 6. The variables, by cause (the paper's summary table)</span></span>
<span id="cb1-157"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-158"></span>
<span id="cb1-159">often_endogenous_via(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-160">often_endogenous_via(recent_updates<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-161">often_endogenous_via(addition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>             owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-162">often_endogenous_via(accessory_dwelling_unit<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-163">often_endogenous_via(pool<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                 owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-164">often_endogenous_via(solar<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-165">often_endogenous_via(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>          owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-166">often_endogenous_via(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>          record_error)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-167">often_endogenous_via(age<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>                  what_happened_since_construction)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-168">often_endogenous_via(list_price<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>           set_with_price_relevant_information)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-169">often_endogenous_via(concessions<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>          determined_with_price)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-170">often_endogenous_via(seller_credits<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       determined_with_price)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-171">often_endogenous_via(financing_terms<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>      determined_with_price)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% some</span></span>
<span id="cb1-172">often_endogenous_via(days_on_market<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       outcome_of_marketing)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-173">often_endogenous_via(sale_type_and_timing<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> selection)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-174"></span>
<span id="cb1-175"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% School district and neighborhood: a proper location adjustment for the</span></span>
<span id="cb1-176"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% market value as is; unrecorded traits travel with the district, which</span></span>
<span id="cb1-177"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% matters only for questions about the schools themselves.</span></span>
<span id="cb1-178">awareness(school_district<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> unrecorded_traits_travel_with_it)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-179">matters_only_for(school_district<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> questions_about_the_schools_themselves)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-180"></span>
<span id="cb1-181"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Physically fixed: not caused by the price, but not necessarily exogenous;</span></span>
<span id="cb1-182"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% such a feature can still travel with features the model omits. A view</span></span>
<span id="cb1-183"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% across land a neighbor could build on also carries an unrecorded risk of</span></span>
<span id="cb1-184"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% impairment, and is not the same feature as a view protected by terrain.</span></span>
<span id="cb1-185">physically_fixed(position)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-186">physically_fixed(distance)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-187">physically_fixed(terrain_fixed_view)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-188">physically_fixed(slope)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-189">carries_unrecorded_risk(view_across_buildable_land<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> impairment)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-190"></span>
<span id="cb1-191">usual_direction(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-192">                up_where_owners_invest_in_better_houses)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-193">usual_direction(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-194">                up_if_size_travels_with_unrecorded_location)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-195">usual_direction(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> record_error<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-196">                either_way_not_shown_by_the_sales)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-197">usual_direction(age<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> what_happened_since_construction<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> varies_by_market)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-198">usual_direction(sale_type_and_timing<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> selection<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-199">                level_up_rates_move_if_selection_depends_on_features)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-200"></span>
<span id="cb1-201">matters_for(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> adjustment) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-202">    often_endogenous_via(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> first_cause(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\==</span> selection<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-203">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\+</span> transaction_variable(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-204">matters_for(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> counterfactual_value) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-205">    variable_kind(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> action)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> often_endogenous_via(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-206">matters_for(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> not_a_cause_of_value) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> transaction_variable(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-207">matters_for(sale_type_and_timing<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> every_use)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-208"></span>
<span id="cb1-209">first_cause(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> often_endogenous_via(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">V</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C1</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">!,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C1</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-210"></span>
<span id="cb1-211"></span>
<span id="cb1-212">transaction_variable(list_price)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-213">transaction_variable(concessions)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-214">transaction_variable(seller_credits)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-215">transaction_variable(financing_terms)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-216">transaction_variable(days_on_market)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-217"></span>
<span id="cb1-218"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-219"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 7. Measurement error</span></span>
<span id="cb1-220"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-221"></span>
<span id="cb1-222"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Recorded living area: MLS and assessor errors vary in sign and size by</span></span>
<span id="cb1-223"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% locality, so their effect on the living-area rate, and on the rates of</span></span>
<span id="cb1-224"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% features that move with living area, cannot be read from the sales.</span></span>
<span id="cb1-225">record_error_effect(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> direction_not_shown_by_the_sales)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-226">reaches_rates_of(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [location, lot_size, bedrooms, bathrooms])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-227"></span>
<span id="cb1-228"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Record error is not removed by adding comparables.</span></span>
<span id="cb1-229">removed_by_more_comparables(record_error<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-230"></span>
<span id="cb1-231"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-232"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 8. The confounding part (Theil's formula, entry 008, Omitted Variable</span></span>
<span id="cb1-233"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%    Bias; exact in the linear specification)</span></span>
<span id="cb1-234"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-235"></span>
<span id="cb1-236"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Gamma: price added by one unit of the unrecorded feature.</span></span>
<span id="cb1-237"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Delta: how much more of it the remodeled houses have.</span></span>
<span id="cb1-238">confounding_part(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Part</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Part</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-239"></span>
<span id="cb1-240"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Gain from remodeling, given the observed coefficient and the assumptions.</span></span>
<span id="cb1-241">gain(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Coefficient</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gain</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-242">    confounding_part(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Part</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-243">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gain</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Coefficient</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">-</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Part</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-244"></span>
<span id="cb1-245"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% The paper's grid (observed coefficient from the simulated market).</span></span>
<span id="cb1-246">observed_remodel_coefficient(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">144792</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-247">grid_delta(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.25</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_delta(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.50</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_delta(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.75</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_delta(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.00</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-248">grid_gamma(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30000</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_gamma(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">60000</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_gamma(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">90000</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span> grid_gamma(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">120000</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-249"></span>
<span id="cb1-250">grid_cell(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gain</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-251">    observed_remodel_coefficient(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">B</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-252">    grid_delta(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> grid_gamma(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-253">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">G0</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">B</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">-</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gamma</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Delta</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Gain</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">round</span>(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">G0</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-254"></span>
<span id="cb1-255"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% The grid is a practitioner heuristic: a range of stated assumptions for</span></span>
<span id="cb1-256"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% one omitted feature acting linearly, not a formal bound</span></span>
<span id="cb1-257"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% (Cinelli and Hazlett 2020 give the formal bounds).</span></span>
<span id="cb1-258">grid_is(stated_assumptions)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-259">grid_is_not(formal_bound)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-260"></span>
<span id="cb1-261"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-262"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 9. The CQA score and the placement of the subject</span></span>
<span id="cb1-263"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-264"></span>
<span id="cb1-265">ranking_basis(residual)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-266">ranking_basis(residual_per_square_foot)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span>   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% the appraiser chooses</span></span>
<span id="cb1-267"></span>
<span id="cb1-268"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% CQA score: percent of the market area's sales with lower residuals, / 10.</span></span>
<span id="cb1-269">cqa_score(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">SubjectResidual</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Residuals</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Score</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-270">    count_lower(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Residuals</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">SubjectResidual</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Lower</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-271">    length(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Residuals</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-272">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Score</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Lower</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-273"></span>
<span id="cb1-274">count_lower([]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-275">count_lower([<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">R</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">|</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Rs</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">X</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-276">    count_lower(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Rs</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">X</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C0</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-277">    ( <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">R</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">X</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-&gt;</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C0</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C0</span> )<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-278"></span>
<span id="cb1-279">placement_evidence(mls_data)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-280">placement_evidence(mls_photographs)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-281"></span>
<span id="cb1-282">placement_rule(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> cqa<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-283">    place_on_all_observed_evidence_of_latent_state_not_on_what_travels_with_it)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-284">placement_rule(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> measured<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-285">    place_on_latent_value_beyond_what_the_measured_features_carry)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-286"></span>
<span id="cb1-287">placement_check(other_appraisers_in_the_area_find_it_reasonable)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-288"></span>
<span id="cb1-289"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-290"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 10. Dividing the residual does not change the conclusion (RCA Proof II)</span></span>
<span id="cb1-291"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-292"></span>
<span id="cb1-293"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% A division of a residual is a list of contributions that sum to it.</span></span>
<span id="cb1-294">valid_division(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Residual</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Parts</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> sum(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Parts</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">=:=</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Residual</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-295"></span>
<span id="cb1-296"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Total residual adjustment for a comparable: subject's residual minus the</span></span>
<span id="cb1-297"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% comparable's, whatever the division.</span></span>
<span id="cb1-298">residual_adjustment(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">SubjectParts</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">CompParts</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Adjustment</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-299">    sum(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">SubjectParts</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> sum(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">CompParts</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-300">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Adjustment</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">-</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">C</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-301"></span>
<span id="cb1-302">sum([]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-303">sum([<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">X</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">|</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Xs</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span> sum(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Xs</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S0</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S0</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">+</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">X</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-304"></span>
<span id="cb1-305"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-306"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% 11. What a report should state</span></span>
<span id="cb1-307"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-308"></span>
<span id="cb1-309">report_item(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> question_each_coefficient_answers)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-310">report_item(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-311">    for_each_adjustment_whether_listed_and_likely_direction_of_error)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-312">report_item(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> counterfactual_value_two_assumptions_ranges_and_value_over_them)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-313">report_item(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> basis_of_subject_placement_mls_data_and_photographs)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-314"></span>
<span id="cb1-315"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-316"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Self-test</span></span>
<span id="cb1-317"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% ---------------------------------------------------------------------------</span></span>
<span id="cb1-318"></span>
<span id="cb1-319">test(rca_assumed<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>           method_assumed(residual_constraint_approach))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-320">test(cqa_not_in_regression<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\+</span> eligible_for_primary_regression(cqa_score))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-321">test(latent_not_in_regression<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-322">     <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\+</span> (latent(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> eligible_for_primary_regression(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>)))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-323">test(ratings_explanatory<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>   affects_value_conclusion(latent_ratings<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-324">test(remodel_is_action<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>     variable_kind(recent_remodel<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> action))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-325">test(condition_is_state<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>    variable_kind(condition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> state))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-326">test(include_confounder<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-327">     include_variable(location_quality<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> total_effect<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> yes))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-328">test(exclude_mediator<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>      include_variable(condition<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> total_effect<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-329">test(living_area_two_causes<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-330">     ( often_endogenous_via(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> owner_choice)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-331">       often_endogenous_via(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> record_error) ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-332">test(record_error_direction<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-333">     record_error_effect(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> direction_not_shown_by_the_sales))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-334">test(no_cancelling<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>         removed_by_more_comparables(record_error<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> no))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-335">test(theil_product<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-336">     ( confounding_part(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.735</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">90904</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">P</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> abs(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">P</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">66814.44</span>) <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.01</span> ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-337">test(grid_cell<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>             grid_cell(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.75</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">90000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">77292</span>))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-338">test(cqa_score<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-339">     ( cqa_score(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30000</span>,<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8000</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15000</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">22000</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-340">       abs(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">S</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">-</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">6.6667</span>) <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.001</span> ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-341">test(proof_ii<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-342">     ( valid_division(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">40000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span>])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-343">       valid_division(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">40000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-344">       valid_division(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6000</span>])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-345">       valid_division(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15000</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12000</span>])<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-346">       residual_adjustment([<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6000</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">A1</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-347">       residual_adjustment([<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3000</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12000</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">A2</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-348">       <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">A1</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">=:=</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">A2</span> ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-349">test(two_rules<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-350">     ( placement_rule(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> measured<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\+</span> placement_rule(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_</span>) ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-351">test(one_answer_per_use<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-352">     ( findall(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">U</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> matters_for(living_area<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">U</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Us</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Us</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">==</span> [adjustment] ))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-353">test(pool_is_action<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>        matters_for(pool<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> counterfactual_value))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-354">test(financing_terms<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>       transaction_variable(financing_terms))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-355">test(not_a_cause<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>           matters_for(days_on_market<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> not_a_cause_of_value))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-356">test(district_awareness<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-357">     matters_only_for(school_district<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> questions_about_the_schools_themselves))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-358">test(physically_fixed<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span>      physically_fixed(terrain_fixed_view))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-359">test(view_risk<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-360">     carries_unrecorded_risk(view_across_buildable_land<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> impairment))<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-361"></span>
<span id="cb1-362">run_tests <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-363">    findall(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> test(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">_</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Names</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-364">    run_each(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Names</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Failed</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-365">    length(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Names</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-366">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Passed</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">-</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Failed</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-367">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Passed</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;"> of </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">N</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;"> tests passed</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">.'</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">nl</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-368">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Failed</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">=:=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-369"></span>
<span id="cb1-370">run_each([]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span>
<span id="cb1-371">run_each([<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Name</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">|</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Ns</span>]<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F0</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:-</span></span>
<span id="cb1-372">    test(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Goal</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-373">    ( <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">call</span>(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Goal</span>) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-&gt;</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F1</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F0</span></span>
<span id="cb1-374">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">FAIL</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write</span>(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Name</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">nl</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F1</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">is</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F0</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> )<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span></span>
<span id="cb1-375">    run_each(<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">Ns</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F1</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">F</span>)<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">.</span></span></code></pre></div></div>
<div class="prolog-output">
<p><em>?- run_tests</em></p>
<pre class="text"><code>23 of 23 tests passed.
</code></pre>
</div>
</section>
<section id="quiz" class="level2">
<h2 class="anchored" data-anchor-id="quiz">Quiz</h2>
<p>Fifteen questions on endogeneity, each with one best answer. The answers are printed upside down at the bottom of the page.</p>
<ol type="1">
<li><p>Under the definition of entry 009 (<em>Endogeneity</em>), a regressor is endogenous when it:</p>
<ol type="a">
<li>is measured with any error at all.</li>
<li>moves with the part of price the model does not explain, so that its coefficient does not recover the causal effect of interest.</li>
<li>moves with another feature in the model.</li>
<li>has a large standard error.</li>
</ol></li>
<li><p>Is living area an endogenous variable?</p>
<ol type="a">
<li>Always: it is chosen by owners.</li>
<li>Never: it is measured in square feet.</li>
<li>Only when it is taken from public records.</li>
<li>It depends on the model and the question: a variable is endogenous relative to a particular model and a particular causal question.</li>
</ol></li>
<li><p>In which of these does endogeneity <em>not</em> ordinarily affect the value conclusion?</p>
<ol type="a">
<li>A coefficient is read as an adjustment — as what the feature, by itself, is worth.</li>
<li>A value as if remodeled.</li>
<li>The expected price of a subject in its observed state, from comparables that cover its features.</li>
<li>A subject that reached the top of its market area’s condition by maintenance, priced from comparables that reached it by remodeling.</li>
</ol></li>
<li><p>According to the paper’s recurring test, a regressor deserves special scrutiny when:</p>
<ol type="a">
<li>its coefficient is larger than expected.</li>
<li>someone chose its value or measured it using information that also affects price but is not available to the model.</li>
<li>it has many missing values.</li>
<li>it was added to the model last.</li>
</ol></li>
<li><p>Actions (a recent remodel, an addition) and states (condition, quality) often become endogenous in different ways. How?</p>
<ol type="a">
<li>An action often through the owner’s choice; a state often through its measurement.</li>
<li>An action often through its measurement; a state often through the owner’s choice.</li>
<li>Both chiefly through simultaneity.</li>
<li>Neither can be endogenous.</li>
</ol></li>
<li><p>A feature the model leaves out biases the coefficient of a feature it includes only when the omitted feature:</p>
<ol type="a">
<li>is measured with error.</li>
<li>affects price.</li>
<li>moves with the included feature.</li>
<li>both affects price and moves with the included feature: the bias is the product of the two (Theil’s formula, entry 008, <em>Omitted Variable Bias</em>).</li>
</ol></li>
<li><p>In the simulated market, larger houses stand in better locations, and location quality is not recorded. The living-area rate is $437 a square foot, against a true $350. Why?</p>
<ol type="a">
<li>The living-area rate carries part of the effect of the unrecorded location.</li>
<li>Recorded living area differs from the actual area.</li>
<li>The market pays more for large houses.</li>
<li>Chance in the simulated draw.</li>
</ol></li>
<li><p>In the simulated market condition falls with age, and the model leaves condition out. The age rate is −$2,528 a year, against a true −$800. Why?</p>
<ol type="a">
<li>Old houses sell in a different market.</li>
<li>Age acts partly as a proxy for condition, and its rate absorbs condition’s effect.</li>
<li>Age is measured with error.</li>
<li>The price acts back on age.</li>
</ol></li>
<li><p>Recorded living area runs high in some localities of the market area and low in others. Its effect on the living-area rate:</p>
<ol type="a">
<li>always makes the rate smaller.</li>
<li>disappears with enough sales.</li>
<li>cannot be read from the sales: it may make the rate larger or smaller, and it also reaches the rates of features that move with living area.</li>
<li>affects only the intercept.</li>
</ol></li>
<li><p>A model records both the neighborhood and the school district, and MARS keeps a price difference for some of the districts. What does that tell the appraiser?</p>
<ol type="a">
<li>Every district in the area affects price by the same amount.</li>
<li>The district terms cannot be used, because district and neighborhood are correlated.</li>
<li>MARS found that keeping a district term improved the model enough to survive its selection procedure.</li>
<li>The schools are of higher quality in those districts.</li>
</ol></li>
<li><p>Days on market, list price, concessions and seller credits should ordinarily not be read as causes of value or used to estimate an adjustment, because:</p>
<ol type="a">
<li>they are not recorded in the MLS.</li>
<li>they are always small.</li>
<li>they are set with price-relevant information, determined together with the price, or outcomes of the same marketing process.</li>
<li>USPAP prohibits their use.</li>
</ol></li>
<li><p>In the definition of entry 009 (<em>Endogeneity</em>), “the part of price the model does not explain” is:</p>
<ol type="a">
<li>the difference between a house’s price and the average price of houses with the same recorded features.</li>
<li>the price minus what the causal relationship says the price should be — the structural error.</li>
<li>the sampling error of the regression.</li>
<li>the concessions in the sale.</li>
</ol></li>
<li><p>Why can a model whose coefficients are not causal effects still estimate the market value of a property as it is?</p>
<ol type="a">
<li>Because MARS removes endogeneity.</li>
<li>It cannot; every coefficient must be causal.</li>
<li>Because endogeneity only affects counterfactual values in court.</li>
<li>Because the target is the expected price given the property’s observed features (entry 007, <em>Conditional Expectation</em>). The subject need not closely resemble any single comparable, but the sales must cover its features well enough; where few sales share its combination of features, the estimate rests on extrapolation and is less reliable.</li>
</ol></li>
<li><p>Two houses have the same recorded view: one is protected by terrain, the other looks across a neighboring vacant lot on which someone could build. Which statement is correct?</p>
<ol type="a">
<li>The second view carries an unrecorded risk of impairment, so the two should not be treated as the same feature.</li>
<li>Both views are exogenous (opposite of endogenous) because they are physically fixed.</li>
<li>The two views are identical for valuation.</li>
<li>A view is a transaction variable.</li>
</ol></li>
<li><p>Why are repeat sales of the same house particularly strong evidence?</p>
<ol type="a">
<li>Because the second price is always higher.</li>
<li>Because they need no adjustment for market change.</li>
<li>Because the house’s own unchanging, unrecorded qualities cancel, provided the market change over the interval, and any other change to the house or its surroundings, can be accounted for.</li>
<li>Because they come from a selected set.</li>
</ol></li>
</ol>
<div class="quiz-answers" style="transform: rotate(180deg); margin-top: 4rem; padding-top: 1rem; border-top: 1px solid currentColor; font-size: 0.9em;">
<p><strong>Answers.</strong><br>
1 b — “The definition”, entry 009 (<em>Endogeneity</em>).<br>
2 d — “The definition”.<br>
3 c — “When it affects the sale price and market value”.<br>
4 b — “The definition”, the recurring test.<br>
5 a — “Two kinds of variable: actions and states”.<br>
6 d — “Counterfactual values”; entry 008 (<em>Omitted Variable Bias</em>).<br>
7 a — Cause 1, “States the owner can choose: living area”.<br>
8 b — Cause 1, “Age, through what happened since”.<br>
9 c — Cause 2, features measured with error.<br>
10 c — “School district and neighborhood”: keeping a term is MARS’s model selection, not a significance test.<br>
11 c — Cause 3, transaction variables.<br>
12 b — “The definition”; (a) is the error of entry 007 (<em>Conditional Expectation</em>), which averages zero by construction.<br>
13 d — “When it affects the sale price and market value”.<br>
14 a — “The variables, summarized”: physical fixity does not make a feature exogenous.<br>
15 c — “The seller’s question”, repeat sales.</p>
</div>


<!-- -->

</section>

 ]]></description>
  <category>Foundations</category>
  <category>endogeneity</category>
  <category>regression</category>
  <category>RCA</category>
  <guid>https://research.valuation-engineer.com/foundations/property-variables-endogeneity/</guid>
  <pubDate>Sun, 04 Oct 2026 07:00:00 GMT</pubDate>
  <media:content url="https://research.valuation-engineer.com/foundations/property-variables-endogeneity/thumbnail.svg" medium="image" type="image/svg+xml"/>
</item>
</channel>
</rss>
