Hacker News new | past | comments | ask | show | jobs | submit login
The Stack That Helped Opendoor Buy and Sell Over $1B in Homes (stackshare.io)
192 points by lukehamilton on March 9, 2017 | hide | past | favorite | 73 comments

Just as interesting to me as the tech stack is the business stack. There have to be some really tightly-managed pipelines of deals because Opendoor is fronting capital to buy up the houses. Interesting scaling challenges there on the capital side.

If Opendoor works out how to quickly vacate the newly-bought property, then automate much of the project coordination activity that is done to flip the property by automatically scheduling and bringing in contractors and inspectors, that could lead to some really interesting returns. Even if the sprucing up is not to flip for huge amounts, just the usual repairs and freshening changes, combined with an empty house to show, could easily lead to semi-automation of a buy-low sell-high, high-volume business of conveniently buying a lived-in house, and selling a nice-looking, nice-smelling, high-curb-appeal house for much higher than the original property owners could bring. Automate the scheduling of staging and unstaging, and goose the numbers even more. I can see all sorts of other follow-on monetization streams from this simple change in the process you guys introduced, thanks for the thought-provoking write up, I look forward to reading much more about your successes in the future.

But it basically is flipping isn't it? Maybe they can work out how to flip a little cheaper with technology but this model only works because flipping is so hot right now.


It looks similar, but we're actually very different than flippers.

House flipping is about finding underpriced houses (either by having a sharp eye, or by buying distressed houses), and then optimizing the amount of money invested vs. the return.

Opendoor is much more focused on the customer experience, trying to give fair offers to every home - everyday homes, not distressed ones. We typically don't spend very long renovating our homes. We'd rather reinvent the buying and selling experience itself, and do a larger number of transactions.

More info: https://www.opendoor.com/blog/flipping-the-real-estate-indus...

That's defining it a bit narrowly isn't it? You guys buy homes, do a (little) work on them and then sell them for more, all in a short time frame. Maybe your innovation is in doing lots of small flips but it still seems like flipping to me.

I'm going to speak for OpenDoor here so someone from them can probably jump in, but the company I started and shut down was around financing house flippers and I have a background in both capital raising and real estate.

There are many types of 'house flipping' and most of the differences are just various shades of grey.

For illustration purposes:

At one extreme: Focus on buying dramatically undervalued assets, putting in minimum work and reselling. (Do this using lots of people labor in looking for deals.) - IMO, this is the only way to make money consistently flipping

At the other extreme: Buy houses, put dollars in to them and acheive an ROI (lots of people labor in rehab). This is what you see on "house flippers" or other TV based flipping shows. Typically these systems work when the market is appreciating, but the value the 'flipper' puts in is really questionable vs the market appreciation. Most of the people that do this strategy eventually end up getting hammered in a downturn.

Opendoor is basically disrupting the first group. They are using a quantitative process (automated valuation models), then overlaying a fundamental process on top (having someone look at the data to make sure it makes sense.) That is how they make sure they are buying undervalued assets.

The disruption happens because they are eliminating the huge amount of man hours it takes to find undervalued deals, by paying slightly more, and building a good brand and well as fine tuning their marketing channel.

At the end of the day, a certain percentage of people need to sell their house very, very quickly and OpenDoor will be able to pay more than flippers in the first extreme so they will gain a ridiculous amount of market share.

Downside risk: The risk is that they need to scale their operation so large to get economies of scale that when a downturn happens, they are too top heavy and end up getting financial destroyed. Many people may also assume that they could systematically missprice houses (pay too much), but I doubt that is a real risk.

It seems to me that they actually disagree with you, see the comment further up this thread.

>Opendoor is much more focused on the customer experience, trying to give fair offers to every home - everyday homes, not distressed ones.

So do you think that this response is being a bit coy and they are in fact buying deeply discounted homes?

Also, I guess I don't understand where they actually make money. If someone is unable to sell a home for a long period of time and then sells it to OpenDoor, why are they able to then turn around and sell it for more? In this very thread they attest that they're not flippers because they're not adding much real value to the home.

It is a nuance.

Opendoor: Targets sellers that want to sell quickly without any hassle.

Flippers: Targets sellers that want to sell quickly without any hassle. Some of them are distressed. Some of them are just in a hurry.

There really is no real distinction. How they make money is clearly laid out on their website. They buy for low, sell for higher than the bought. I believe they also cut out realtors.

There's inherently wrong with wanting to sell quickly. If grandma died, leaving me her house 3,000 miles away from where I live, the last thing I'd want to be saddled with is trying to sell it. I know nothing about selling (or owning) a house, the real estate market in that area, etc. A fair enough price ASAP is what I'd be looking for.

Why not make one call to a local agent and have it sold for 5% more money?

I'm all for paying $2 for convenience if coffee on the run. Not sure I would pay $20k to save a few hours work around selling a house.

Also, real estate agents are just as incentivized to sell the property as quickly as possible. Selling a property at say $1M in one week (3k commission) > 1.05M in three weeks (only $150 more for two more weeks of work).

I wish real estate agents commissions where tiered. 1% for selling at market rate but 10% for anything over the market.

Agents are not free! Around where I live, you can expect to pay 3% to each of the two agents involved. Selling the house for 5% more doesn't help you if you have to give 6% of the sales price to the agents. I wonder how much of what Opendoor is trying to achieve involves removing or reducing the agent involvement.

I never said they were free.

If getting an agent on your own cost 5%-6%, and opendoor is charging 12%... you are losing 6-7% by using opendoor. That is a LOT of money.

Correction... "There's nothing inherently wrong..."

Longer comment on "flipping": https://news.ycombinator.com/item?id=13835150.

> Also, I guess I don't understand where they actually make money.

Sorry for not being more clear on that. When we make an offer on a home, we present a headline price ("we think your home is worth $X"), and an upfront fee for our service (6-12% depending on our estimation of the risk, where traditional real estate fees are 6%).

We try to make the fee as transparent to our sellers as possible, so they can make a fully informed decision.

Most house flippers are not some evil group going around tricking grandmas. Their typical pitch goes like this:

I will buy your house immediately. The way I can do it is to offer you a lower price than you can get if you wait to sell it. Here is my offer for 88% of what your house is worth.

If they wanted to change their pitch it would be...

I buy houses from people. I can close right away, but I need to charge you a 12% fee for a fast closing. That really only costs you 6% because you dont have to hire a broker.

Economically, they are the exact same pitch. There is nothing wrong with either approach. I do understand you not wanting to be associated with flippers, but the reality is hard to argue against.

Our average fee is below 8% total, so a 1-2% premium for selling vs a broker and we'll continue to push it lower.

If you consider holding costs of a home, prepping to sell, etc Opendoor is often at or below cost parity for a segment of sellers for a dramatically better experience.

Ah the beauty of the corporation. Make money while the sun shines, then when the downturn comes, wind up the company and move on to the next big idea. Preferably something counter cyclical to the housing market.

I mean you get appraisal A (original house), then you know what additional profit and features to add to get appraisal B. There is a lot of slack in the remodel business and economies of scale to exploit so you can probably guarantee a nice return. Especially if you can guarantee a pool of work to contractors (start with having them bid on it and then maybe get a few in house contractors). You can probably get exclusives on materials as well.

Perhaps another way of thinking about it is in terms of being a market maker versus a speculator. I think of Opendoor as more like the former, where traditionally a flipper refers to the latter.

Market makers make money on the spread and facilitate liquidity. Speculators hold an asset (sometimes short term) for a rising price.

Flippers traditionally do benefit from a rising market because of longer hold times.

isn't being "[...] much more focused on the customer experience, trying to give fair offers to every home [...]" just a layer on top of the business model - which seems to be indistinguishable from flipping houses?

That's fair - the customer experience is a layer on top of the business model. The second part of my comment is more relevant:

> We typically don't spend very long renovating our homes. We'd rather reinvent the buying and selling experience itself, and do a larger number of transactions.

I think we're getting a bit hung up on definitions in this thread. We do flip houses, in that we buy them and then resell them right away. But in real estate, the connotation of a "flipper" is someone who's either (1) really good at identifying underpriced houses, or (2) really good at getting return on investment (ROI) through renovations. One of the best ways to identify underpriced houses is to take advantage of people who are down on their luck and need to sell fast, so many people also think of "flippers" very negatively.

Opendoor's model isn't based on finding underpriced houses or renovation ROI. We charge a fee (transparently and upfront) for the service of buying your home and taking on the risk of selling it. Our goal is to make that fee as small as possible, and to provide our services to as many people as possible.

We're not trying to make huge amounts of money on every transaction. We're trying to do a lot of transactions, at a fair price.

Very true on the financing, and how it connects to our business. There have been plenty of companies in the past whose business model is to buy distressed houses and flip them; Opendoor is coming from a very different angle. We'd like to buy and sell houses at normal prices, do a lot more volume, and make smaller margins on each transaction than the traditional "flipping" business.

Because of that model, it's very important that we (1) have access to a lot of capital, and (2) renovate and resell the property quickly, so we can put the money to use again.

the business model is fascinating. the capital requirements make opendoor seem crazy on the surface, but it is not at all insane if you dig deeper.

the short term model is predicated on managing inventory like a retailer and diversifying holdings like a trader. mastering both functions, let alone one, is very challenging, but far from impossible. if opendoor can acquire data and predict transactions better than competitors, the mountain top becomes eminently more climbable. from a portfolio perspective, the early stages are actually the least risky because opendoor can cherrypick the best real estate markets, and within those markets, cherrypick the best homes, where "best" means the properties most likely to sell quickly and profitably.

the long term vision has not been articulated, but it seems like opendoor could grow into a platform for homes much like amazon is a platform for consumer goods. opendoor would provide the buyers, product guarantees (e.g., home inspections passed), the open house experience, and predictive analytics (e.g., home X has a 80% chance of turning over in 30 days if priced at $1M) while others manage financing and inventory risk. if this conjecture is right, look for opendoor to (a) lower prices and (b) streamline real estate transactions with automation where possible and where not possible, to empower untrained (i.e., cheap) individuals with computer vision and smart software to perform tasks like certified professionals. if neither happens, consider the conjecture wrong. :)

Thanks for the comment -- and it's very accurate in terms of where we'd like to go.

On a tangential note: empowering untrained individuals is important, but we often do the opposite too. Many of our internal tools are designed to make trained professionals/experts as efficient as possible.

For more speculation on Opendoor's business and where we might take it, I think Stratechery has a good writeup. https://stratechery.com/2016/opendoor-a-startup-worth-emulat...

yup, i also wrote a deeper analysis after someone posted about opendoor in december.

what will be super interesting to watch is how the market size (i.e., annual real estate transactions) changes in response to reduced friction. historically, disruptive technology like uber widens the market substantially because it unlocks all this demand artificially suppressed by friction. because of opendoor and similar startups, will transaction volume increase by 10%? 50%? 200%?

opendoor is the classic VC investment: huge upside with controllable, sane risks.

It would be great to move as a home owner and be able to avoid the 5-6% realtor cost on both ends (10-12% total). This could enable millions of people choose better living arrangements. Unfortunately for people in California, Prop 13 will still create huge costs to moving.

It would be more interesting to know why this stack helped the business.

Otherwise it's just a list that doesn't have much connection to the $1B part in the title.

I'd say the main direct effects were (1) we were able to iterate very fast on our internal tools, which are used by internal operators to manage each transaction; and (2) our data science setup has allowed us to price homes incredibly accurately. Many companies have estimates of a home's value, but Opendoor puts its money where its mouth is ;)

Happy to answer any more questions about it.

I am actually building a business on real estate appraisal in Argentina (reva.com.ar), building many of the tools you mention to get the most accurate representation of values of homes. Im quite surprised you got it so well that can build a business around buying thehomes yourselves.

Would you be willing to share an email so i can ask you a couple of questions if appropiate?

Sure! My email is alex@opendoor.com.

I'm a software engineer at Opendoor- happy to answer any questions!

Can you please write an email to your Marketing Department and pass along a note?

Here's the text:

"While effective in your goal of creating Brand Recognition of 'Open Door' please be informed that the blitz campaign with the radio ad featuring the sound of a doorbell ringing, followed by the company name, 'Open Door,' was one of the most unabashedly Pavlovian ear-worm manipulation techniques I can recall. It almost makes 'Head On - apply directly to the forehead' look like high art. DING DONG - OPEN DOOR! DING DONG - OPEN DOOR!

Because of this tactic, I will never, ever reflect upon the brand of Open Door with anything but disgust. Yeah, you got market share, good for you. How you did it, however, makes me want to puke."

It might sound extreme, but I have a sensitive brain. That goddamn commercial was everywhere. And terrible.

I am sorry about that ad. We cut it after two weeks, and modified it after the first week to be less intrusive.

I'll take fault for letting that through review; I got your email the first time it went live. I learned a lot from it, as did the team.

Yeah it was really bad and hurt the brand. Subsequent ones are a lot more appealing and, not kidding, very high quality and effective.

Glad you've decided to take a more mature tack in advertising, but as we all may well know, you only get one chance at a first impression. As such, I don't intend to brow-beat you or your team, just let you know that certain choices have consequences. That commercial was essentially a landmine and if shrapnel happened to take off a limb or two of yours in the process, I hope it's a good learning experience.

Always appreciate the feedback.

Like most companies, we used an agency and gave them a brief containing benefits we want to convey, which they turn into a script and produce. We learned that getting closer to the ads is quite important. We don't work with that agency anymore.

I only learned about "head on" in the last month or so. In case anyone missed the reference, it's an annoying TV commercial:


I like that you do code reviews of every commit, do you have any issues with getting people to spend time reviewing? Also, it looks like you have a very broad code base (backend, frontend, mobile, machine learning...), do all of your engineers review code for all of those areas? I've found that in small teams sometimes only one person really understands a particular section of code, which can result in poor quality code reviews. I'm interested to hear if you've experienced that, or if you've managed to work around it.

FYI, the title of https://www.opendoor.com is: "Opendoorflexible-dateno-repairopen-houseonline-processfair-inspectionfast-closinghome-readycustomer-supportfair-offertransparency | Sell your home the minute you're ready.", which looks like a mistake to me. Probably need to add another test ;)

I think everyone on the team understands that helping unblock other engineers is as valuable as writing some code yourself. It generally hasn't been an issue getting timely review, though we have discussed tracking the average size of the PR queue as a metric if review times did worsen.

Most of the time other engineers on your team will review your code, but often engineers will pop across teams and doing code reviews if they have the time and the context. One change we've made is moving towards tagging a few engineers who might have the right context when you submit the PR.

Thanks for the tip about the title; will take a look!

We've found mention bot to be helpful internally for intelligently selecting who should be performing reviews: https://github.com/facebook/mention-bot

Give it a try!

Hadn't seen this before, but looks pretty cool. Thanks!

Thanks for popping in!

It's mentioned that the "projected cost" logic outgrew Rails, but there's no mention of what that microservice eventually wound up running. I'm curious what you had success with.

The cost structure service is actually what I've been working on recently. We spun up a fairly lightweight flask service (on our kubernetes cluster) that is capable of serving the cost structure to the rails app and for analysis. At its core, it uses a small DAG library we wrote, and on top of that has a migration framework that can represent cost structure changes over time as distinct versions that can be served simultaneously.


I love code reviews, and the code review pipeline, but one issue I keep running into is handling a bottleneck'd review process, and I'm wondering if you have any tips or advice.

How do you stay productive while blocked on a review request?

If you stay productive by swapping to a different task, how do you avoid merge, dependency, and task switching headaches between what's under review and the "back-up" tasks?

I'm not sure if that question is clear, but I'm betting on you having encountered similar enough situations to know what I'm getting at.

We started in 2014 with a Ruby on Rails monolith and Angular frontend, both of which were good ways to move fast while we were very small. We use Webpack to build our frontend apps, and serve them using the Rails Asset Pipeline.

Within your MVP how did you handle authentication between your Angular apps and your Rails backend? I know you implemented Paladin to handle auth between your new microservices but I'm curious what auth looked like in your MVP.



When we first started we used a pretty vanilla version of Devise. The angular application just used session based auth. The easiest way to get the MVP happening was to have Rails generate the landing page of the SPA so we got sessions for 'free'. As we started to add more options for authenticating to the application to handle micro-services and our mobile application we took advantage of Warden/Devise and implemented a custom strategy for handling JWT authentication in addition to the regular session based strategy that comes out of the box.

The JWT authentication is Guardian compatible since we use Guardian to drive Paladin. It was a relatively straight forward addition with Warden/Devise to provide authentication based on either strategy which allows us to take advantage of these different schemes with minimal updates to our core application.

Thanks for the quick and detailed response!

I use Devise most of my Rails apps, so in my ApplicationController I have `before_action :authenticate_user!`.

Did any of your frontend Angular apps send/request data to a Rails controller? If so, did you have to configure your Angular requests to send the session cookie so it would pass the Devise auth? This is the part that I don't quite understand yet.

In my next side-project I want to continue using Rails for the backend and scaffolding for most pages but I have a small React app that I want to include as well (keeping track of stats for a basketball game). But I'm not really sure what's the best way to go about authorizing whether or not the user has the permissions to upload data to a specific profile. I've only ever used Rails/Devise and all user input occurs through a form.

If you could point me in the direction of what I should be Googling for I'd appreciate it. Best of luck with Opendoor!

If you're generating the page from your rails server then the cookie that is set for sessions would be already available and you can make calls without worrying too much about authentication. If you want to use tokens or OAuth strategies there's a bit more to it but you should be able to find lots of information on it with a bit of googling. Here's an article that seems to cover the basics. https://technpol.wordpress.com/2013/09/23/angularjs-and-devi...

I'd usually google for a collection of the tools I'm looking at. To find that article I searched for "spa authentication with rails and devise"

Good luck with your side project :D

What make and model door knobs do you use? I manage some rental houses and have wanted to automate showings go some time. Do you add a cellular Wi-Fi hotspot temoparily too?

how many people are working there with technical stuff (dev, ops, data etc)?

We have about ~40 people in the engineering org, including the data science team who all frequently write code as well.

That is good to know, thanks.

What an amazing business model. Not something I would have considered as I would consider the capital requirements too high to purchase almost any house. They will walk a fine line between being too picky and excluding an average consumer or having too high a price and losing money. But regardless it is very cool and potentially disruptive, much more than Redfin. A silicon valley version of "We buy your homes for cash"

EDIT: As commentors on BiggerPockets are saying, it is just like Carmax.

As a senior computer science student, who constantly tries to learn and keep up to date on his own time, I felt a little overwhelmed after reading this article. I know that they are just tools that can be learned, but my question is about junior devs. How do you go about hiring (if it is the case that you do hire junior devs) and training them?

Ah, they're just tools that can be learned. I had to run around the company quite a bit to make sure I got all the information right.

We don't require experience in any of these tools to get a job at Opendoor. Most programming experience can be transferred between different technologies. We do a lot of pair programming to bring people on board, plus feedback in code reviews.

Just to add to what Alex said. We also wouldn't expect you to be knowledgable on _all_ the tools we use. We have a very open team that's happy to help and mentor.

Thanks for the answer! If there is any resource that you remember had an important impact in your learning path as a scalable application programmer I'd very much appreciate to hear about it. Cheers.

I'm just a little over a year out of school myself, so I'm far from an expert, but happy to share some things that come to mind.

I haven't had a chance to look through it in-depth yet, but this looks pretty interesting: https://github.com/donnemartin/system-design-primer

As far as things that have had an important impact in my learning path, I do have a few Ruby books I really like (the key here is to get your hands dirty with code as you read along): - https://www.amazon.com/Ruby-Under-Microscope-Illustrated-Int... - https://www.amazon.com/Metaprogramming-Ruby-Program-Like-Fac... - https://gumroad.com/l/rebuilding_rails

I think reading about (and looking at the code) for things you use and trying to understand how they work under the hood has been super useful: http://aosabook.org/en/index.html

Having smart people around to learn from is extremely helpful too.

Happy to chat more if you'd like. Just drop me a line: connor[at]opendoor[dot]com

So, OpenDoor == CarMax for homes?

Data scientist at Opendoor here. That is a very accurate analogy.

I wonder, if the stack would be radically different if a) interest rates increase to 'old normal', and/or b) price trend reverses in the opposite direction.

Global housing prices: http://www.economist.com/blogs/graphicdetail/2017/03/daily-c...

this looks quite clever, opening doors via a code? nice. that would certainly get my attention. One thing, are you guys doing any modelling using graphs? or is all your data normalized and stored in relational DBs?

I can't speak for the data science stack, but everything in the web stack is Postgresql (with the exception of Redis for background jobs and things of that nature).

For anyone who was wondering, they use smart locks from Schlage.

But i'm curious for two things:

-why they use those except for the different models Schlage has.

-where is Schlage api's documentation :p

Hey! Zain from Opendoor here. We actually just switched to using Kwikset 914 locks instead of the Schlage ones. API docs are basically nonexistent for both, but the Kwikset is a lot easier to reverse-engineer than the Schlage! Feel free to email me if you have specific questions about either lock. zain@opendoor

Wow, that's seriously open of you guys! Thanks

Forgive my ignorance: does "buy and sell $1B in homes" mean your total GMV to date is $1B?

Buying and selling over $1B in home is not impressive when done by a computer. If someone did it single handedly maybe. I hate when people quote numbers to impress and confuse others. At $100,000 that's 10,000 homes. Selling 10,000 items is not impressive. So why should I care what stack you used?

We purchase and sell the homes, including the inventory management (repairs, renovations, security, utilities), home visits, pricing & negotiation, mortgages, title & escrow... real estate is quite involved and the largest and most emotional transaction most people will make in their lives

Have you done it?

Sell 10,000 items? Yes, on a daily basis.

Buying a home is much, much more complicated than buying "an item", even if you leave out the complications of a mortgage.

Yes, because selling a house is the same as selling internet gadgets

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact