Implementation
When users need to perform comparable sales calculations, use the Python calculator in the Comparable_Sales_Analysis directory.
Calculator Tool
Location: ${CLAUDE_PLUGIN_ROOT}/skills/comparable-sales-adjustment-methodology/scripts/Comparable_Sales_Analysis/
Main Files:
comparable_sales_calculator.py - Main calculator with adjustment grid construction
paired_sales_analyzer.py - Paired sales analysis tool
validate_comparables.py - Input validation utility
adjustments/ - Modular adjustment calculations by category
Capabilities:
- Complete 6-stage adjustment hierarchy (property rights through physical characteristics)
- 49 physical characteristic adjustments across 7 categories
- Property-type specific logic (industrial vs office vs retail)
- Statistical validation (gross/net adjustment limits, weighting)
- USPAP 2024 and CUSPAP 2024 compliant
- Comprehensive JSON output with adjustment details
Input Format
JSON structure (see sample_inputs/sample_industrial_comps.json or sample_inputs/sample_industrial_comps_ENHANCED.json in the Comparable_Sales_Analysis directory for complete examples):
{
"subject_property": {
"property_rights": "fee_simple",
"property_type": "industrial",
"lot_size_acres": 10.0,
"building_sf": 50000,
"clear_height_feet": 32,
"loading_docks_dock_high": 6,
"condition": "good"
},
"comparable_sales": [
{
"address": "123 Industrial Way",
"sale_price": 4500000,
"sale_date": "2024-03-15",
"lot_size_acres": 8.0,
"building_sf": 45000,
"clear_height_feet": 28
}
],
"market_parameters": {
"cap_rate": 7.0,
"appreciation_rate_annual": 3.5,
"valuation_date": "2025-01-15",
"lot_adjustment_per_acre": 15000,
"building_size_adjustment_per_sf": 2.0,
"clear_height_value_per_foot_per_sf": 1.5
}
}
Usage
Command-line:
cd ${CLAUDE_PLUGIN_ROOT}/skills/comparable-sales-adjustment-methodology/scripts/Comparable_Sales_Analysis/
python comparable_sales_calculator.py sample_inputs/sample_industrial_comps.json --output results.json --verbose
When assisting users:
- Gather property data: Subject property characteristics, comparable sales, market parameters
- Create JSON input file: Use sample templates as starting point
- Run calculator: Execute with appropriate input file
- Analyze results: Review adjustment grid, validation flags, reconciled value
- Document findings: Explain adjustment methodology and value conclusion
Output Format
JSON output includes:
- comparable_results: Array of adjustment grids for each comparable
adjustment_stages: Sequential adjustments (1-6)
all_adjustments: Detailed list of 49 physical characteristic adjustments
adjustments_by_category: Grouped by Land, Site, Industrial, Office, etc.
validation: Gross/net adjustment percentages, status (ACCEPTABLE/CAUTION/REJECT)
weighting: Statistical weight based on adjustment magnitude
- final_reconciliation: Weighted average value, acceptable comparables range
- compliance: USPAP/CUSPAP/IVS compliance flags
Sample Files
Located in Comparable_Sales_Analysis/sample_inputs/:
sample_industrial_comps.json: Original format (backward compatible)
sample_industrial_comps_ENHANCED.json: Enhanced format with all 49 adjustment fields
sample_office_class_a.json, sample_office_class_b.json, sample_office_class_c.json: Office property examples
Validated Coverage
Unit tested (17 tests, 100% passing):
- Property rights adjustments (fee simple, leasehold)
- Financing terms (cash, seller VTB)
- Market conditions (compound appreciation, time adjustments)
- Land characteristics (lot size, topography, flood zone, environmental)
- Industrial building (clear height, loading docks, column spacing)
- Office building (building class, parking ratio, floor plate efficiency)
- Statistical validation and compliance flags
Adjustment Hierarchy and Sequence
Adjustments must be applied in proper sequence because some adjustments affect the base from which subsequent adjustments are calculated.
Proper Adjustment Sequence
1. Property Rights
- Adjust comparable sale to fee simple equivalent if sold as leasehold, life estate, or easement-burdened
- Why first: Property rights affect fundamental ownership value before any other characteristics matter
Example:
- Comparable sale: Leasehold interest (land lease $50K/year, 30 years remaining)
- Sale price: $1,200,000 (leasehold value)
- Ground rent capitalized: $50K ÷ 5% = $1,000,000 (land value)
- Fee simple equivalent: $1,200,000 + $1,000,000 = $2,200,000
- Adjustment: +$1,000,000 (+83%)
2. Financing Terms
- Adjust to cash equivalent if seller financing at below-market rates
- Why second: Non-market financing inflates sale price, must remove before analyzing property characteristics
Example:
- Sale price: $800,000
- Financing: Seller VTB at 2% interest (market rate 6%)
- Present value of below-market financing benefit: $120,000
- Cash equivalent: $800,000 - $120,000 = $680,000
- Adjustment: -$120,000 (-15%)
3. Conditions of Sale
- Adjust for non-arm's length transactions, duress, insufficient marketing, special motivations
- Why third: Must establish market-based transaction before analyzing market conditions
Example:
- Related party sale (tenant purchases from landlord)
- Sale price: $500,000
- Market evidence suggests 10% discount for motivated seller
- Arm's length equivalent: $500,000 ÷ 0.90 = $556,000
- Adjustment: +$56,000 (+11%)
4. Market Conditions/Time
- Adjust for market appreciation/depreciation between comparable sale date and valuation date
- Why fourth: Establishes current market value before adjusting for property-specific differences
Example:
- Sale date: 18 months prior to valuation date
- Market trend: +2.5% per year appreciation
- Sale price (adjusted for financing): $680,000
- Time adjustment: $680,000 × (1.025^1.5) = $706,000
- Adjustment: +$26,000 (+3.8%)
5. Location
- Adjust for micro-market differences, accessibility, visibility, neighboring uses
- Why fifth: Location affects value independent of physical property characteristics
Example:
- Subject: Highway frontage, high visibility
- Comparable: Interior location, low visibility
- Market evidence: Highway frontage commands 15% premium
- Adjusted price after time: $706,000
- Location adjustment: $706,000 × 1.15 = $812,000
- Adjustment: +$106,000 (+15%)
6. Physical Characteristics
- Adjust for size, shape, topography, servicing, improvements, condition
- Why last: Physical differences adjusted after establishing market location value
Size adjustment example:
- Subject: 10 acres
- Comparable: 15 acres (after all prior adjustments: $812,000)
- Size adjustment: -$3,000/acre for each acre over 10 (economies of scale)
- Size adjustment: -$3,000 × 5 acres = -$15,000
- Adjusted price: $812,000 - $15,000 = $797,000 ($79,700/acre)
Final adjusted sale price: $797,000 (compared to subject property)
Quantifying Adjustments
Multiple methodologies for deriving adjustment amounts, applied based on data availability and adjustment type.
Paired Sales Analysis (Isolation Method)
Principle: Identify two sales that differ in only ONE characteristic, isolate the value impact of that characteristic.
Ideal paired sales criteria:
- Sold within 6-12 months of each other (minimal time adjustment)
- Same location/micro-market
- Same highest and best use
- Only difference: The characteristic being analyzed
Example (size adjustment):
Sale A:
- 10 acres, industrial zoned, highway frontage, no improvements
- Sale date: June 2024
- Sale price: $1,200,000 ($120,000/acre)
Sale B:
- 20 acres, industrial zoned, highway frontage (same road), no improvements
- Sale date: July 2024
- Sale price: $2,200,000 ($110,000/acre)
Analysis:
- First 10 acres: $120,000/acre
- Second 10 acres: $110,000/acre
- Economies of scale: $10,000/acre reduction for larger parcel
- Size adjustment factor: For parcels >10 acres, deduct $10,000/acre for each acre over 10
Application to subject comparable:
- Comparable: 15 acres at $115,000/acre = $1,725,000
- Subject: 10 acres
- Adjustment: -$10,000/acre × 5 acres = -$50,000 (comparable is larger, adjust down)
Example (highway frontage adjustment):
Sale C:
- 5 acres, industrial, highway frontage, no improvements
- Sale price: $750,000 ($150,000/acre)
Sale D:
- 5 acres, industrial, interior location (same submarket, 200m from highway), no improvements
- Sale price: $600,000 ($120,000/acre)
Analysis:
- Highway frontage premium: $150,000 - $120,000 = $30,000/acre (20% premium)
Statistical Regression (Hedonic Price Modeling)
Principle: Use multiple regression to isolate value contribution of multiple characteristics simultaneously when sufficient sales data available (typically 20+ transactions).
Regression model:
Linear model:
Price = β₀ + β₁(Acres) + β₂(Highway Frontage) + β₃(Servicing) + β₄(Zoning) + β₅(Age) + ε
Variables:
- Price: Sale price (dependent variable)
- Acres: Land area
- Highway Frontage: Dummy variable (1 if highway frontage, 0 if not)
- Servicing: Dummy variable (1 if full services, 0 if partial/none)
- Zoning: Categorical (industrial=1, commercial=2, residential=3, etc.)
- Age: Years since construction (for improved properties)
- ε: Error term
Example output (industrial land sales regression):
| Variable |
Coefficient (β) |
Std Error |
t-stat |
p-value |
| Constant (β₀) |
$250,000 |
$45,000 |
5.56 |
<0.001 |
| Acres (β₁) |
$95,000 |
$8,000 |
11.88 |
<0.001 |
| Highway Frontage (β₂) |
$180,000 |
$35,000 |
5.14 |
<0.001 |
| Servicing (β₃) |
$120,000 |
$28,000 |
4.29 |
0.002 |
| Zoning (β₄) |
$60,000 |
$20,000 |
3.00 |
0.008 |
Model fit: R² = 0.84 (model explains 84% of price variation)
Interpretation:
- β₁ ($95,000/acre): Each acre adds $95,000 to property value
- β₂ ($180,000): Highway frontage adds $180,000 (controlling for size, servicing, zoning)
- β₃ ($120,000): Full servicing adds $120,000 vs. partial/no services
- β₄ ($60,000): Each zoning category step adds $60,000
Application to comparables:
Comparable sale:
- 8 acres, highway frontage, full servicing, industrial zoning
- Predicted value: $250K + (8 × $95K) + $180K + $120K + (1 × $60K) = $1,370,000
- Actual sale price: $1,420,000
- Residual: +$50,000 (+3.6%) → within acceptable range
Adjustment derivation:
- Subject: 10 acres, no highway frontage, full servicing, industrial
- Comparable: 8 acres, highway frontage, full servicing, industrial
- Size adjustment: (10 - 8) × $95,000 = +$190,000 (subject is larger)
- Highway frontage adjustment: -$180,000 (comparable has frontage, subject does not)
- Net adjustment: +$190,000 - $180,000 = +$10,000 (+0.7%)
Cost Approach (Depreciated Replacement Cost)
Principle: Quantify adjustment based on cost to add/remove characteristic, less depreciation.
Use cases:
- Physical improvements (buildings, paving, site works)
- Special features (solar panels, irrigation systems)
- Superior/inferior quality (finishes, systems)
Example (building adjustment):
Subject: Vacant industrial land
Comparable: Industrial land with 5,000 sq ft warehouse (built 2015, good condition)
Replacement cost analysis:
- New construction cost: 5,000 sq ft × $150/sq ft = $750,000
- Depreciation (physical, functional, economic):
- Age: 10 years, 50-year life → 20% depreciation
- Functional obsolescence: None (adequate for industrial use)
- Economic obsolescence: None (market stable)
- Total depreciation: 20%
- Depreciated value: $750,000 × (1 - 0.20) = $600,000
- Adjustment: -$600,000 (comparable has building, subject does not)
Example (superior finishes):
Subject: Office building, standard finishes (carpet, drywall, drop ceiling)
Comparable: Office building, upgraded finishes (hardwood, millwork, high ceilings)
Cost differential:
- Hardwood vs. carpet: $15/sq ft
- Millwork vs. drywall: $25/sq ft (walls)
- High ceilings vs. drop ceiling: $10/sq ft
- Total: $50/sq ft for 10,000 sq ft = $500,000 new
- Depreciation (5 years, good condition): 10%
- Depreciated differential: $500,000 × 90% = $450,000
- Adjustment: -$450,000 (comparable is superior, adjust down)
Income Approach (Rental Differential Capitalization)
Principle: Quantify adjustment based on income differential capitalized to value.
Use cases:
- Location differences affecting rent
- Size/layout differences affecting rent per sq ft
- Lease-up status (vacant vs. occupied)
Example (location adjustment for investment property):
Subject: Industrial building, Location A, achievable rent $12/sq ft
Comparable: Industrial building, Location B, achievable rent $10/sq ft
Rental differential:
- Subject location commands $2/sq ft higher rent
- Building size: 50,000 sq ft
- Annual rent differential: 50,000 × $2 = $100,000/year
- Capitalization rate: 7%
- Location value differential: $100,000 ÷ 0.07 = $1,428,571
- Adjustment: +$1,428,571 (comparable in inferior location, adjust up to match subject)
Example (vacancy adjustment):
Subject: 100% leased industrial building
Comparable: 60% vacant industrial building (requires lease-up)
Lease-up cost and delay:
- Vacant space: 40,000 sq ft
- Lease-up period: 12 months
- Lost rent: 40,000 sq ft × $12/sq ft = $480,000
- Tenant improvements: 40,000 sq ft × $5/sq ft = $200,000
- Leasing commissions: $480,000 × 5% = $24,000
- Total lease-up cost: $480,000 + $200,000 + $24,000 = $704,000
- Adjustment: +$704,000 (comparable requires lease-up cost, adjust up)
Professional Judgment (When Market Data Insufficient)
Principle: Apply reasoned judgment when paired sales, regression, cost, or income methods unavailable or unreliable.
Requirements for defensible judgment:
- Document reasoning and assumptions
- Apply conservative adjustments (when uncertain, adjust less rather than more)
- Sensitivity test (vary adjustment, assess impact on conclusion)
- Seek market participant input (interviews with brokers, developers, buyers)
Example (unique property characteristic):
Subject: Industrial land with rail spur (active connection)
Comparable: Industrial land without rail access
Analysis:
- No paired sales of properties with/without rail spurs in market
- Cost approach: Rail spur installation cost $400,000 (new), depreciated 30% = $280,000
- Income approach: Rail-served industrial rents $1-$2/sq ft higher (insufficient data to reliably capitalize)
- Market interviews: Brokers indicate rail access worth "5-10% premium for large industrial users"
- Professional judgment: Apply $300,000 adjustment (consistent with depreciated cost, midpoint of broker estimates)
- Adjustment: +$300,000 (comparable lacks rail spur, adjust up)
Documentation:
"Rail spur adjustment of $300,000 derived from depreciated replacement cost ($280,000) and market interviews indicating 5-10% premium. Comparable sale price $3.2M × 8% = $256,000 to $320,000 range. Adopted $300,000 as midpoint, supported by cost approach."
Validation and Reconciliation
Testing adjustment grids for reasonableness and reliability before forming value conclusion.
Gross Adjustment Limits (Cumulative % Tests)
Principle: Total absolute adjustments should not exceed reasonable limits, or comparable may not be truly comparable.
Industry guidelines:
- Total gross adjustment: Sum of absolute values of all adjustments ÷ sale price
- Acceptable range: <25-30% gross adjustment
- Caution range: 30-40% (comparable is marginal, weight accordingly)
- Reject: >40% (not truly comparable, do not use)
Example:
Comparable Sale: $1,500,000
| Adjustment |
Amount |
% |
| Financing |
-$50,000 |
-3.3% |
| Time |
+$75,000 |
+5.0% |
| Location |
+$150,000 |
+10.0% |
| Size |
-$30,000 |
-2.0% |
| Servicing |
+$60,000 |
+4.0% |
| Condition |
-$25,000 |
-1.7% |
| Net adjustment |
+$180,000 |
+12.0% |
| Gross adjustment |
$390,000 |
26.0% |
Analysis:
- Gross adjustment: 26.0% (acceptable, <30%)
- Net adjustment: +12.0% (moderate)
- Conclusion: Comparable is acceptable, weight normally
Gross adjustment calculation:
Gross = |−$50K| + |+$75K| + |+$150K| + |−$30K| + |+$60K| + |−$25K| = $390,000
Gross % = $390,000 ÷ $1,500,000 = 26.0%
Net Adjustment Patterns (Direction and Magnitude)
Principle: Net adjustments (sum of positive and negative) should be consistent across comparable sales.
Consistency test:
- If all comparables require large positive net adjustments → Comparables are inferior to subject
- If all comparables require large negative net adjustments → Comparables are superior to subject
- If comparables have mixed net adjustments (some +, some -) → Good bracketing of subject
Ideal pattern:
- 3-6 comparable sales
- Net adjustments ranging from -15% to +15%
- Mix of inferior and superior comparables
- Result: Adjusted sale prices cluster in narrow range (±5-10% of midpoint)
Example (good bracketing):
| Comp |
Sale Price |
Net Adj |
Adj % |
Adjusted Price |
$/Acre |
| 1 |
$1,200,000 |
+$120,000 |
+10% |
$1,320,000 |
$132,000 |
| 2 |
$1,450,000 |
-$90,000 |
-6% |
$1,360,000 |
$136,000 |
| 3 |
$1,320,000 |
+$45,000 |
+3% |
$1,365,000 |
$136,500 |
| 4 |
$1,550,000 |
-$180,000 |
-12% |
$1,370,000 |
$137,000 |
Analysis:
- Adjusted range: $132,000-$137,000/acre (3.8% spread)
- Mix of net adjustments: +10%, -6%, +3%, -12% (good bracketing)
- Reconciled value: $135,000/acre (midpoint, weight Comp 2 and 3 most heavily as smallest net adjustments)
Example (poor pattern - all inferior):
| Comp |
Sale Price |
Net Adj |
Adj % |
Adjusted Price |
| 1 |
$900,000 |
+$350,000 |
+39% |
$1,250,000 |
| 2 |
$1,050,000 |
+$280,000 |
+27% |
$1,330,000 |
| 3 |
$980,000 |
+$310,000 |
+32% |
$1,290,000 |
Analysis:
- All comparables require large positive adjustments (27-39%)
- Problem: Comparables are significantly inferior to subject, adjusted prices unreliable
- Solution: Search for superior comparables to balance, or widen search area
Statistical Testing (R-squared, Coefficient Significance)
Principle: When using regression to derive adjustments, validate model fit and coefficient reliability.
R-squared (Coefficient of Determination):
- R² = 0.90-1.0: Excellent fit (90-100% of price variation explained)
- R² = 0.70-0.89: Good fit (acceptable for appraisal use)
- R² = 0.50-0.69: Moderate fit (use with caution, document limitations)
- R² <0.50: Poor fit (model unreliable, do not use)
Coefficient significance (p-value):
- p-value <0.05: Statistically significant at 95% confidence (variable has real impact on price)
- p-value 0.05-0.10: Marginally significant (include with caution)
- p-value >0.10: Not significant (variable does not reliably impact price, exclude from model)
Example regression output:
| Variable |
Coefficient |
p-value |
Interpretation |
| Acres |
$95,000 |
<0.001 |
Highly significant (use) |
| Highway Frontage |
$180,000 |
0.002 |
Significant (use) |
| Servicing |
$120,000 |
0.015 |
Significant (use) |
| Zoning |
$60,000 |
0.085 |
Marginally significant (use with caution) |
| Age |
-$5,000 |
0.420 |
Not significant (exclude) |
Model R² = 0.82 (good fit, 82% of price variation explained)
Validation:
- Model fit: R² = 0.82 (good)
- Significant variables: Acres, Highway Frontage, Servicing (p <0.05)
- Exclude: Age (p = 0.42, not significant)
- Conclusion: Model reliable for deriving adjustments for size, location, servicing
Sensitivity Analysis (Key Adjustment Impact)
Principle: Test how variations in key adjustments impact value conclusion to assess reliability.
Methodology:
- Identify key adjustments (largest adjustments or most uncertain)
- Vary adjustment by ±20-50%
- Re-calculate adjusted sale prices
- Assess impact on reconciled value
Example:
Base scenario (highway frontage adjustment = $30,000/acre):
- Comparable 1 adjusted: $135,000/acre
- Comparable 2 adjusted: $138,000/acre
- Comparable 3 adjusted: $136,000/acre
- Reconciled value: $136,000/acre
Sensitivity test (highway frontage adjustment varied ±25%):
| Scenario |
Frontage Adj |
Comp 1 |
Comp 2 |
Comp 3 |
Reconciled |
| Low (-25%) |
$22,500/acre |
$142,500 |
$145,500 |
$143,500 |
$143,833 (+5.8%) |
| Base |
$30,000/acre |
$135,000 |
$138,000 |
$136,000 |
$136,000 |
| High (+25%) |
$37,500/acre |
$127,500 |
$130,500 |
$128,500 |
$128,167 (-5.8%) |
Analysis:
- ±25% variation in frontage adjustment → ±5.8% variation in reconciled value
- Conclusion: Value conclusion moderately sensitive to frontage adjustment (document frontage adjustment thoroughly with market support)
Alternative if highly sensitive (e.g., ±25% adjustment → ±15% value):
- Action: Seek additional paired sales or regression analysis to tighten frontage adjustment estimate
- If unavailable: Widen value conclusion range to reflect uncertainty (e.g., $125K-$145K/acre)
1---2name: comparable-sales-adjustment-methodology3description: Implementation4---56## Implementation78**When users need to perform comparable sales calculations, use the Python calculator in the Comparable_Sales_Analysis directory.**910### Calculator Tool1112**Location**: `${CLAUDE_PLUGIN_ROOT}/skills/comparable-sales-adjustment-methodology/scripts/Comparable_Sales_Analysis/`1314**Main Files**:15- `comparable_sales_calculator.py` - Main calculator with adjustment grid construction16- `paired_sales_analyzer.py` - Paired sales analysis tool17- `validate_comparables.py` - Input validation utility18- `adjustments/` - Modular adjustment calculations by category1920**Capabilities**:21- Complete 6-stage adjustment hierarchy (property rights through physical characteristics)22- 49 physical characteristic adjustments across 7 categories23- Property-type specific logic (industrial vs office vs retail)24- Statistical validation (gross/net adjustment limits, weighting)25- USPAP 2024 and CUSPAP 2024 compliant26- Comprehensive JSON output with adjustment details2728### Input Format2930**JSON structure** (see `sample_inputs/sample_industrial_comps.json` or `sample_inputs/sample_industrial_comps_ENHANCED.json` in the Comparable_Sales_Analysis directory for complete examples):3132```json33{34 "subject_property": {35 "property_rights": "fee_simple",36 "property_type": "industrial",37 "lot_size_acres": 10.0,38 "building_sf": 50000,39 "clear_height_feet": 32,40 "loading_docks_dock_high": 6,41 "condition": "good"42 },43 "comparable_sales": [44 {45 "address": "123 Industrial Way",46 "sale_price": 4500000,47 "sale_date": "2024-03-15",48 "lot_size_acres": 8.0,49 "building_sf": 45000,50 "clear_height_feet": 2851 }52 ],53 "market_parameters": {54 "cap_rate": 7.0,55 "appreciation_rate_annual": 3.5,56 "valuation_date": "2025-01-15",57 "lot_adjustment_per_acre": 15000,58 "building_size_adjustment_per_sf": 2.0,59 "clear_height_value_per_foot_per_sf": 1.560 }61}62```6364### Usage6566**Command-line**:67```bash68cd ${CLAUDE_PLUGIN_ROOT}/skills/comparable-sales-adjustment-methodology/scripts/Comparable_Sales_Analysis/69python comparable_sales_calculator.py sample_inputs/sample_industrial_comps.json --output results.json --verbose70```7172**When assisting users**:731. **Gather property data**: Subject property characteristics, comparable sales, market parameters742. **Create JSON input file**: Use sample templates as starting point753. **Run calculator**: Execute with appropriate input file764. **Analyze results**: Review adjustment grid, validation flags, reconciled value775. **Document findings**: Explain adjustment methodology and value conclusion7879### Output Format8081**JSON output includes**:82- **comparable_results**: Array of adjustment grids for each comparable83 - `adjustment_stages`: Sequential adjustments (1-6)84 - `all_adjustments`: Detailed list of 49 physical characteristic adjustments85 - `adjustments_by_category`: Grouped by Land, Site, Industrial, Office, etc.86 - `validation`: Gross/net adjustment percentages, status (ACCEPTABLE/CAUTION/REJECT)87 - `weighting`: Statistical weight based on adjustment magnitude88- **final_reconciliation**: Weighted average value, acceptable comparables range89- **compliance**: USPAP/CUSPAP/IVS compliance flags9091### Sample Files9293Located in `Comparable_Sales_Analysis/sample_inputs/`:94- **`sample_industrial_comps.json`**: Original format (backward compatible)95- **`sample_industrial_comps_ENHANCED.json`**: Enhanced format with all 49 adjustment fields96- **`sample_office_class_a.json`**, **`sample_office_class_b.json`**, **`sample_office_class_c.json`**: Office property examples9798### Validated Coverage99100**Unit tested** (17 tests, 100% passing):101- Property rights adjustments (fee simple, leasehold)102- Financing terms (cash, seller VTB)103- Market conditions (compound appreciation, time adjustments)104- Land characteristics (lot size, topography, flood zone, environmental)105- Industrial building (clear height, loading docks, column spacing)106- Office building (building class, parking ratio, floor plate efficiency)107- Statistical validation and compliance flags108109## Adjustment Hierarchy and Sequence110111Adjustments must be applied in proper sequence because some adjustments affect the base from which subsequent adjustments are calculated.112113### Proper Adjustment Sequence114115**1. Property Rights**116- Adjust comparable sale to fee simple equivalent if sold as leasehold, life estate, or easement-burdened117- **Why first**: Property rights affect fundamental ownership value before any other characteristics matter118119**Example**:120- Comparable sale: Leasehold interest (land lease $50K/year, 30 years remaining)121- Sale price: $1,200,000 (leasehold value)122- Ground rent capitalized: $50K ÷ 5% = $1,000,000 (land value)123- **Fee simple equivalent**: $1,200,000 + $1,000,000 = **$2,200,000**124- **Adjustment**: +$1,000,000 (+83%)125126**2. Financing Terms**127- Adjust to cash equivalent if seller financing at below-market rates128- **Why second**: Non-market financing inflates sale price, must remove before analyzing property characteristics129130**Example**:131- Sale price: $800,000132- Financing: Seller VTB at 2% interest (market rate 6%)133- Present value of below-market financing benefit: $120,000134- **Cash equivalent**: $800,000 - $120,000 = **$680,000**135- **Adjustment**: -$120,000 (-15%)136137**3. Conditions of Sale**138- Adjust for non-arm's length transactions, duress, insufficient marketing, special motivations139- **Why third**: Must establish market-based transaction before analyzing market conditions140141**Example**:142- Related party sale (tenant purchases from landlord)143- Sale price: $500,000144- Market evidence suggests 10% discount for motivated seller145- **Arm's length equivalent**: $500,000 ÷ 0.90 = **$556,000**146- **Adjustment**: +$56,000 (+11%)147148**4. Market Conditions/Time**149- Adjust for market appreciation/depreciation between comparable sale date and valuation date150- **Why fourth**: Establishes current market value before adjusting for property-specific differences151152**Example**:153- Sale date: 18 months prior to valuation date154- Market trend: +2.5% per year appreciation155- Sale price (adjusted for financing): $680,000156- **Time adjustment**: $680,000 × (1.025^1.5) = **$706,000**157- **Adjustment**: +$26,000 (+3.8%)158159**5. Location**160- Adjust for micro-market differences, accessibility, visibility, neighboring uses161- **Why fifth**: Location affects value independent of physical property characteristics162163**Example**:164- Subject: Highway frontage, high visibility165- Comparable: Interior location, low visibility166- Market evidence: Highway frontage commands 15% premium167- Adjusted price after time: $706,000168- **Location adjustment**: $706,000 × 1.15 = **$812,000**169- **Adjustment**: +$106,000 (+15%)170171**6. Physical Characteristics**172- Adjust for size, shape, topography, servicing, improvements, condition173- **Why last**: Physical differences adjusted after establishing market location value174175**Size adjustment example**:176- Subject: 10 acres177- Comparable: 15 acres (after all prior adjustments: $812,000)178- Size adjustment: -$3,000/acre for each acre over 10 (economies of scale)179- **Size adjustment**: -$3,000 × 5 acres = -$15,000180- **Adjusted price**: $812,000 - $15,000 = **$797,000** ($79,700/acre)181182**Final adjusted sale price**: **$797,000** (compared to subject property)183184## Quantifying Adjustments185186Multiple methodologies for deriving adjustment amounts, applied based on data availability and adjustment type.187188### Paired Sales Analysis (Isolation Method)189190**Principle**: Identify two sales that differ in only ONE characteristic, isolate the value impact of that characteristic.191192**Ideal paired sales criteria**:193- Sold within 6-12 months of each other (minimal time adjustment)194- Same location/micro-market195- Same highest and best use196- Only difference: The characteristic being analyzed197198**Example (size adjustment)**:199200**Sale A**:201- 10 acres, industrial zoned, highway frontage, no improvements202- Sale date: June 2024203- Sale price: $1,200,000 ($120,000/acre)204205**Sale B**:206- 20 acres, industrial zoned, highway frontage (same road), no improvements207- Sale date: July 2024208- Sale price: $2,200,000 ($110,000/acre)209210**Analysis**:211- **First 10 acres**: $120,000/acre212- **Second 10 acres**: $110,000/acre213- **Economies of scale**: $10,000/acre reduction for larger parcel214- **Size adjustment factor**: For parcels >10 acres, deduct $10,000/acre for each acre over 10215216**Application to subject comparable**:217- Comparable: 15 acres at $115,000/acre = $1,725,000218- Subject: 10 acres219- **Adjustment**: -$10,000/acre × 5 acres = **-$50,000** (comparable is larger, adjust down)220221**Example (highway frontage adjustment)**:222223**Sale C**:224- 5 acres, industrial, highway frontage, no improvements225- Sale price: $750,000 ($150,000/acre)226227**Sale D**:228- 5 acres, industrial, interior location (same submarket, 200m from highway), no improvements229- Sale price: $600,000 ($120,000/acre)230231**Analysis**:232- **Highway frontage premium**: $150,000 - $120,000 = **$30,000/acre** (20% premium)233234### Statistical Regression (Hedonic Price Modeling)235236**Principle**: Use multiple regression to isolate value contribution of multiple characteristics simultaneously when sufficient sales data available (typically 20+ transactions).237238**Regression model**:239240**Linear model**:241Price = β₀ + β₁(Acres) + β₂(Highway Frontage) + β₃(Servicing) + β₄(Zoning) + β₅(Age) + ε242243**Variables**:244- **Price**: Sale price (dependent variable)245- **Acres**: Land area246- **Highway Frontage**: Dummy variable (1 if highway frontage, 0 if not)247- **Servicing**: Dummy variable (1 if full services, 0 if partial/none)248- **Zoning**: Categorical (industrial=1, commercial=2, residential=3, etc.)249- **Age**: Years since construction (for improved properties)250- **ε**: Error term251252**Example output** (industrial land sales regression):253254| Variable | Coefficient (β) | Std Error | t-stat | p-value |255|----------|----------------|-----------|--------|---------|256| Constant (β₀) | $250,000 | $45,000 | 5.56 | <0.001 |257| Acres (β₁) | $95,000 | $8,000 | 11.88 | <0.001 |258| Highway Frontage (β₂) | $180,000 | $35,000 | 5.14 | <0.001 |259| Servicing (β₃) | $120,000 | $28,000 | 4.29 | 0.002 |260| Zoning (β₄) | $60,000 | $20,000 | 3.00 | 0.008 |261262**Model fit**: R² = 0.84 (model explains 84% of price variation)263264**Interpretation**:265- **β₁** ($95,000/acre): Each acre adds $95,000 to property value266- **β₂** ($180,000): Highway frontage adds $180,000 (controlling for size, servicing, zoning)267- **β₃** ($120,000): Full servicing adds $120,000 vs. partial/no services268- **β₄** ($60,000): Each zoning category step adds $60,000269270**Application to comparables**:271272**Comparable sale**:273- 8 acres, highway frontage, full servicing, industrial zoning274- Predicted value: $250K + (8 × $95K) + $180K + $120K + (1 × $60K) = **$1,370,000**275- Actual sale price: $1,420,000276- Residual: +$50,000 (+3.6%) → within acceptable range277278**Adjustment derivation**:279- Subject: 10 acres, no highway frontage, full servicing, industrial280- Comparable: 8 acres, highway frontage, full servicing, industrial281- **Size adjustment**: (10 - 8) × $95,000 = +$190,000 (subject is larger)282- **Highway frontage adjustment**: -$180,000 (comparable has frontage, subject does not)283- **Net adjustment**: +$190,000 - $180,000 = **+$10,000** (+0.7%)284285### Cost Approach (Depreciated Replacement Cost)286287**Principle**: Quantify adjustment based on cost to add/remove characteristic, less depreciation.288289**Use cases**:290- Physical improvements (buildings, paving, site works)291- Special features (solar panels, irrigation systems)292- Superior/inferior quality (finishes, systems)293294**Example (building adjustment)**:295296**Subject**: Vacant industrial land297**Comparable**: Industrial land with 5,000 sq ft warehouse (built 2015, good condition)298299**Replacement cost analysis**:300- **New construction cost**: 5,000 sq ft × $150/sq ft = $750,000301- **Depreciation** (physical, functional, economic):302 - Age: 10 years, 50-year life → 20% depreciation303 - Functional obsolescence: None (adequate for industrial use)304 - Economic obsolescence: None (market stable)305 - **Total depreciation**: 20%306- **Depreciated value**: $750,000 × (1 - 0.20) = **$600,000**307- **Adjustment**: -$600,000 (comparable has building, subject does not)308309**Example (superior finishes)**:310311**Subject**: Office building, standard finishes (carpet, drywall, drop ceiling)312**Comparable**: Office building, upgraded finishes (hardwood, millwork, high ceilings)313314**Cost differential**:315- Hardwood vs. carpet: $15/sq ft316- Millwork vs. drywall: $25/sq ft (walls)317- High ceilings vs. drop ceiling: $10/sq ft318- Total: $50/sq ft for 10,000 sq ft = $500,000 new319- **Depreciation** (5 years, good condition): 10%320- **Depreciated differential**: $500,000 × 90% = **$450,000**321- **Adjustment**: -$450,000 (comparable is superior, adjust down)322323### Income Approach (Rental Differential Capitalization)324325**Principle**: Quantify adjustment based on income differential capitalized to value.326327**Use cases**:328- Location differences affecting rent329- Size/layout differences affecting rent per sq ft330- Lease-up status (vacant vs. occupied)331332**Example (location adjustment for investment property)**:333334**Subject**: Industrial building, Location A, achievable rent $12/sq ft335**Comparable**: Industrial building, Location B, achievable rent $10/sq ft336337**Rental differential**:338- Subject location commands $2/sq ft higher rent339- Building size: 50,000 sq ft340- Annual rent differential: 50,000 × $2 = $100,000/year341- **Capitalization rate**: 7%342- **Location value differential**: $100,000 ÷ 0.07 = **$1,428,571**343- **Adjustment**: +$1,428,571 (comparable in inferior location, adjust up to match subject)344345**Example (vacancy adjustment)**:346347**Subject**: 100% leased industrial building348**Comparable**: 60% vacant industrial building (requires lease-up)349350**Lease-up cost and delay**:351- Vacant space: 40,000 sq ft352- Lease-up period: 12 months353- Lost rent: 40,000 sq ft × $12/sq ft = $480,000354- Tenant improvements: 40,000 sq ft × $5/sq ft = $200,000355- Leasing commissions: $480,000 × 5% = $24,000356- **Total lease-up cost**: $480,000 + $200,000 + $24,000 = $704,000357- **Adjustment**: +$704,000 (comparable requires lease-up cost, adjust up)358359### Professional Judgment (When Market Data Insufficient)360361**Principle**: Apply reasoned judgment when paired sales, regression, cost, or income methods unavailable or unreliable.362363**Requirements for defensible judgment**:3641. Document reasoning and assumptions3652. Apply conservative adjustments (when uncertain, adjust less rather than more)3663. Sensitivity test (vary adjustment, assess impact on conclusion)3674. Seek market participant input (interviews with brokers, developers, buyers)368369**Example (unique property characteristic)**:370371**Subject**: Industrial land with rail spur (active connection)372**Comparable**: Industrial land without rail access373374**Analysis**:375- No paired sales of properties with/without rail spurs in market376- **Cost approach**: Rail spur installation cost $400,000 (new), depreciated 30% = $280,000377- **Income approach**: Rail-served industrial rents $1-$2/sq ft higher (insufficient data to reliably capitalize)378- **Market interviews**: Brokers indicate rail access worth "5-10% premium for large industrial users"379- **Professional judgment**: Apply $300,000 adjustment (consistent with depreciated cost, midpoint of broker estimates)380- **Adjustment**: +$300,000 (comparable lacks rail spur, adjust up)381382**Documentation**:383"Rail spur adjustment of $300,000 derived from depreciated replacement cost ($280,000) and market interviews indicating 5-10% premium. Comparable sale price $3.2M × 8% = $256,000 to $320,000 range. Adopted $300,000 as midpoint, supported by cost approach."384385## Validation and Reconciliation386387Testing adjustment grids for reasonableness and reliability before forming value conclusion.388389### Gross Adjustment Limits (Cumulative % Tests)390391**Principle**: Total absolute adjustments should not exceed reasonable limits, or comparable may not be truly comparable.392393**Industry guidelines**:394- **Total gross adjustment**: Sum of absolute values of all adjustments ÷ sale price395- **Acceptable range**: <25-30% gross adjustment396- **Caution range**: 30-40% (comparable is marginal, weight accordingly)397- **Reject**: >40% (not truly comparable, do not use)398399**Example**:400401**Comparable Sale**: $1,500,000402403| Adjustment | Amount | % |404|------------|--------|---|405| Financing | -$50,000 | -3.3% |406| Time | +$75,000 | +5.0% |407| Location | +$150,000 | +10.0% |408| Size | -$30,000 | -2.0% |409| Servicing | +$60,000 | +4.0% |410| Condition | -$25,000 | -1.7% |411| **Net adjustment** | **+$180,000** | **+12.0%** |412| **Gross adjustment** | **$390,000** | **26.0%** |413414**Analysis**:415- Gross adjustment: 26.0% (acceptable, <30%)416- Net adjustment: +12.0% (moderate)417- **Conclusion**: Comparable is acceptable, weight normally418419**Gross adjustment calculation**:420Gross = |−$50K| + |+$75K| + |+$150K| + |−$30K| + |+$60K| + |−$25K| = $390,000421Gross % = $390,000 ÷ $1,500,000 = 26.0%422423### Net Adjustment Patterns (Direction and Magnitude)424425**Principle**: Net adjustments (sum of positive and negative) should be consistent across comparable sales.426427**Consistency test**:428- If all comparables require large positive net adjustments → Comparables are inferior to subject429- If all comparables require large negative net adjustments → Comparables are superior to subject430- If comparables have mixed net adjustments (some +, some -) → Good bracketing of subject431432**Ideal pattern**:433- 3-6 comparable sales434- Net adjustments ranging from -15% to +15%435- Mix of inferior and superior comparables436- **Result**: Adjusted sale prices cluster in narrow range (±5-10% of midpoint)437438**Example (good bracketing)**:439440| Comp | Sale Price | Net Adj | Adj % | Adjusted Price | $/Acre |441|------|-----------|---------|-------|----------------|--------|442| 1 | $1,200,000 | +$120,000 | +10% | $1,320,000 | $132,000 |443| 2 | $1,450,000 | -$90,000 | -6% | $1,360,000 | $136,000 |444| 3 | $1,320,000 | +$45,000 | +3% | $1,365,000 | $136,500 |445| 4 | $1,550,000 | -$180,000 | -12% | $1,370,000 | $137,000 |446447**Analysis**:448- Adjusted range: $132,000-$137,000/acre (3.8% spread)449- Mix of net adjustments: +10%, -6%, +3%, -12% (good bracketing)450- **Reconciled value**: $135,000/acre (midpoint, weight Comp 2 and 3 most heavily as smallest net adjustments)451452**Example (poor pattern - all inferior)**:453454| Comp | Sale Price | Net Adj | Adj % | Adjusted Price |455|------|-----------|---------|-------|----------------|456| 1 | $900,000 | +$350,000 | +39% | $1,250,000 |457| 2 | $1,050,000 | +$280,000 | +27% | $1,330,000 |458| 3 | $980,000 | +$310,000 | +32% | $1,290,000 |459460**Analysis**:461- All comparables require large positive adjustments (27-39%)462- **Problem**: Comparables are significantly inferior to subject, adjusted prices unreliable463- **Solution**: Search for superior comparables to balance, or widen search area464465### Statistical Testing (R-squared, Coefficient Significance)466467**Principle**: When using regression to derive adjustments, validate model fit and coefficient reliability.468469**R-squared (Coefficient of Determination)**:470- **R² = 0.90-1.0**: Excellent fit (90-100% of price variation explained)471- **R² = 0.70-0.89**: Good fit (acceptable for appraisal use)472- **R² = 0.50-0.69**: Moderate fit (use with caution, document limitations)473- **R² <0.50**: Poor fit (model unreliable, do not use)474475**Coefficient significance (p-value)**:476- **p-value <0.05**: Statistically significant at 95% confidence (variable has real impact on price)477- **p-value 0.05-0.10**: Marginally significant (include with caution)478- **p-value >0.10**: Not significant (variable does not reliably impact price, exclude from model)479480**Example regression output**:481482| Variable | Coefficient | p-value | Interpretation |483|----------|------------|---------|----------------|484| Acres | $95,000 | <0.001 | Highly significant (use) |485| Highway Frontage | $180,000 | 0.002 | Significant (use) |486| Servicing | $120,000 | 0.015 | Significant (use) |487| Zoning | $60,000 | 0.085 | Marginally significant (use with caution) |488| Age | -$5,000 | 0.420 | Not significant (exclude) |489490**Model R² = 0.82** (good fit, 82% of price variation explained)491492**Validation**:493- Model fit: R² = 0.82 (good)494- Significant variables: Acres, Highway Frontage, Servicing (p <0.05)495- Exclude: Age (p = 0.42, not significant)496- **Conclusion**: Model reliable for deriving adjustments for size, location, servicing497498### Sensitivity Analysis (Key Adjustment Impact)499500**Principle**: Test how variations in key adjustments impact value conclusion to assess reliability.501502**Methodology**:5031. Identify key adjustments (largest adjustments or most uncertain)5042. Vary adjustment by ±20-50%5053. Re-calculate adjusted sale prices5064. Assess impact on reconciled value507508**Example**:509510**Base scenario** (highway frontage adjustment = $30,000/acre):511- Comparable 1 adjusted: $135,000/acre512- Comparable 2 adjusted: $138,000/acre513- Comparable 3 adjusted: $136,000/acre514- **Reconciled value**: $136,000/acre515516**Sensitivity test** (highway frontage adjustment varied ±25%):517518| Scenario | Frontage Adj | Comp 1 | Comp 2 | Comp 3 | Reconciled |519|----------|-------------|--------|--------|--------|------------|520| Low (-25%) | $22,500/acre | $142,500 | $145,500 | $143,500 | $143,833 (+5.8%) |521| Base | $30,000/acre | $135,000 | $138,000 | $136,000 | $136,000 |522| High (+25%) | $37,500/acre | $127,500 | $130,500 | $128,500 | $128,167 (-5.8%) |523524**Analysis**:525- ±25% variation in frontage adjustment → ±5.8% variation in reconciled value526- **Conclusion**: Value conclusion moderately sensitive to frontage adjustment (document frontage adjustment thoroughly with market support)527528**Alternative if highly sensitive** (e.g., ±25% adjustment → ±15% value):529- **Action**: Seek additional paired sales or regression analysis to tighten frontage adjustment estimate530- **If unavailable**: Widen value conclusion range to reflect uncertainty (e.g., $125K-$145K/acre)531