UAD 3.6 Form Structure

Complete reference for the Uniform Appraisal Dataset (UAD) 3.6 form structure.

Overview

UAD 3.6 is the standardized data format for real estate appraisals. DeepV-ADK provides comprehensive support for UAD 3.6 data validation and processing.

Form Types

1004 - Single-Family Residential

The standard form for single-family home appraisals. Structure: ``json { "formType": "1004", "version": "3.6", "subject": { "propertyAddress": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" }, "borrower": { "name": "John Doe" }, "legalDescription": "Lot 1, Block 2, Example Subdivision" }, "contract": { "salePrice": 500000, "date": "2025-11-01", "propertyRights": "Fee Simple" }, "neighborhood": { "locationRating": "Good", "builtUp": "Over 75%", "growth": "Stable", "propertyValues": "Stable", "demandSupply": "In Balance" } } `

1073 - Condominium

For condominium unit appraisals. Key Sections:
  • Unit description
  • Project information
  • HOA details
  • Common elements
  • 1025 - Small Residential Income

    For 2-4 unit properties. Key Sections:
  • Income analysis
  • Expense analysis
  • Operating statement
  • Capitalization
  • Field Categories

    Property Information

    `json { "propertyInfo": { "occupancy": "Owner Occupied", "propertyType": "Single Family", "design": "Ranch", "yearBuilt": 1995, "effectiveAge": 10, "totalRooms": 7, "bedrooms": 3, "bathrooms": 2.5, "grossLivingArea": 2000, "basementArea": 1000, "garageType": "Attached", "garageSpaces": 2 } } `

    Site Information

    `json { "site": { "dimensions": "100x150", "area": 15000, "shape": "Rectangular", "view": "Residential", "utilities": { "electricity": "Public", "gas": "Public", "water": "Public", "sanitary": "Public" } } } `

    Improvements

    `json { "improvements": { "foundation": "Concrete Slab", "exteriorWalls": "Vinyl Siding", "roofSurface": "Asphalt Shingle", "guttersDownspouts": "Aluminum", "windowType": "Double Hung/Vinyl", "stormSash": "None", "screens": "Yes" } } `

    Interior

    `json { "interior": { "floors": "Hardwood/Carpet", "walls": "Drywall", "trim": "Wood", "bathFloor": "Ceramic Tile", "bathWainscot": "Ceramic Tile", "doorsType": "Wood Panel", "heating": "Forced Air", "cooling": "Central Air" } } `

    Comparable Sales

    `json { "comparables": [ { "number": 1, "address": "456 Oak St", "proximityToSubject": "0.5 miles", "salePrice": 495000, "salePricePerGLA": 247.50, "dateOfSale": "2025-10-15", "dataSource": "MLS", "verification": "Public Records", "siteArea": 14000, "gla": 2000, "rooms": 7, "bedrooms": 3, "bathrooms": 2.5, "adjustments": { "total": 5000, "net": 5000, "gross": 5000 } } ] } `

    Validation Rules

    Required Fields

    All UAD 3.6 forms must include:
    `typescript const requiredFields = [ 'formType', 'version', 'subject.propertyAddress', 'subject.borrower', 'contract.salePrice', 'propertyInfo.yearBuilt', 'propertyInfo.grossLivingArea', 'comparables' // Minimum 3 comparables ]; `

    Field Constraints

    `typescript const constraints = { yearBuilt: { min: 1800, max: new Date().getFullYear() + 2 }, grossLivingArea: { min: 100, max: 20000 }, comparables: { min: 3, max: 6, maxAge: 365 // days }, salePrice: { min: 0, max: 100000000 } }; `

    Data Types

    `typescript const fieldTypes = { 'yearBuilt': 'integer', 'grossLivingArea': 'integer', 'salePrice': 'decimal', 'dateOfSale': 'date', 'propertyAddress.street': 'string', 'propertyAddress.zip': 'string(5|9)' }; `

    Form Sections

    Section 1: Subject Property

  • Property identification
  • Legal description
  • Assignment details
  • Borrower information
  • Section 2: Contract Information

  • Sale price and date
  • Property rights
  • Financing terms
  • Section 3: Neighborhood

  • Location characteristics
  • Market conditions
  • Property values trend
  • Section 4: Site

  • Dimensions and area
  • Zoning compliance
  • Utilities and improvements
  • Section 5: Improvements

  • Foundation and structure
  • Exterior features
  • Interior features
  • Systems and equipment
  • Section 6: Sales Comparison Approach

  • Comparable sales analysis
  • Adjustments grid
  • Value reconciliation
  • Section 7: Income Approach

  • Rental analysis (if applicable)
  • Capitalization rate
  • Estimated value
  • Section 8: Reconciliation

  • Approach reconciliation
  • Final value estimate
  • Market value conclusion
  • API Integration

    Submitting UAD Data

    `typescript const uadData = { formType: '1004', version: '3.6', // ... UAD form data }; const result = await client.validateUAD({ data: uadData, strictMode: true }); if (result.valid) { console.log('UAD form is valid'); } else { console.error('Validation errors:', result.errors); } `

    Parsing UAD XML

    `typescript import { parseUAD } from '@deepv/adk-sdk'; const xmlData = 1004 3.6 ; const parsed = parseUAD(xmlData); `

    Generating UAD Forms

    `typescript const form = client.createUADForm({ type: '1004', version: '3.6', data: { subject: subjectData, contract: contractData, comparables: comparablesData } }); const xml = form.toXML(); const json = form.toJSON(); `

    Common Patterns

    Adjustments Calculation

    `typescript function calculateAdjustments(subject: Property, comparable: Property) { const adjustments = { siteArea: 0, gla: 0, bedrooms: 0, bathrooms: 0 }; // Site area adjustment: $5 per sq ft difference adjustments.siteArea = (subject.siteArea - comparable.siteArea) * 5; // GLA adjustment: $100 per sq ft difference adjustments.gla = (subject.gla - comparable.gla) * 100; // Bedroom adjustment: $5,000 per bedroom adjustments.bedrooms = (subject.bedrooms - comparable.bedrooms) * 5000; // Bathroom adjustment: $3,000 per bathroom adjustments.bathrooms = (subject.bathrooms - comparable.bathrooms) * 3000; const total = Object.values(adjustments).reduce((a, b) => a + b, 0); return { adjustments, total, adjustedPrice: comparable.salePrice + total }; } `

    Comparable Selection

    `typescript function selectComparables(subject: Property, candidates: Property[]) { return candidates .filter(c => { // Must be within 1 mile if (c.distance > 1) return false; // Must be within 12 months if (daysSince(c.saleDate) > 365) return false; // Must be similar size (within 30%) const sizeRatio = c.gla / subject.gla; if (sizeRatio < 0.7 || sizeRatio > 1.3) return false; return true; }) .sort((a, b) => { // Sort by similarity score return similarityScore(subject, b) - similarityScore(subject, a); }) .slice(0, 6); // Take top 6 } ``

    Next Steps

  • Field Reference
  • Validation Rules
  • API Reference

Found an issue? Help us improve this page.