{{ lang.subject_prose_intro }} {{ v.subject.address }}, {{ lang.parcel_label|lower }} {{ v.subject.parcel_number }} (Block {{ v.subject.block }}, Lot {{ v.subject.lot }}). {{ lang.subject_prose_type }} {{ v.subject.use_definition or v.subject.use_code }}{{ lang.subject_prose_with }} {{ v.subject.bedrooms }} {{ lang.bedrooms_word }} {{ lang.and_word }} {{ v.subject.bathrooms }} {{ lang.bathrooms_word }}, {{ "{:,.0f}".format(v.subject.property_area) }} {{ lang.sqft_word }} {{ lang.of_living_space }}{{ lang.subject_prose_lot }} {{ "{:,.0f}".format(v.subject.lot_area) }} {{ lang.sqft_word }}. {{ lang.built_in }} {{ v.subject.year_built }}. {{ lang.located_in }} {{ v.subject.assessor_neighborhood or v.subject.analysis_neighborhood }}.
{% elif style.subject_layout == "two_column" %}{{ lang.address_label }}: {{ v.subject.address }}
{{ lang.parcel_label }}: {{ v.subject.parcel_number }}
{{ lang.type_label }}: {{ v.subject.use_definition or v.subject.use_code }}
{{ lang.neighborhood_label }}: {{ v.subject.assessor_neighborhood or v.subject.analysis_neighborhood }}
{{ lang.year_built_label }}: {{ v.subject.year_built }}
{{ lang.bedrooms_label }}: {{ v.subject.bedrooms }}
{{ lang.bathrooms_label }}: {{ v.subject.bathrooms }}
{{ lang.living_area_label }}: {{ "{:,.0f}".format(v.subject.property_area) }} sqft
{{ lang.lot_area_label }}: {{ "{:,.0f}".format(v.subject.lot_area) }} sqft
{{ v.subject.address }} — {{ v.subject.use_definition or v.subject.use_code }} • {{ v.subject.bedrooms }}bd/{{ v.subject.bathrooms }}ba • {{ "{:,.0f}".format(v.subject.property_area) }} sqft • {{ "{:,.0f}".format(v.subject.lot_area) }} sqft lot • Built {{ v.subject.year_built }} • {{ v.subject.assessor_neighborhood or v.subject.analysis_neighborhood }} • {{ lang.parcel_label }} {{ v.subject.parcel_number }}
{% else %}| {{ lang.field_label }} | {{ lang.value_label }} |
|---|---|
| {{ lang.address_label }} | {{ v.subject.address }} |
| {{ lang.parcel_label }} | {{ v.subject.parcel_number }} (Block {{ v.subject.block }}, Lot {{ v.subject.lot }}) |
| {{ lang.type_label }} | {{ v.subject.use_definition or v.subject.use_code }} |
| {{ lang.bedrooms_label }} | {{ v.subject.bedrooms }} |
| {{ lang.bathrooms_label }} | {{ v.subject.bathrooms }} |
| {{ lang.living_area_label }} | {{ "{:,.0f}".format(v.subject.property_area) }} sqft |
| {{ lang.lot_area_label }} | {{ "{:,.0f}".format(v.subject.lot_area) }} sqft |
| {{ lang.year_built_label }} | {{ v.subject.year_built }} |
| {{ lang.neighborhood_label }} | {{ v.subject.assessor_neighborhood or v.subject.analysis_neighborhood }} |
| {{ lang.component_label }} | {{ lang.value_label }} |
|---|---|
| {{ lang.land_label }} | ${{ "{:,.0f}".format(v.subject.assessed_land_value) }} |
| {{ lang.improvements_label }} | ${{ "{:,.0f}".format(v.subject.assessed_improvement_value) }} |
| {{ lang.total_assessed_label }} | ${{ "{:,.0f}".format(v.assessed_value) }} |
| {{ lang.assessed_per_sqft_label }} | ${{ "{:,.0f}".format(v.subject.assessed_price_per_sqft) if v.subject.assessed_price_per_sqft else "N/A" }} |
{{ v.rationale_summary }}
| {{ lang.field_label }} | {{ lang.value_label }} |
|---|---|
| {{ lang.sale_price_label }} | ${{ "{:,.0f}".format(comp.sale_price) }} |
| {{ lang.sale_date_label }} | {{ comp.sale_date.strftime(lang.date_format) if comp.sale_date else "N/A" }} |
| {{ lang.bed_bath_label }} | {{ comp.bedrooms }} / {{ comp.bathrooms }} |
| {{ lang.living_area_label }} | {{ "{:,.0f}".format(comp.property_area) }} sqft |
| {{ lang.lot_area_label }} | {{ "{:,.0f}".format(comp.lot_area) }} sqft |
| {{ lang.distance_label }} | {{ "{:.2f}".format(comp.distance_miles) }} {{ lang.miles_word }} |
| {{ lang.raw_psf_label }} | ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }} |
| {{ lang.adj_psf_label }} | ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }} |
{{ lang.adjustments_label }}:
{{ lang.no_adjustments }}
{% endif %}{{ lang.prose_comp_sold }} ${{ "{:,.0f}".format(comp.sale_price) }} {{ lang.prose_comp_on }} {{ comp.sale_date.strftime(lang.date_format) if comp.sale_date else "N/A" }}. {{ lang.prose_comp_property }} {{ "{:,.0f}".format(comp.property_area) }} {{ lang.sqft_word }}{{ lang.subject_prose_with }} {{ comp.bedrooms }} {{ lang.bedrooms_word }} {{ lang.and_word }} {{ comp.bathrooms }} {{ lang.bathrooms_word }}{% if comp.lot_area %}, {{ lang.on_a_word }} {{ "{:,.0f}".format(comp.lot_area) }} {{ lang.sqft_word }} {{ lang.lot_word }}{% endif %}.{% if comp.distance_miles is not none %} {{ lang.prose_comp_located }} {{ "{:.2f}".format(comp.distance_miles) }} {{ lang.miles_word }} {{ lang.from_subject }}.{% endif %} {{ lang.prose_comp_raw }} ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }}/sqft{{ lang.prose_comp_adjusted }} ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }}/sqft.
{% if comp.adjustments %}{{ lang.adjustments_label }}: {% for adj in comp.adjustments %}{{ adj.description }} ({{ "{:+.0f}".format(adj.amount_per_sqft) }}){% if not loop.last %}; {% endif %}{% endfor %}.
{% endif %}| {{ lang.address_label }} | {{ lang.sale_price_label }} | {{ lang.sale_date_label }} | Sqft | Bd/Ba | {{ lang.raw_psf_label }} | {{ lang.adj_psf_label }} |
|---|---|---|---|---|---|---|
| {{ comp.address }} | ${{ "{:,.0f}".format(comp.sale_price) }} | {{ comp.sale_date.strftime('%m/%d/%y') if comp.sale_date else "N/A" }} | {{ "{:,.0f}".format(comp.property_area) }} | {{ comp.bedrooms }}/{{ comp.bathrooms }} | ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }} | ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }} |
{{ comp.address }}: {% for adj in comp.adjustments %}{{ adj.description }} ({{ "{:+.0f}".format(adj.amount_per_sqft) }}){% if not loop.last %}; {% endif %}{% endfor %}.
{% endif %}{% endfor %} {# ── 4. CARDS ── #} {% elif style.layout_mode == "cards" %} {% for comp in v.selected_comps %}${{ "{:,.0f}".format(comp.sale_price) }} — {{ comp.sale_date.strftime(lang.date_format) if comp.sale_date else "N/A" }}
{{ comp.bedrooms }}bd / {{ comp.bathrooms }}ba • {{ "{:,.0f}".format(comp.property_area) }} sqft{% if comp.lot_area %} • {{ "{:,.0f}".format(comp.lot_area) }} sqft lot{% endif %}{% if comp.distance_miles is not none %} • {{ "{:.2f}".format(comp.distance_miles) }} mi{% endif %}
{{ lang.raw_psf_label }}: ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }} → {{ lang.adj_psf_label }}: ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }}
{% for adj in comp.adjustments %}{{ adj.description }}: {{ "{:+.0f}".format(adj.amount_per_sqft) }}{% if not loop.last %} • {% endif %}{% endfor %}
{% endif %}{{ lang.adjustments_label }}: {% for adj in comp.adjustments %}{{ adj.description }} ({{ "{:+.0f}".format(adj.amount_per_sqft) }}){% if not loop.last %}, {% endif %}{% endfor %}
{% endif %}{{ comp_label(loop.index) }} {{ comp.address }}
{{ lang.sale_price_label }}: ${{ "{:,.0f}".format(comp.sale_price) }}
{{ lang.sale_date_label }}: {{ comp.sale_date.strftime(lang.date_format) if comp.sale_date else "N/A" }}
{{ lang.bed_bath_label }}: {{ comp.bedrooms }} / {{ comp.bathrooms }}
{{ lang.living_area_label }}: {{ "{:,.0f}".format(comp.property_area) }} sqft
{% if comp.lot_area %}{{ lang.lot_area_label }}: {{ "{:,.0f}".format(comp.lot_area) }} sqft
{% endif %}
{% if comp.distance_miles is not none %}{{ lang.distance_label }}: {{ "{:.2f}".format(comp.distance_miles) }} {{ lang.miles_word }}
{% endif %}
{{ lang.raw_psf_label }}: ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }}
{{ lang.adj_psf_label }}: ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }}
{{ lang.adjustments_label }}: {% for adj in comp.adjustments %}{{ adj.description }} ({{ "{:+.0f}".format(adj.amount_per_sqft) }} $/sqft){% if not loop.last %}; {% endif %}{% endfor %}
{% endif %}{{ comp_label(loop.index) }} {{ comp.address }} — ${{ "{:,.0f}".format(comp.sale_price) }} ({{ comp.sale_date.strftime('%m/%y') if comp.sale_date else "?" }}) — {{ "{:,.0f}".format(comp.property_area) }}sf, {{ comp.bedrooms }}/{{ comp.bathrooms }} — Raw ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "?" }}/sf → Adj ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "?" }}/sf{% if comp.adjustments %} [{% for adj in comp.adjustments %}{{ "{:+.0f}".format(adj.amount_per_sqft) }}{% if not loop.last %}, {% endif %}{% endfor %}]{% endif %}
{% endfor %} {# ── 8. BULLET LIST ── #} {% elif style.layout_mode == "bullet_list" %} {% for comp in v.selected_comps %}({{ loop.index }}) {{ comp.address }} sold for ${{ "{:,.0f}".format(comp.sale_price) }} on {{ comp.sale_date.strftime(lang.date_format) if comp.sale_date else "N/A" }}. This {{ "{:,.0f}".format(comp.property_area) }}-sqft property has {{ comp.bedrooms }} {{ lang.bedrooms_word }} and {{ comp.bathrooms }} {{ lang.bathrooms_word }}{% if comp.lot_area %} on a {{ "{:,.0f}".format(comp.lot_area) }}-sqft {{ lang.lot_word }}{% endif %}.{% if comp.distance_miles is not none %} It is {{ "{:.2f}".format(comp.distance_miles) }} {{ lang.miles_word }} {{ lang.from_subject }}.{% endif %} The raw price per square foot is ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "N/A" }}{% if comp.adjustments %}, with adjustments of {% for adj in comp.adjustments %}{{ "{:+.0f}".format(adj.amount_per_sqft) }} ({{ adj.description|lower }}){% if not loop.last %}, {% endif %}{% endfor %}{% endif %}, yielding an adjusted price of ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "N/A" }}/sqft.
${{ "{:,.0f}".format(comp.sale_price) }} • {{ comp.sale_date.strftime('%m/%d/%y') if comp.sale_date else "?" }}
{{ comp.bedrooms }}bd/{{ comp.bathrooms }}ba • {{ "{:,.0f}".format(comp.property_area) }}sf{% if comp.distance_miles is not none %} • {{ "{:.1f}".format(comp.distance_miles) }}mi{% endif %}
Raw: ${{ "{:,.0f}".format(comp.raw_price_per_sqft) if comp.raw_price_per_sqft else "?" }} → Adj: ${{ "{:,.0f}".format(comp.adjusted_price_per_sqft) if comp.adjusted_price_per_sqft else "?" }}
{% for adj in comp.adjustments %}{{ "{:+.0f}".format(adj.amount_per_sqft) }} {{ adj.description|lower }}{% if not loop.last %}; {% endif %}{% endfor %}
{% endif %}| {{ lang.metric_label }} | {{ lang.value_label }} |
|---|---|
| {{ lang.median_psf_label }} | ${{ "{:,.0f}".format(v.median_adjusted_price_per_sqft) }} |
| {{ lang.subject_area_label }} | {{ "{:,.0f}".format(v.subject.property_area) }} sqft |
| {{ lang.estimated_mv_label }} | ${{ "{:,.0f}".format(v.estimated_market_value) }} |
| {{ lang.current_av_label }} | ${{ "{:,.0f}".format(v.assessed_value) }} |
| {{ lang.overassessment_label }} | ${{ "{:,.0f}".format(v.assessed_value - v.estimated_market_value) }} |
{{ v.methodology_notes }}
{{ lang.methodology_selection }}
{{ lang.methodology_median }}