Skip to content

Listing & Media

These attributes capture listing information, real estate agent details, media assets, and showing instructions.

  • Type: VARCHAR(50)
  • Description: Current listing status
  • Values: "for_sale", "for_rent", "auction", "pre_auction", "under_contract", "sold", "rented"
  • Example: "for_sale"
  • Required: No
  • Indexed: Yes
  • Type: BIGINT
  • Description: Current listing price
  • Example: 75000000
  • Required: No
  • Note: May differ from price_current if updated separately
  • Type: TEXT
  • Description: Agent remarks and notes about the listing
  • Example: "Beautiful home in prime location..."
  • Required: No
  • Type: INT
  • Description: Number of days property has been on market
  • Example: 45
  • Required: No
  • Use Case: Track listing performance
  • Type: INT
  • Description: Total days on market including previous listings
  • Example: 120
  • Required: No
  • Type: DATETIME
  • Description: Date property was sold
  • Example: "2024-01-15T00:00:00Z"
  • Required: No
  • Type: BIGINT
  • Description: Final sale price
  • Example: 72000000
  • Required: No
  • Use Case: Market analysis and comps
  • Type: VARCHAR(100)
  • Description: Name of listing agent
  • Example: "John Smith"
  • Required: No
  • Type: VARCHAR(20)
  • Description: Listing agent phone number
  • Example: "+1-555-123-4567"
  • Required: No
  • Type: VARCHAR(100)
  • Description: Listing agent email address
  • Example: "john.smith@realty.com"
  • Required: No
  • Type: VARCHAR(100)
  • Description: Name of listing office/brokerage
  • Example: "ABC Realty"
  • Required: No
  • Type: VARCHAR(100)
  • Description: Co-listing agent name
  • Example: "Jane Doe"
  • Required: No
  • Type: VARCHAR(100)
  • Description: Name of buyer’s agent (if known)
  • Example: "Bob Johnson"
  • Required: No
  • Type: VARCHAR(20)
  • Description: Buyer’s agent phone number
  • Example: "+1-555-987-6543"
  • Required: No
  • Type: VARCHAR(100)
  • Description: Name of buyer’s agent office
  • Example: "XYZ Realty"
  • Required: No
  • Type: BOOLEAN
  • Description: Whether property has virtual tour
  • Example: true
  • Required: No
  • Type: VARCHAR(500)
  • Description: URL to virtual tour
  • Example: "https://example.com/tours/prop-123"
  • Required: No
  • Type: INT
  • Description: Number of photos available
  • Example: 25
  • Required: No
  • Use Case: Quality indicator
  • Type: INT
  • Description: Number of videos available
  • Example: 3
  • Required: No
  • Type: BOOLEAN
  • Description: Whether property has drone/aerial photos
  • Example: true
  • Required: No
  • Type: TEXT
  • Description: Instructions for showing the property
  • Example: "Call listing agent 24 hours in advance"
  • Required: No
  • Type: VARCHAR(50)
  • Description: Type of lockbox for property access
  • Values: "electronic", "combination", "key", "none"
  • Example: "electronic"
  • Required: No
  • Type: VARCHAR(50)
  • Description: Access code for lockbox or property
  • Example: "1234"
  • Required: No
  • Note: May be encrypted or stored securely
  • Type: TEXT
  • Description: Requirements for showing (pre-approval, etc.)
  • Example: "Pre-approval letter required"
  • Required: No
  • Type: TEXT
  • Description: Unique or standout features of the property
  • Example: "Historic home, original hardwood floors, ocean views"
  • Required: No
  • Type: TEXT
  • Description: Notable features worth highlighting
  • Example: "Renovated kitchen, master suite, large backyard"
  • Required: No
  • Type: TEXT
  • Description: History of renovations and updates
  • Example: "Kitchen renovated 2020, roof replaced 2018"
  • Required: No
SELECT * FROM properties
WHERE listing_status = 'for_sale'
AND status = 'active'
ORDER BY listing_date DESC;
SELECT * FROM properties
WHERE has_virtual_tour = true
AND photo_count >= 20
ORDER BY photo_count DESC;
SELECT
id,
listing_date,
days_on_market,
price_current,
listing_price
FROM properties
WHERE status = 'active'
ORDER BY days_on_market DESC;
SELECT
id,
sold_date,
sold_price,
listing_price,
(listing_price - sold_price) / listing_price * 100 AS discount_pct
FROM properties
WHERE sold_date IS NOT NULL
ORDER BY sold_date DESC;
SELECT
listing_agent_name,
listing_office_name,
COUNT(*) as listing_count,
AVG(price_current) as avg_price
FROM properties
WHERE listing_agent_name IS NOT NULL
GROUP BY listing_agent_name, listing_office_name
ORDER BY listing_count DESC;
  1. Keep listing_status current: Update when status changes
  2. Track days_on_market: Important metric for buyers and sellers
  3. Maintain agent information: Helps with inquiries and attribution
  4. Document media assets: Photo/video counts indicate listing quality
  5. Update sold_price: Critical for market analysis and comps