I made LA/Ventura & SF/Bay Area Underwriting tools you can use

I made LA/Ventura & SF/Bay Area Underwriting tools you can use

Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes

Hey, thanks for the time, this is my first post! I'm a UCSD Real Estate Development 2020 grad with a background in coding that got into flipping SFRs in the LA/Ventura area. When we get them at a low enough price, we build them into 3-4 unit rentals via ADUs with a 10-12% cap upon stabilization, otherwise we buy flips that we estimate will make ~20%+ return annually. Checkout 3790 Somerset Dr or 7115 Royer Ave, two of our flips that sold last month.

To do this better (more accurately, efficiently, and with more confidence), I created RUNCOMPS. I've been using it for ~2 years now, honing everything from functionality to recently building out the front-end design and using it on every property that comes my way for evaluation.

To quash any self-promotion claims, I am only looking for FUNCTIONAL feedback & suggestions from investors/developers/underwriters like yourselves on how I can improve this app to work better for you/me/everyone. There are NO purchase options on the following page, I am giving you all full access for free so I can collect feedback from the community here:

app.runcomps.org

For LA/Ventura data: your_best_friend

For SF/Bay Area data: robby the man in sf

I just finished the SF/Bay area today, here are the first 3 homes I used as a test of the Sales Comps ARV estimate function, literally the first 3 I picked at random from RedFin sold < 1 week that looked renovated. Pretend we found a fixer in this area of similar BR/BTH/SF as this property for $2.5M and we wanted to quickly know what it would be worth renovated:



Then to see if your renovated product in 6 months will be higher or lower in value, use Market Stats. Specifically, I like the Specific Zipcode function with the absorption and price plotted. Dipping absorption = lower price eventually, we want to see steady/climbing absorption and steady/climbing price, it indicates a good market:

  • - Its critical to realize the data to the right of the red-dash is filling up as transactions occur in the current Q. So right now, I know the 16 sales in 94402 that have occurred since 7/1/23 have been lower in $/sf than the last Q average, hover over the line for exact metrics.
  • - Or use the 'LA & Ventura' or 'SF & Bay Area' options under Sales or Rents to get an idea of ALL markets and their performance over time.

Hopefully this will stay up and I can get some feedback from you all! Looking forward to chatting below,

2Reply
88 views

Most Popular Reply

Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
3y
Quote from @Steven S.:

@Chris Morris As for the filtering algos themselves, it's pretty standard for the Days Back/BR/BTH/SF parameters as you would imagine, but the Radius filtering is done mathematically with the Lat & Lon. If you have 2 sets of Lat & Lon (representing your target address and a comp in your db) you can calculate the distance between the two very efficiently:

def haversine(lat1, lon1, lat2, lon2):
R = 3959.87433 # this is in miles. For km use 6372.8 km
dLat = radians(lat2 - lat1)
dLon = radians(lon2 - lon1)
lat1 = radians(lat1)
lat2 = radians(lat2)

a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
c = 2*asin(sqrt(a))
return(R * c)

This returns the distance in miles, and when iteratively applied to a db of transactions, yields your distance-filtered comps


 Thanks. That all makes sense, but how do you come up with a projection for renovated vs non-renovated properties? Doesn't that require classifying each property as one or the other to generate your stats.

For example, if there are 50 properties within the search radius and 20 have been renovated and 30 have not been renovated, then a projection for the after repair value cost of a house would be based on the sample of 20, and a projection for the current value cost would it be based on the projection of 30. But this requires you to put properties into one bucket or the other. How do you know which bucket to put a property in?

See this reply in the discussion

24 Replies

Jump to latestLatest
  • Bjorn AhlbladPro Member
    Investor · Shelton, WA · Member since 2017 · 6k+ posts · 6k+ votes
    3y

    I'm not much on software tools. I moved to the Bay Area in the mid eighties and bought rental properties and a primary which we initially rented, lived in for thirty years and sold in 2015 and 2017. We never made it big in cash flow, but when we sold the properties that was another story! That was a ride!

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Bjorn Ahlblad:

    I'm not much on software tools. I moved to the Bay Area in the mid eighties and bought rental properties and a primary which we initially rented, lived in for thirty years and sold in 2015 and 2017. We never made it big in cash flow, but when we sold the properties that was another story! That was a ride!

    I wasn't either until:

    (1) I had to manually get data & make customized charts similar to this in excel for our senior capstone Investor Brochure's Market Analysis section on our proposed 378-door mixed-use project in North Park, San Diego (the site is now was supposedly being built, called The Winslow, good capstone program)

    (2) We had a lot of deal flow, had to develop something to help analyze them, and help make sense of this market, things don't always go up


    I wish I had this during #1, and realized I needed it during #2

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y

    Here's a recording of how you can use the Market Stats to validate your ARV projections: https://www.youtube.com/shorts/SMZ0pidg1-Y

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y

    How do you log in and test it out for free?

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Chris Morris:

    How do you log in and test it out for free?

    Go to app.runcomps.org, enter the key from inside the 'quotes' below:

    LA/Ventura data: 'your_best_friend'

    SF/Bay Area data: 'robby the man in sf'

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y
    Quote from @Steven S.:
    Quote from @Chris Morris:

    How do you log in and test it out for free?

    Go to app.runcomps.org, enter the key from inside the 'quotes' below:

    LA/Ventura data: 'your_best_friend'

    SF/Bay Area data: 'robby the man in sf'

    Thanks. It's nice to see cost per square foot broken down by bedroom count. Where do you get your data? 
  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:

    How do you log in and test it out for free?

    Go to app.runcomps.org, enter the key from inside the 'quotes' below:

    LA/Ventura data: 'your_best_friend'

    SF/Bay Area data: 'robby the man in sf'

    Thanks. It's nice to see cost per square foot broken down by bedroom count. Where do you get your data? 

    Thank you! I really tried to make these tools plug-and-play into underwriting models.
    Most public or private tools (like Zillow monthly snapshots or RefFin market trends) often only provide averaged, non-segmented, data (like the chart I included in my original post with just average $/sf & absorption plotted). Don't get me wrong, that's good for broad interpretations of the market or detecting where things are heading in general, but I needed drilled-down tooling to really fill out & validate both my MF & SFR underwritings. Such as the rental-data chart you mentioned, or this sales-data chart below to segment the $/sf of closes over time by the market tiers (High = top-of-market closes i.e. Highly renovated, Low = bottom-of-market closes i.e. Distressed or as-is):


    Data comes from free public sources that my scripts clean, format, and join together. The front-end app I provided lets you perform calculations on & make charts from this database, essentially.

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:

    How do you log in and test it out for free?

    Go to app.runcomps.org, enter the key from inside the 'quotes' below:

    LA/Ventura data: 'your_best_friend'

    SF/Bay Area data: 'robby the man in sf'

    Thanks. It's nice to see cost per square foot broken down by bedroom count. Where do you get your data? 

    Thank you! I really tried to make these tools plug-and-play into underwriting models.
    Most public or private tools (like Zillow monthly snapshots or RefFin market trends) often only provide averaged, non-segmented, data (like the chart I included in my original post with just average $/sf & absorption plotted). Don't get me wrong, that's good for broad interpretations of the market or detecting where things are heading in general, but I needed drilled-down tooling to really fill out & validate both my MF & SFR underwritings. Such as the rental-data chart you mentioned, or this sales-data chart below to segment the $/sf of closes over time by the market tiers (High = top-of-market closes i.e. Highly renovated, Low = bottom-of-market closes i.e. Distressed or as-is):


    Data comes from free public sources that my scripts clean, format, and join together. The front-end app I provided lets you perform calculations on & make charts from this database, essentially.


     Got it. So what's happening when I select 'Sales Comps', enter a specific address, and *also* specify bed/bath count and square footage range? Is the address used just to give a location to search within, but then the comps to check are based on the bed/bath count and square footage range?

    And how do you come up w/ a 'distressed' calculation and 'renovated' calculation? Do you classify each property as one or the other based on its delta from the median price, or is there a 'hard' signal to indicate if a property was renovated?

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:

    How do you log in and test it out for free?

    Go to app.runcomps.org, enter the key from inside the 'quotes' below:

    LA/Ventura data: 'your_best_friend'

    SF/Bay Area data: 'robby the man in sf'

    Thanks. It's nice to see cost per square foot broken down by bedroom count. Where do you get your data? 

    Thank you! I really tried to make these tools plug-and-play into underwriting models.
    Most public or private tools (like Zillow monthly snapshots or RefFin market trends) often only provide averaged, non-segmented, data (like the chart I included in my original post with just average $/sf & absorption plotted). Don't get me wrong, that's good for broad interpretations of the market or detecting where things are heading in general, but I needed drilled-down tooling to really fill out & validate both my MF & SFR underwritings. Such as the rental-data chart you mentioned, or this sales-data chart below to segment the $/sf of closes over time by the market tiers (High = top-of-market closes i.e. Highly renovated, Low = bottom-of-market closes i.e. Distressed or as-is):


    Data comes from free public sources that my scripts clean, format, and join together. The front-end app I provided lets you perform calculations on & make charts from this database, essentially.


     Got it. So what's happening when I select 'Sales Comps', enter a specific address, and *also* specify bed/bath count and square footage range? Is the address used just to give a location to search within, but then the comps to check are based on the bed/bath count and square footage range?

    And how do you come up w/ a 'distressed' calculation and 'renovated' calculation? Do you classify each property as one or the other based on its delta from the median price, or is there a 'hard' signal to indicate if a property was renovated?

    The address you provide is passed to opencagedata's API to get the Lat & Lon coordinates of that address passed back to my program. Then your Radius & Days Back parameters cut down the full database to what is relevant to your search. Then the remaining transactions are filtered by the rest of your paramters (BR/BTH/SFmin-SFmax). If there are enough comps after that, you get your results. If not, there is a bit of fuzzy searching that will expand the filter parameters to try and get the minimum required number of comps to make a prediction & give you some results, but if you notice they are expanded much too far I would open up the radius & days back to try and get more representative results.

    The High, Mid, and Low market tiers are quantile groups based on the $/sf of every transaction that occurred during that Quarter. So if closes in Q1 ranged from $350/sf to $900/sf in 91367, the High-Tier would be all the transactions that fall under +-15% of $900/sf (averaged together), with the Low-Tier being +-20% of the $350/sf transactions (averaged together), etc. The %'s are not exactly as-coded, but that should give you the idea.

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y

    @Chris Morris As for the filtering algos themselves, it's pretty standard for the Days Back/BR/BTH/SF parameters as you would imagine, but the Radius filtering is done mathematically with the Lat & Lon. If you have 2 sets of Lat & Lon (representing your target address and a comp in your db) you can calculate the distance between the two very efficiently:

    def haversine(lat1, lon1, lat2, lon2):
    R = 3959.87433 # this is in miles. For km use 6372.8 km
    dLat = radians(lat2 - lat1)
    dLon = radians(lon2 - lon1)
    lat1 = radians(lat1)
    lat2 = radians(lat2)

    a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
    c = 2*asin(sqrt(a))
    return(R * c)

    This returns the distance in miles, and when iteratively applied to a db of transactions, yields your distance-filtered comps

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y
    Quote from @Steven S.:

    @Chris Morris As for the filtering algos themselves, it's pretty standard for the Days Back/BR/BTH/SF parameters as you would imagine, but the Radius filtering is done mathematically with the Lat & Lon. If you have 2 sets of Lat & Lon (representing your target address and a comp in your db) you can calculate the distance between the two very efficiently:

    def haversine(lat1, lon1, lat2, lon2):
    R = 3959.87433 # this is in miles. For km use 6372.8 km
    dLat = radians(lat2 - lat1)
    dLon = radians(lon2 - lon1)
    lat1 = radians(lat1)
    lat2 = radians(lat2)

    a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
    c = 2*asin(sqrt(a))
    return(R * c)

    This returns the distance in miles, and when iteratively applied to a db of transactions, yields your distance-filtered comps


     Thanks. That all makes sense, but how do you come up with a projection for renovated vs non-renovated properties? Doesn't that require classifying each property as one or the other to generate your stats.

    For example, if there are 50 properties within the search radius and 20 have been renovated and 30 have not been renovated, then a projection for the after repair value cost of a house would be based on the sample of 20, and a projection for the current value cost would it be based on the projection of 30. But this requires you to put properties into one bucket or the other. How do you know which bucket to put a property in?

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Chris Morris:
    Quote from @Steven S.:

    @Chris Morris As for the filtering algos themselves, it's pretty standard for the Days Back/BR/BTH/SF parameters as you would imagine, but the Radius filtering is done mathematically with the Lat & Lon. If you have 2 sets of Lat & Lon (representing your target address and a comp in your db) you can calculate the distance between the two very efficiently:

    def haversine(lat1, lon1, lat2, lon2):
    R = 3959.87433 # this is in miles. For km use 6372.8 km
    dLat = radians(lat2 - lat1)
    dLon = radians(lon2 - lon1)
    lat1 = radians(lat1)
    lat2 = radians(lat2)

    a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
    c = 2*asin(sqrt(a))
    return(R * c)

    This returns the distance in miles, and when iteratively applied to a db of transactions, yields your distance-filtered comps


     Thanks. That all makes sense, but how do you come up with a projection for renovated vs non-renovated properties? Doesn't that require classifying each property as one or the other to generate your stats.

    For example, if there are 50 properties within the search radius and 20 have been renovated and 30 have not been renovated, then a projection for the after repair value cost of a house would be based on the sample of 20, and a projection for the current value cost would it be based on the projection of 30. But this requires you to put properties into one bucket or the other. How do you know which bucket to put a property in?

    Props to you for thinking about this kind of stuff!

    This too comes from the quantile groups based on the $/sf, but instead of segmenting and averaging this together for all sales in the Q (like in market stats to track High, Mid, and Low), this instead groups all of the returned comps transactions, reflecting the High, Mid, and Low values for your specifically entered housing product (just like the market-segmented charts with High, Mid, Low). Then I know the market conditions for that type of product, in that current market, and can make a good estimate of what the ARV will be on the $/sf and total Sale Price basis (as long as renovated, high-tier transactions are occurring regularly in your subject property's market, this will be pretty accurate). Kind of like if you put a 0.5mi radius around your subject property, Sold < 6 months, set filter parameters so you are looking only at similar BR/BTH/SF homes, and then sort High to Low. You would then have the High-tier properties at the top, and as you scroll down, the as-is condition homes.

    The algo does not see quality (images/videos/home depot special vs custom builder), but it doesn't matter because over time, the high $/sf & Close Prices = renovated homes, and the low $/sf & Close Prices = as-is distressed homes for your entered housing product. The market values quality for me, and reflects it in the Close Price & $/sf, my algos simply reverse that logic. I know as-is condition properties with high value-add potential (especially if zoning changes permit a lot more units) can go for much higher $/sf, but that is the outlier rather than the norm and is easy to detect (google the top few comps and see last listing description, perhaps it was RTI, or major underutilization of the lot, etc)
  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y

    Got it. You assume that the higher quantile $/SF is for renovated homes and the lower $/SF is for non-renovated homes.

    I'm a software engineer so this sort of stuff interests me. :-)

    Big fan of using zoning changes to increase the # of units per lot, aswell.

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y
    Quote from @Chris Morris:

    Got it. You assume that the higher quantile $/SF is for renovated homes and the lower $/SF is for non-renovated homes.

    I'm a software engineer so this sort of stuff interests me. :-)

    Big fan of using zoning changes to increase the # of units per lot, aswell.

    We got the floodplain adjusted through FEMA on one land lot, all the sudden 6 units are possible!

    Thanks for going through the app and asking Q's, this thread ended up being a good summary of the app

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    3y

    After feedback here and elsewhere, I realize developers already have a method of acquisitions that works for them. I made a tool for developers to use in acquisitions, people who are doing and making decisions that matter constantly. Those two don't mesh very well, lots of friction & seemingly pointless on their-end to try and change what they are already doing since it is working. But that's who it is really built for. So from this app's/product's perspective, it's either best for a new-to-the-game flipper/wholesaler, or developers who want to get more efficient and scale their internal ability to review property & the respective market confidently, they will be highly interested and have near-frictionless interactions.

    I realize these two options yield a small market for ample & proper use. My question to the developers on here is: Do you check the market before buying, and if so, how do you do it?

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    3y

    I look at what things are renting for my looking at comps on Furnished Finder, for MTRs. My niche is unique and I can't easily get structured data from places like AirDna, etc. I have to find comps and reach out to them to see when their next availability is.

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    2y

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

  • Real Estate Broker · Redwood City, CA · Member since 2014 · 679 posts · 888 votes
    2y
    Looks like you are doing some really interesting stuff, and best wishes.

    when I make a buying decision, here is the process

    1: focus on a few zip codes or cities, with about 10-50 active listings. In my case, Hayward, foster city, 94401, and 94080

    2. focus on the lower price range SFH

    3. search for outliners

    4. visit the house and examine interior and neighborhood, determine ARV, repair cost, comparable, and rental potential

    5. prefer Two exit strategy should work, both flip and rent/hold. 

    6. determine offer price and negotiation strategy.

    7. offer



    Quote from @Steven S.:

    After feedback here and elsewhere, I realize developers already have a method of acquisitions that works for them. I made a tool for developers to use in acquisitions, people who are doing and making decisions that matter constantly. Those two don't mesh very well, lots of friction & seemingly pointless on their-end to try and change what they are already doing since it is working. But that's who it is really built for. So from this app's/product's perspective, it's either best for a new-to-the-game flipper/wholesaler, or developers who want to get more efficient and scale their internal ability to review property & the respective market confidently, they will be highly interested and have near-frictionless interactions.

    I realize these two options yield a small market for ample & proper use. My question to the developers on here is: Do you check the market before buying, and if so, how do you do it?


  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    2y
    Quote from @Steven S.:

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

    Isn't absorption decreasing?
  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    2y
    Quote from @Chris Morris:
    Quote from @Steven S.:

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

    Isn't absorption decreasing?
    Absorption is still down from normal, although it has mostly leveled off or showed small signs of growth (definitely not continuing its drastic decline), alongside a pretty steady growth in $/sf across all 3 markets. 

    I know the charts look like they go down at the most recent Q, but that is because the transactions for that Q have not finished yet (Q4 in LA for example, see the below gSlides I made). Also, SD & SF hasn't been updated since Q3 '23, so no Q4 results are there, just no clients to keep it updated for, and I have little personal gain/use from this data, might update them once Q4 finishes). I was thinking of adding some predictive % filled algo to plot the unfinished Q's current absorption performance (estimating the outcome/performance based on the current performance) and plotting that, but it felt speculative and not in line with the raw-data approach this app uses. The $/sf average is already accurate at showing the current Q's $/sf performance compared to the last Q's, because it just averages the closed $/sf of transactions that have occurred--it just may be drastically higher/lower until enough transactions have occurred to balance it out.

    To clarify chart reading and the data provided/plotted, I made this short slideshow, flip through it to be certain you are properly analyzing the charts. Some developer insights re market timing in there too:
    https://docs.google.com/presentation/d/1Dut9OpqZHzwGeYlStU-g...

    How would you plot the absorption of the current Q if this was your app? (I removed it, thought of estimating it, and decided on 'fill up' as described above)
    And did the slideshow change your opinion of the charts/market performance?
  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    2y

    @Chris Morris by the way the new access keys are

    LA/Ventura data: your_best_friend

    SF/Bay Area data: robby the man in sf

    SD/SoCal data: tommy the man in socal

  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    2y
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

    Isn't absorption decreasing?
    Absorption is still down from normal, although it has mostly leveled off or showed small signs of growth (definitely not continuing its drastic decline), alongside a pretty steady growth in $/sf across all 3 markets. 

    I know the charts look like they go down at the most recent Q, but that is because the transactions for that Q have not finished yet (Q4 in LA for example, see the below gSlides I made). Also, SD & SF hasn't been updated since Q3 '23, so no Q4 results are there, just no clients to keep it updated for, and I have little personal gain/use from this data, might update them once Q4 finishes). I was thinking of adding some predictive % filled algo to plot the unfinished Q's current absorption performance (estimating the outcome/performance based on the current performance) and plotting that, but it felt speculative and not in line with the raw-data approach this app uses. The $/sf average is already accurate at showing the current Q's $/sf performance compared to the last Q's, because it just averages the closed $/sf of transactions that have occurred--it just may be drastically higher/lower until enough transactions have occurred to balance it out.

    To clarify chart reading and the data provided/plotted, I made this short slideshow, flip through it to be certain you are properly analyzing the charts. Some developer insights re market timing in there too:
    https://docs.google.com/presentation/d/1Dut9OpqZHzwGeYlStU-g...

    How would you plot the absorption of the current Q if this was your app? (I removed it, thought of estimating it, and decided on 'fill up' as described above)
    And did the slideshow change your opinion of the charts/market performance?

     Hey Steven, I didn't take the time to go through the slides, just to be candid. :-) My comment was because the 'absorption' line in your graph goes down from 2023 Q2 to 2023 Q3 (and from Q3 to Q4) for all the graphs you posted, which is a decrease, IIUC.

  • Specialist · LA & Ventura · Member since 2023 · 119 posts · 60 votes
    2y
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

    Isn't absorption decreasing?
    Absorption is still down from normal, although it has mostly leveled off or showed small signs of growth (definitely not continuing its drastic decline), alongside a pretty steady growth in $/sf across all 3 markets. 

    I know the charts look like they go down at the most recent Q, but that is because the transactions for that Q have not finished yet (Q4 in LA for example, see the below gSlides I made). Also, SD & SF hasn't been updated since Q3 '23, so no Q4 results are there, just no clients to keep it updated for, and I have little personal gain/use from this data, might update them once Q4 finishes). I was thinking of adding some predictive % filled algo to plot the unfinished Q's current absorption performance (estimating the outcome/performance based on the current performance) and plotting that, but it felt speculative and not in line with the raw-data approach this app uses. The $/sf average is already accurate at showing the current Q's $/sf performance compared to the last Q's, because it just averages the closed $/sf of transactions that have occurred--it just may be drastically higher/lower until enough transactions have occurred to balance it out.

    To clarify chart reading and the data provided/plotted, I made this short slideshow, flip through it to be certain you are properly analyzing the charts. Some developer insights re market timing in there too:
    https://docs.google.com/presentation/d/1Dut9OpqZHzwGeYlStU-g...

    How would you plot the absorption of the current Q if this was your app? (I removed it, thought of estimating it, and decided on 'fill up' as described above)
    And did the slideshow change your opinion of the charts/market performance?

     Hey Steven, I didn't take the time to go through the slides, just to be candid. :-) My comment was because the 'absorption' line in your graph goes down from 2023 Q2 to 2023 Q3 (and from Q3 to Q4) for all the graphs you posted, which is a decrease, IIUC.

    Still interested in brainstorming how you would you plot the absorption of the current Q if this was your app (I removed it, thought of estimating it, and decided on 'fill up' as described above)

    Do you see a better, less-confusing way to plot this? Right now the most recent Q will always have negative slope until there are enough closed transactions to 'fill up'. So until the Q ends, we won't know if absorption went up or down, which is quite delayed IMO
  • Los Angeles, CA · Member since 2019 · 91 posts · 23 votes
    2y
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:
    Quote from @Chris Morris:
    Quote from @Steven S.:

    The market has done well since posting! Price & absorption steady/picking up in Los Angeles, San Diego, and San Francisco:

    Isn't absorption decreasing?
    Absorption is still down from normal, although it has mostly leveled off or showed small signs of growth (definitely not continuing its drastic decline), alongside a pretty steady growth in $/sf across all 3 markets. 

    I know the charts look like they go down at the most recent Q, but that is because the transactions for that Q have not finished yet (Q4 in LA for example, see the below gSlides I made). Also, SD & SF hasn't been updated since Q3 '23, so no Q4 results are there, just no clients to keep it updated for, and I have little personal gain/use from this data, might update them once Q4 finishes). I was thinking of adding some predictive % filled algo to plot the unfinished Q's current absorption performance (estimating the outcome/performance based on the current performance) and plotting that, but it felt speculative and not in line with the raw-data approach this app uses. The $/sf average is already accurate at showing the current Q's $/sf performance compared to the last Q's, because it just averages the closed $/sf of transactions that have occurred--it just may be drastically higher/lower until enough transactions have occurred to balance it out.

    To clarify chart reading and the data provided/plotted, I made this short slideshow, flip through it to be certain you are properly analyzing the charts. Some developer insights re market timing in there too:
    https://docs.google.com/presentation/d/1Dut9OpqZHzwGeYlStU-g...

    How would you plot the absorption of the current Q if this was your app? (I removed it, thought of estimating it, and decided on 'fill up' as described above)
    And did the slideshow change your opinion of the charts/market performance?

     Hey Steven, I didn't take the time to go through the slides, just to be candid. :-) My comment was because the 'absorption' line in your graph goes down from 2023 Q2 to 2023 Q3 (and from Q3 to Q4) for all the graphs you posted, which is a decrease, IIUC.

    Still interested in brainstorming how you would you plot the absorption of the current Q if this was your app (I removed it, thought of estimating it, and decided on 'fill up' as described above)

    Do you see a better, less-confusing way to plot this? Right now the most recent Q will always have negative slope until there are enough closed transactions to 'fill up'. So until the Q ends, we won't know if absorption went up or down, which is quite delayed IMO

     Sorry. No recommendations at this time! Thanks Steven.

Join the conversationCreate a free account to reply, vote on answers and follow this thread.