To rent or to buy a house??

Spurred by some comments to a previous post I quickly run these numbers. They analyze the case of house price not rising in the next five years. I’ll take more time to check them if I really get to a point of deciding, but they should be correct.


This data (fairly typical in my area):


Home price: $200,000

Down payment: $0

Interest rate: 6%

Monthly mortgage: 1210

Rent: 750

Annual gains on investments: 6%


If I run this for 5 years and house appreciation 0% I get:

$33,043 on investing the rent-mortgage difference

$30,609 on paying the mortgage (equity accumulation + tax savings at 28%)


If we assume to put down 20% to buy the house then the numbers are even worse:

$83,542 on investing the down payment and the rent-mortgage difference

$67,548 on paying the mortgage (equity accumulation + tax savings at 28%)


There are other things to consider: house repairs for houses, annual raises in rent, etc… etc…


Are those assumptions reasonable? So it is better to rent than to buy? Well, over the long term houses do tend to appreciate and the more leverage you have, the more you reap the benefits. Over the short term, run your numbers. There are so many assumptions you can make, that it become almost a personal opinion what is best.


Running the numbers help you in making sure than it is at least an informed opinion. It makes your assumptions explicit

My quest for a new home…

I’m refining my understanding of how to value residential properties. There is this rule of thumb: buy when you can get a rent for the property which is at least 1.2% of the property price (or in another form, when the home price is 7x the annual rent). This is an approx for a more formal spreadsheet (which I have).


This is fine and dandy, but in the area I’m interested in a typical one bedroom condo sells for around $200,000-300,000 and you can get a monthly rent of $1,000-1,300. This doesn’t work by a very large factor. Hmmm…


Let’s change the target to a cheaper area. Now I can probably get around $800 monthly. To make things work I need to find a condo for $67,200. Not an easy task, almost impossible.


It looks like for me it is hard to find a house in an area I like and at the same time make a good investment (unless the market bails me out by raising home prices at a high rate). There is quite a large disconnect between house prices and rents now. Maybe the residential market is really on the brink of a fall… Time to rent again?

Book: “The coming crash in the housing market”, John R. Talbott

My wife and I are planning to move somewhere where you can walk to shops and restaurants. We were thinking about selling or renting our current suburbia home. So, as usual, I picked up a bunch of books from the local library. This is one of them. Amazon reviews are here.


My opinion on the book

The author did a good job of providing numeric evidence of the possibility of a real estate bubble. What I didn’t like is that he didn’t provide a logical framework to evaluate residential real estate. I was expecting some sort of DCF model that uses rent as the free cash flow. Instead he cites Median house/Median Income and some other contingent evidence to prove his point. It is like a book on stock evaluation that just uses historical P/E as a measure. He also fail to present similar situations that resulted in a crisis. Quite disappointing in that regard…


How it relates to my choice of sell or rent

I created my own excel spreadsheet to look at the two different scenarios (if you are interested I can share). It looks like renting is the loosing one. We gain more by selling and investing the equity in a conservative way. The book made me take a hard look at our local real estate market: the ratio Median House/Median Income is about 4.3 (above 3 is bad). Rents are low and house prices have been growing like crazy. This makes me think to buy a small condo, or even to rent for a while. We haven’t really decided yet.


Book summary

1.      House prices are high while everything else is low: rents, economy, stocks… Yes, there are bigger houses now and rates are low (but won’t stay low forever)

2.      Mortgage takes more and more of the average salary, foreclosures and personal bankruptcies are at record high. People is more and more leveraged

3.      The house market is far away from an ideal market. A bunch of lenders really make the prices. Bubble can easily create in inefficient markets

4.      People think houses can just go up: same mindset as the internet bubble

5.      House prices have been growing like crazy. The fast growers of the past are the fastest growers now: it is like momentum in stocks

6.      Many of the previous crashes were based on leverage and some kind of Ponzi scheme

7.      It will start if rates goes up (people can afford less), if they go down (the economy will be very weak), banks become less aggressive in lending, congress reduces tax benefits

8.      Under a worst case scenario Fannie Mae and Freddie Mac ($3 trillion of very leveraged and derivative invested money) stumble and then it may be a worldwide depression as banks credibility goes down

9.      What you can do: decrease your exposure to real estate (rent, downsize or move to cheaper area), be less leveraged, hedge your real estate exposure by not buying real estate cyclical stocks

Please the perfect object stand up!!

I always thought: why people write this very long posts? Here you have it.


How do I design my objects? What is the set of constraints that dictate my design decisions? People talk about objects in very different contexts. A certain amount of confusion derives from not identifying the contexts for our objects.


First, kings of them all, there are “business objects”. My library is full of OO books that describe how to design these guys. We have patterns and anti-patterns. Everybody is out there promoting their own methodology. But if we go deep enough, the most important design task in creating them is assigning responsibilities. This concept is as old as OO itself; it finds its roots in CRC cards. But I digress. Once again, when you design your business objects you have to be very careful to assign responsibilities to the objects that have the right information to perform them.


It would be nice if this was all you have to code. A crazy bigot (like me) would think that all the rest is infrastructure (ala naked objects). But we live in the real world, so let’s get down to it.


A second category of objects I often encounter are “network objects”. These are the guys you use to communicate data across tiers (logical, physical, webservices…). They are usually quite dumb objects, not too much logic in them (if any), and your application creates them by filling their properties from the more noble business objects. Something along the line of the value object pattern. Is assigning responsibilities a very important task here? Heck no!! They don’t even have methods!! The most important characteristic they have is bandwidth optimization; you want to retrieve a whole bunch of stuff in one single round trip. More often than not you sacrifice everything else (manageability, good design …) to achieve that.


This is why I don’t believe the quite common ideal of remoting your business objects. The set of constraints you use to design them is completely different (often opposite) to the constraints needed to go over the wire. When anything goes over the wire it becomes just data. Moreover not all of your business state needs to go on the network, but this is another story…


Another common object category is “database objects”. There is a big debate if they are the same as business objects or not. I dont’ want to go there, but … If you want them to be the same you usually pragmatically sacrifice a bit of OO purity to make them more similar to the database tables (you don’t want to fight your object relational mapping layer, you want to help it out). To say this in a more positive way, you design your domain model with an eye on how you are going to persist it. If, on the other end, you are willing to create a separate set of objects to represent data coming from the database, then the main constraint for these guys is the same as your database tables: normalization. This is not surprising as they are mirrors of your database. Again assigning responsibilities and being network friendly take the back seat in this case.


There are many other object categories I often found useful (i.e. façade objects). I don’t want to discuss all of them here. Things are already boring as they are. The central point is that it is very hard to define generic guidelines that work well in all the different contexts. You got to think about your context first.


The funny thing is that I work in a place where we are supposed to design features that are generically interesting in all these scenarios. You use C# to code all of them. Oh well, design is the art of choosing trade offs…

My first (and last?) post…

Hello folks,

My crazy coworkers finally convinced me to get my own blog. They think I’ll say something funny, but I won’t – so don’t link to me – it’s probably not worth it. For the few perseverant ones, here is what I plan to talk about: object orientation, c#, sports, financial stuff and books (not in that order). See you later.


BTW: strange how this blog thing reduces the complexity of one’s personality to a bunch of categories on the left of the screen…

Here I am.

I’m Luca Bolognese.

I’m the Principal Group Program Manager for the C#, VB and F# languages, compilers and IDEs. Before that, I was the LINQ guy.  Before that, I was the ObjectSpaces guy.

In my spare time, I read a lot of books. I mean: a lot. I’m not sure how much I retain. I also try to keep some form of physical shape by playing sports and walking.

All in all, I try to recreate my own Italian lifestyle in the Kirkland area.