On this page
The problem
This property tracker case study is one South Florida client's list, not the statewide market. Florida was busy in July 2026, and busy is not the same as visible inside one zip code. Florida Realtors reported 23,870 closed sales of existing single-family homes that month, up 5.1% from a year earlier, and 8,194 existing condo and townhouse sales, up 11%. The statewide median for those single-family sales was $425,000. Supply was 4.5 months for single-family homes and 7.8 months for condos and townhouses. New pending sales were up 2.4% for single-family homes and 3.8% for condos and townhouses. That is Florida Realtors' August 17, 2026 release. The charts and the arrow on that cover are decoration, not this client's results.
This client works in South Florida, not in a statewide average. MIAMI Realtors' September 23, 2026 outlook projects existing home sales there up 4.3% in 2026 and 4.8% in 2027. Year-to-date single-family sales on that page were up 7.5%. The same page also says sales are poised to rise 4% in 2026 and 5% in 2027. Those are two sentences. This post uses 4.3% and 4.8%.
A state report does not list this morning's new rows in 30 zip codes. The old job was opening listing sites and walking those zips by hand. Listings land in between checks, and a good month in the statewide numbers does not shrink that list. NAR's September 22, 2026 technology release says 81% of members adopt new technology to save time, up from 66% a year earlier. An early video line put that time at two hours a day. No page we opened says two hours, so that line is not a figure here.
What the tracker does
This is a case study of a property tracker BigiByte built for one South Florida client. It checks that client's zip codes on a schedule and adds new listings to a Google Sheet. The sheet is the replacement for that pass.
The numbers below are not from a public report. They were counted from the Property Tracker console file for this project. Runs in that file start on January 15, 2026, and the latest run is September 19, 2026. This client's sheet is one tracker inside a console that also runs for other clients. This post stays on that tracker, plus the console totals that show the same system beside it. Other clients' names, their sheets, and every listing agent's phone and email stay out.
A video brief for this project said "over 44,000 listings." The console's own unique count is 43,970. That is the number this post uses.
One client, 30 zip codes
This client's tracker covers 30 zip codes. From January 28 through June 26, 2026, it added 56,306 rows. It kept running after that. From June 27 through September 19 it completed 169 more runs and added 0 rows. The tracker was on. It did not find new listings to write.
| Measure | Figure |
|---|---|
| Zip codes | 30 |
| Rows added | 56,306 |
| Runs | 475 |
| Last day a row was added | June 26, 2026 |
| Latest run in this file | September 19, 2026 |
A row is a listing the tracker wrote down: address, city, zip, home type, price, year built, and the listing agent. On the unique set, 38,292 rows have an agent email and 38,129 have an agent phone. Both are 87% of 43,970. The sheet is for the client to work from. This post does not reprint any address, agent name, phone, or email from it.
Repeats were hiding the count
56,306 is not 56,306 homes. The same property showed up again on later daily tabs. The console removes those repeats and keeps 43,970 unique listings. The repeats are 12,336 rows, which is 56,306 minus 43,970.
Each unique listing is stamped with the first daily tab it appeared in. Those stamps run from January 28 to June 26, 2026. April 3 shows 120 listings first appearing that day. June 8 shows 13,592. That June 8 figure is the day the row was first written into the sheet. It is not a count of homes that were listed for sale on June 8.
Price, city, and home type
Of the 43,970 unique listings, 43,969 have a price. The median is $412,000. Median here means the middle price after the prices are sorted, which is how the console calculates the card. One listing has no price, so it is not in that middle.
The eight home types in the sheet, and how many unique listings sit in each:
| Home type | Unique listings |
|---|---|
| Single family | 22,669 |
| Condo | 13,290 |
| Townhome | 4,582 |
| Multi family | 1,465 |
| Land | 924 |
| Mobile | 633 |
| Condo / co-op | 394 |
| Townhouse | 13 |
Condo and condo / co-op are separate labels in the sheet, and so are townhome and townhouse. I did not merge them. Adding the eight rows gives 43,970.
The eight cities with the most unique listings are Miami 13,810, Homestead 5,750, Hollywood 5,009, Port Saint Lucie 4,443, Hallandale Beach 2,734, Pembroke Pines 1,735, Coral Gables 1,288, and Boynton Beach 1,284. Those eight are 36,053 listings. The rest are in smaller cities in the same 30 zip codes. Miami is the largest share in this sheet. It is not a claim about the whole Miami market.
The console around that one tracker
The same file runs more than one client. With the test tracker left out, which is how the overview cards are set, the console shows:
| Measure | Figure |
|---|---|
| Properties added | 87,455 |
| Tracker runs | 4,826 |
| Rows per run | 18.1 |
| Active trackers | 11 |
| Zip codes covered | 326 |
| First run | January 15, 2026 |
| Latest run | September 19, 2026 |
| Biggest day of rows added | June 8, 2026, 13,856 rows |
The page header says 5,130 runs. That count includes a test tracker. The overview card says 4,826 because the test tracker is unchecked. Both numbers are in the file. They are not two measurements of the same set. The test tracker added no properties, so 87,455 does not change when you include it.
Active means the tracker ran in the last two days of data. All 11 non-test trackers ran on September 19, 2026. Zip codes covered is the count of zips assigned to those 11 trackers, not the count of zips that produced a listing. One of them is assigned 228 zip codes and had added 0 properties by September 19. Coverage on the card is not the same thing as listings found.
June 8 is the biggest day on the overview, at 13,856 rows added across the non-test trackers. On this client's sheet, 13,592 unique listings are stamped June 8. Most of that spike is this one client, and it is a write date. Read it as a day the tracker caught up in the sheet, not as a day the market listed 13,000 homes.
How to read one run
A run log row is a date, a time, the tracker, how many zip codes that run checked, how many rows it added, and how long it took. For this client the median run took 5.07 seconds. The shortest took 1.17 seconds. The longest took 101.96 seconds, on June 8, 2026, and that single run wrote 9,537 rows. The same day is the one with 13,592 unique listings stamped on it, so more than one run wrote rows that day.
Of the 475 runs, 166 added at least one row. The other 309 added none. That includes the 169 runs after June 26, and it also includes earlier runs that checked the 30 zip codes and found nothing new. A dashboard that only shows the days with a spike will hide the ordinary result, which is a run that finishes and adds zero.
The solution
The tracker runs on a schedule. It checks the zip codes on one client's list and adds new listings to a Google Sheet. This client's list is 30 zip codes. A row holds the address, city, zip, home type, list price, year built, and the listing agent's phone and email when the source row had them. The contacts stay in the sheet. They are not reprinted here.
The sheet will lie about the count if you read the raw rows. The same home shows up on later daily tabs. The console keeps one row per home. Here that is 56,306 rows written and 43,970 unique listings, which means 12,336 rows were the same property again. The median list price on the unique rows that have a price is $412,000. That median belongs to this sheet. It is not Florida's $425,000 statewide median, and it is not an appraisal.
The screen is there so a missed morning is obvious. Rows added per day, the first day each unique listing was written, the cities and home types in the set, and a run log with the time, the zip count, how many rows came in, and how long the run took. A run that adds nothing is still an answer. After June 26, 2026 this tracker kept running through September 19 and added no new rows.
What these numbers do not prove
The console does not say which website a row came from. I am not going to name one. The client's old habit, checking listing sites one zip at a time, is the job this tracker replaced. The source of each row is the sheet the tracker writes, and the counts above are counts of those rows.
A run that adds 0 is a result. For this client, every run after June 26 added 0. That can mean the zip codes had nothing new, or that the check found only homes already in the sheet. The file records the zero. It does not record which of those two it was.
Agent email on 87% of rows is a fill rate, not a promise that the address is current or that the agent will answer. Price is the list price stored on the row. The median is not an appraisal. City counts are listings in this sheet, not sales, and not a ranking of those cities.
If you publish a case study from a tracker, separate three sentences that are easy to mash together. Rows written. Unique homes after repeats are removed. The day the row was written. This file is the reason those are three sentences.
The same setup for another market
The piece a new client has to hand over is the zip list, the fields they want on the row, and where the sheet should live. Thirty zips was this job. Another job in the same console is one zip. Another is hundreds.
This is the data side of the work, not a writing assistant. The AI tools for real estate agents post is the other job, listing copy and follow-up. For the list itself, the real estate data solutions guide and the Realtor.com scraper guide are the pieces about pulling listing data on purpose. A lead list is a different output, covered in the real estate lead generation guide.
We set this up per market at BigiByte. The zip codes, the sheet, and a dashboard that shows whether the run happened. To scope one, use the contact page and send the zips and the fields you want on each row. This is not a quote.




