iBuyer Discussion (mostly focused on OPEN, with Q4 Earnings Update)

Just starting this thread so I can update it with data/analysis as I work on it.

Some transaction information for October/November. Note that this does not include every transaction, only “good” transactions where there is good confidence that the purchase and sale was correctly captured. Gross profit is the sale price minus the purchase price.
image

OpenDoor (OPEN)
I’ve been monitoring OPEN since it’s 15% jump on good earnings/good guidance. Since then, OPEN has been steadily declining, and is down about 40% from the day after earnings. From a TA perspective (and I’d like some input on this), it seems to me that it’s hitting it’s support and may bounce up from here (although market conditions may impact that).

So why has OPEN been dropping? There has been no news since earnings release, so it seems it may be concerns over the housing market and long term interest rates? I have some data that I’m trying to look at, to see how they’ve been doing this quarter. I’ll update this once I’ve completed that. For the purposes of the company, I’m looking at if they are hitting revenue targets, and the data I’m looking at has some holes, so I wouldn’t want anyone to read into it too much.

Regarding OPEN overall, I still think they have a good business model, and they work with institutional buyers as well which helps keep transaction velocity high and moves the houses off their books. I’ll try and update this before next earnings release, once I have a better idea on how they’ve done.

Zillow (ZG)
News today indicated that ZG has unloaded about half of the houses it intends to sell. Based on Q3 10-Q, ZG indicates they had $3.76B in inventory, which I assume are houses. iBuyerStats.com had total value of inventory for sale peaking at ~$1.3B at the start of November, reaching $887M by today.

Zillow’s gross margin for last 75 transactions:

iBuyer overall gross margin % for last 100 sales

OfferPad (OPAD)
To be worked on when I get a chance.

2 Likes

THE iBUYER OG RETURNS

Bullish news on OPEN, Director (Keffer Pueo) bought 137k shares last week https://investor.opendoor.com/static-files/20d33bab-ca5b-4cc1-af12-1f749d663fe9

Just to keep in mind, I’m in OPEN long, not planning on playing/trading around with it too much, but there may be opportunities to do so. I’ll keep the thread updated as I see things.

1 Like

Earnings Update:
OPAD has scheduled earnings for February 23rd, AMC, at 5:00pm ET.
OPEN has scheduled earnings for February 24th, AMC, at 5:00pm ET.

Data Updates
ibuyerstats.com is no longer updating as of 12/31/2021, but that gives a picture of the entire quarter, at least.

For OPEN, I started pulling some data, similar to what I did last time. Per ibuyerstats.com (and in terms of the number of for sale listings in a state), Texas is one of Opendoor’s largest areas it operates in, followed by Georgia, and Arizona. California, Florida, and North Carolina have a similar number of for sale listings. For those interested, the .csv of Tarrant County (Texas, includes Dallas and Fort Worth areas) data is attached.
sales_data_tarrant.csv (241.2 KB)

Charts from ibuyerstats:
Number of Homes for Sale by Day

For Sale listings by State

Number of listings added, by day

Number of listings removed, by day
this may be correlated with sales

Total value of all homes in inventory, by day

Gross profit margin by home price
Just OPEN:


same chart but with everyone:

Average price of homes, by day

Gross Margin
(Z = 2.8, OPEN = 6.3, OPAD = 20.9)

Note: I think ibuyerstats provided some decent info for general trends, but I think there was definitely some issue with data quality, which was probably why they stopped updating. I had been emailing them about it, because I was having issues with the data they provided, as propertyId’s weren’t matching and it was not possible to match up transactions accurately (manually looking up some transactions also resulted in slightly different results)

I’m mostly going to focus on OPEN, since I’m more familiar with them, but if I have time in the future, I will try and get into OPAD as well.

Results
Pivot Table of Results For Tarrant County:
image

Compared to Q3, OPEN has more than doubled their sale transactions in Tarrant County. Buy transactions are down about 40% compared to Q3. Looking ahead to Q1, buy transactions look like they are remaining steady from December, but OPEN has sold the most houses in January compared to any month in Q3 or Q4.

Regarding the table column “Buy/Sale on Same Prop”, I determine if the buy and sale transaction is on the same property based on the legal description. If OPEN is listed as the grantor and grantee and two separate transactions with the same legal description, it is assumed that the property and been bought and sold. For these transactions, I take average the amount of time between the recorded dates to get the average time to unload. Of course, there are properties that they may be selling that are older than the data I’ve collected, which may skew the avg unload time results.

Discussion on Results
I should preface this by saying that this is only 1 county out of the many OPEN operates in, so it may not necessarily be applicable to their overall operations this past quarter, and unfortunately I don’t have any monetary details associated with these transactions at the moment. I like that OPEN has had a huge increase in sales transactions though, while also slowing down on their buying a bit. I think the market was concerned with the large inventory OPEN was carrying, so working to start pushing that down (and being successful at it) I think is a good sign. I need to take a better look through OPEN’s financial statements and reports to see how they are recognizing revenue. If they are recognizing all revenue on sales (rather than recognizing the fee from the buyer as revenue, when buying the property), and this trend is similar to what is happening in OPEN’s other markets, I think it is very possible they could be profitable this quarter.

Edit: revenue is recognized on sale of property, per their 10-Q. If OPEN has been able to accomplish similar sales across its markets/inventory, their revenue could be near 4.5B for Q4 (they estimated 3.1-3.2B). ibuyerstats estimated OPEN’s gross margin as 6.3% based on the last 100 transactions, but keep in mind this does not include the fee OPEN charges the seller (approximately 7%). So gross profits, factoring in that fee and based on revenue near 4.5B, could be close to $602M. If we use OPEN’s 8.9% gross margin from last quarter, that would be closer to $405M gross profit. Regardless, OPEN has been keeping a tight control of operating expenses the last few quarters, with operating expenses trending downward the last three quarters, from $342M Q1 '21, $311M Q2 '21, and $271M Q3 '21.

So, if we can confirm that other markets are seeing a similar sales trend as Tarrant County, and OPEN isn’t getting hosed on its margins, Opendoor may be profitable this quarter, which would be huge for the earnings call.

Future Work
I hope to try and find some other counties I can scrape for data where OPEN operates. Will try and do this for OPAD too, if I have time. If anyone wants to help with the data collection aspect (finding sites to scrape or writing scripts to scrape the sites) that would be awesome.

References/Code
For reference, I’ve attached the relevant main.py code for the script I used to scrape Tarrant County’s land records. I also attached a utility file I used for starting up selenium:

Code for Scraping Tarrant County Land Records

selenium_utils.py (7.7 KB)

import requests
import pandas as pd
import json
from furl import furl
from pandas import json_normalize
import lxml
import html5lib
from bs4 import BeautifulSoup

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

from utils.selenium_utils import (
    enable_headless,
    options,
    get_cookies,
    save_screenshot,
    selenium_initialization,
    create_driver,
    wait_for_element_by_xpath
)

def tarrant_county():
    SEARCH_URL = "https://tarrant.tx.publicsearch.us/results?department=RP&limit=250&offset={offset}&parties=%7B%22parties%22%3A%5B%7B%22term%22%3A%22opendoor%22%2C%22types%22%3A%5B%22grantor%22%2C%22grantee%22%5D%7D%5D%7D&recordedDateRange=20210701%2C20220124&searchType=advancedSearch"
    selenium_initialization(options=options)
    d = create_driver(options)
    d.get(url=SEARCH_URL.format(offset=0))

    sales_df = None
    try:
        for idx in range(8):

            f = furl(SEARCH_URL.format(offset=idx*250))
            d.get(url=f.url)
            print(f"Page {idx+1}")

            wait_for_element_by_xpath(d, "//div[@id='a11y-status-message']")
            deeds_data = pd.read_html(d.page_source)

            print(deeds_data)
            print(deeds_data[0])
            new_data = deeds_data[0]
            if sales_df is None:
                sales_df = new_data
            else:
                sales_df = sales_df.append(new_data)
    except Exception as e:
        print(e)
        pass

    file_name = "sales_data_tarrant.csv"
    with open(file_name, "w") as f:
        sales_df.to_csv(f)

if __name__ == '__main__':
    tarrant_county()
1 Like

test to see if this updates in discord notifications now it does

I wonder if this might of of use.

Opendoor’s website allows us to choose the major metro areas. Atlanta, for example, brings us here:
https://www.opendoor.com/homes/atlanta

Looking at the web traffic, it seems that there is an opportunity to scrape data directly from there.

OD makes this call for the entire area:
https://buy.opendoor.com/zones/null/marker_properties.json (leaving params out as it sprawls a bit)

This returns the total number of listings, and the lat-lon. Not super helpful but gives us an order of magnitude idea.
image

Where it gets interesting is this call:
https://buy.opendoor.com/zones/null/list_properties.json?page=1&page_size=30 (remaining params removed for space)

Gives us all the fun info:
image

I tested for both page=2 and page_size=100, and it’s possible to send these requests to the page and get corresponding data.

Now, I have not read the TOS, and it’s possible you might get IP blocked if you try to script this all in one go, but it seems like this could be a cool way to get “all the info.”

Worst comes to worst, you could just paste this into the browser:
https://buy.opendoor.com/zones/null/list_properties.json?page=1&page_size=1000 (note: page_size=1000)
and do it 8 times, spaced out over time, and get all 7,689 listings for Atlanta by changing page to values between 1 and 8. I tested for page=2 and 1000 records - 175KB of json came back, took 19 seconds.

Happy scraping! :slight_smile:

3 Likes

Thank you for this!
I think that would give us current inventory, which is a fine data point, but would we be able to get sales too? I think that will be key for making a determination on their revenue this quarter.

Edit: this could probably be used to set up a database for the future though. If the listings could be cross-listed with an MLS or Zillow, it would be possible to get transaction data. This would just miss out on the 10-20% of transactions that OPEN does directly with real estate investors, I think.

1 Like

Indeed, no sales data in this version, though I wonder if creating an account will give access to that. I don’t have an account with them, but seems to be free.

Cross-referencing with MLS should work well indeed!

1 Like

Might be of interest:
https://twitter.com/tyler_okland_md/status/1487794123314589697

Predicts a revenue beat, and a profitable Q4 .

3 Likes

Awesome, thanks for the link/info. I’ll see if I can grab some more land records for the DFW area (since I already started with Tarrant) and see if I can corroborate what he is saying.

1 Like

What a nice by OPEN today. Wonder if it was due to the posting on Reddit.

It’s mostly just the market.

pretty good run today. any thoughts on OPEN q4? Also how about Z, OPAD?

I think they are going to do well this past quarter, maybe even have positive net income for the quarter. If not positive net income this past quarter, I expect them to project it for the year, since their sales transactions should be much, much higher than they were previously, and they should be nearing break even, if they haven’t surpassed it already.

I’ve been busy and haven’t had time to dive into this more, so I haven’t really looked about Z (who isn’t really doing iBuying anymore) or OPAD. OPAD has pretty low volume though, so they seem a lot further from breaking even than OPEN is.

OPEN dropped today (2/18/2022) based on Redfin (RDFN) having a horrible earnings report/guidance (chart movements are almost 1:1 once the market opened). You can read their earnings transcript here. Since RDFN is more of a housing services company, and do very little iBuying, the issues effecting RDFN are not the same as OPEN, so this might be a good opportunity to buy before earnings next week. Skimming through the transcript, it seems to me like RDFN is just hemorrhaging money and they don’t have a clear focus, which is likely why analysts are downgrading them and the stock is dumping.

I will note that, besides OPAD, I don’t know what larger companies in the real estate sector have earnings between now and February 24th, so that might be something to keep in mind and/or look into if you are buying options.

OPEN released their earnings after market close yesterday. They beat revenue estimates for the quarter with $3.8B in sales - I don’t see the earnings whisper number, but Benzinga says consensus was $3.17B. Not quite as good as the single market projection I made last month, but still very good for Q4 (especially considering Q4 is usually slower for sales). Unfortunately, their EPS missed the consensus by quite a bit, at -0.31/share vs. -0.15 to -0.18/share estimate.

As far as today’s drop is concerned, it doesn’t make that much sense to me. Consider a company like CVNA that just posted earnings as well - $3.75B in revenue Q4 and EPS loss of $1.02/share (estimated ~3.5B in revenue and -0.82 EPS). CVNA is up 22% today, and has a market cap of $26.6B, so it’s trading at ~1.75x annual revenue (based on Q4 revenue). OPEN is down ~23.5% today, with a market cap of 5.2B, so it’s trading at 0.34x annual revenue (based on Q4 revenue). Is the CVNA profit premium worth 5x more? I don’t think so, so either CVNA is super overvalued, or OPEN is very undervalued right now - I’m leaning towards OPEN being undervalued.

Also this was a decent read by someone who is bullish on OPEN: Opendoor: The Art of Winning an Unfair Game

2 Likes

Pretty good discussion by the CEO of OPEN, Eric Wu:

1 Like