> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.repliers.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# PropTx (TRREB) MLS® Filtering Considerations

The PropTx (TRREB) MLS® feed has unique data characteristics that require special filtering considerations compared to other MLS® feeds. This article outlines the key differences and best practices for working with PropTx data.

## Square Feet Filtering (`details.sqft`)

### Data Format

PropTx provides square footage as **ranges** rather than specific values. Examples include:

* `1500-2000`
* `2000-2500`
* `null` (no square footage data available)

### Filtering Behavior

* You can still use `minSqft` and `maxSqft` parameters
* The system will return listings whose square footage range meets your criteria
* **Important limitation**: Many listings have `null` values for `details.sqft`

### Critical Consideration

When filtering by `minSqft` and `maxSqft`, you will **exclude listings that don't have square footage data**, effectively hiding some listings from your search results.

### Price Per Square Foot Statistics

Due to the range-based nature of square footage data, price per square foot statistics are provided as ranges:

```
"statistics": {
    "sqft": {
        "avgPriceLow": 556,
        "avgPriceHigh": 683
    }
}
```

#### Implementation Options:

* Display as low and high estimates
* Calculate the average of the two values as an estimated price per square foot
* Present both ranges to give users a complete picture

### Best Practices

* Use `details.sqft` as a **display field** rather than a search filter to ensure you don't miss listings with missing square footage data
* Consider providing a "Show all listings" option to include properties without square footage data
* When implementing price per square foot statistics, display both low and high estimates or calculate an average

## Year Built Filtering (`details.yearBuilt`)

### Data Format

PropTx provides year built as **age ranges** rather than specific years or year ranges. The format indicates the property's age at the time of listing:

* `"0-5"` = 5 years old or newer
* `"6-15"` = 6 to 15 years old
* `"16-30"` = 16 to 30 years old
* `"31-50"` = 31 to 50 years old
* `"51-99"` = 51 to 99 years old
* `"100+"` = 100+ years old
* `"new"` = Brand new property

### Filtering Limitations

* **Cannot use** `minYearBuilt` and `maxYearBuilt` parameters
* These parameters are designed for specific year filtering, not age ranges

### Proper Filtering Method

Use the `yearBuilt` parameter with the specific age range value:

```
https://api.repliers.io/listings?yearBuilt=0-5
```

### Getting Available Age Ranges

Use the aggregates feature to retrieve all distinct age range values and their counts:

```
https://api.repliers.io/listings?aggregates=details.yearBuilt&listings=false
```

**Example Response:**

```
"aggregates": {
    "details": {
        "yearBuilt": {
            "0-5": 9517,
            "new": 7665,
            "31-50": 6607,
            "16-30": 6477,
            "51-99": 6429,
            "6-15": 4502,
            "100+": 2921,
            "6-10": 2081,
            "11-15": 1110,
            "": 159
        }
    }
}
```

### Best Practices

* Use the aggregates feature to retrieve all available age range values before building filter options
* Consider the dynamic nature of age ranges (they change as properties get older)

## Implementation Considerations

When building user interfaces for PropTx data:

* Provide clear labels explaining that square footage and year built are ranges
* Consider offering "Show all listings" options to include properties with missing data
* Use the aggregates endpoint to dynamically populate filter options

This approach ensures your users get the most comprehensive search results while understanding the unique characteristics of PropTx data.

# What questions does this article answer?

* What is special about the PropTx (TRREB) MLS® feed compared to others?  
* How is square footage represented in PropTx (ranges vs. exact values) and how does that affect filtering?  
* What are the recommended strategies for filtering by sqft, property type, or other TRREB-specific quirks?  
* How should I adjust my UI/filters when working with PropTx data?