Wednesday, September 24, 2008

RETs Project Basics

RETS, (Real Estate Transaction Standard) is a way for real estate applications and MLS systems to communicate in a standardized fashion. A MLS (Multiple Listing Service) is essenitially a database of listed properties for a particular region that real estate agents use to list thier clients properties and/or find properties for thier buyers. Here in Chicago, we have one of the largest MLS's in the country, the entire northern part of Illinois is covered, It is called MRED (Formally MLSNI). MLS systems historically have been very propietary in nature, they had no real need for the systems to be compatible with other MLS systems, and some might argue that they were, to some extent, kept that way to increase their own value. So the familier story kicks in, the Internet comes along, sites like Realtor.com want to list all of the different MLS listings and have to deal with thousands of different systems. The real estate agencies don't really care initially, until, wait a minute, we can sell more properties this way. So, to make a long story short, NAR (National Association of Realtors) get's behind the RETS standard and all of the MLS systems have to get on board. 

As a developer that has focused on the real estate and financial industries for most of my career, I can't even express just how good it is to have a standard in place. I have spent many months of my life stringing code to try and pull listing data from uncooperative MLS systems. From the research I have done on RETS it is obvious that its not perfect, but it has to be an improvement.

So here is how the ball got rolling. My client, and Realtor and member of MRED wants a research application that will require running queries on current and closed MLS listings. I instruct her to contact the MLS and acquire RETS access. She has to have her broker fill out a form and send it off, along with a check for $500 (per year). After a few days an email comes from the board with a username, password, login url and a link to http://www.rets.org, and the Center for Realtor Technology (CRT) if we have any questions. I guess there is something to be said for not getting overwhelmed with information.

MRED runs a Variman 1.0 & 1.5 compliant RETS server. The server seems to be the most popular, it is open source and was developed by CRT. A quick browse of the Variman documentation reveals really nothing of value for the client developer, it is all geared toward setting up the server and mapping it to your current database on the MLS side of the equation. Here is am important reality regarding RETS; they have not defined a standardized set of fields that every MLS uses for properties. This is really born of the fact that local MLS systems require very localized fields. There is little use for fields describing the amount of ocean beachfront a property has that is located in central Montana. Each MLS still has their own fields, though there are some standard names. The idea here is that you connect to the RETS server and initally download the METADATA files that describe the data within that MLS. But first we must login...

2 comments:

Keith said...

James,

Google Alert pointed me at this blog thanks to your mention of CRT. I'm glad I found it, as it'll be interesting to see someone new to dealing with RETS.

Out of curiosity, what languages can you call out to from coldfusion? I wouldn't write a RETS client from scratch, if I could avoid it. I seem to remember Java being able to be called out to, so you might want to check out http://code.google.com/p/jrets/

(And of course, there's all the languages that libRETS supports, but I think jrets is the best bet for Java.)

James Rector said...

@Keith
Coldfusion 8 can actually call out to both Java and .Net, however many real estate sites are hosted on shared servers where this can be an issue. To be honest, now that I have gotten my head around the RETS metadata I am pretty determined to give this a shot without using a library. I also need to keep this blog updated as I go, and get my code samples looking better.

Followers