Land Flipping Hack: How to Price Land by County Using Zip Codes

Anthony Weiler shows how to price vacant land for direct-mail offers by scraping Zillow comps for a county, cleaning the data in Google Sheets, and calculating price-per-acre by zip code. He removes outliers, groups neighboring zip codes together, and creates acreage brackets to set accurate offer prices that boost response rates.
Chapters
If you're struggling to get responses with your direct mail campaigns and whether it be blind offers or ranged offers, as long as there's a price point attached to that, part of the reason can be because you are pricing ineffectively. So in this video, I'm going to walk you step by step on how I web scrape Zillow to gather the comps that I want, and then we're going to price it out by zip code. So what I have pulled up on my screen is a website called Apify.com, and Apify is a very good website that can practically web scrape almost anything. Like as you can see, TikTok scraper, Google Maps, Instagram. But for this, we're going to key in Zillow because that's where we want to scrape our comps. We're going to hit search. And as you can see, we have tons of, uh, tons of things that we could choose, but I'm going to choose Zillow Search Scraper and I'll show you why this works great. We're going to hit try for free. Oh, let me go ahead and log in with an account real quick. Continue with Google. I think I have it under my Wylerland account. If not, it doesn't really matter. Okay, cool. So we have this pulled up and I know if you don't have a tech background, this can seem a little daunting, but this is very simple to use. So what I'm going to do now is I'm going to pull up Zillow and let's say the area that I want to target is, let's say it's Lee County, Alabama. Whoops. Hold on. Didn't take me to where I wanted to. Lee County, Alabama. And I want to make sure my filters are correct. And since I'm in the land space, I'm going to choose land only. And let's say I also want to target 2 to 20 acres. We'll do 2 to 20, and let's do last 12 months. Let's do sold comps because I want to focus on sold comps only. And I want to use this link now, and I'm just going to paste it here. And all we need to do now is hit save and start, and it's going to scrape what we have, uh, keyed in. So it's going to scrape the filters that we have. So let's go ahead and click this, and this is going to take probably no more than 30 seconds. Let's see how long this actor takes. As you can see here, it says it's starting the crawler. Wow, 8 seconds in and we have 95 results. And let's just see here, and we have 95 here. So that's perfect. It pulls up everything that we need. Now it does look a little odd here. So what I'm going to do now is I'm going to export it and I'll just export it as a CSV. And as you can see, it looks like you can exclude certain fields, but it's not actually giving me that option here, which is fine. I'm just going to download everything as a CSV. It's pulled up here, and what I'm going to do is— it's not— let's see here. Not— it's not, but actually, I don't know why I've been having issues with Excel. It says I don't have a subscription when I do, so I don't know what's going on there. Oh shit, that didn't give me all the information that I wanted. Let me go back real quick. What? Oh, it's cuz I clicked overview. I want all fields. So that's good to know. All fields. My bad. Click it open. Let's drag this over real quick. Yeah, that looks a lot better. We have a lot more information. What I'm gonna do is I'm just gonna copy and paste this into a Google Sheets. So let me pull up Google Sheets on my other screen here real quick and we'll get that pulled up. One second here. And we are going to have to do some, um, some scrubbing as well too, because it looked like we had a lot of unnecessary fields. So let's go ahead and paste that. Should take a second. Perfect. So we have that pulled up. Gonna make this section bold, and we'll just highlight that as well just to give it a little bit easier to read. Now let's get rid of this. Okay, cool. So we have a lot of information that we don't need. I don't need the address. I'm going to keep the city because I want to know where the demand is, and by city and by zip code is definitely going to give me a good idea. But I'm just going to do city, address, state. We don't need this, so we're going to get rid of this because I'm targeting Alabama. I know that already. The street I'm going to get rid of. It's normally very inaccurate when it comes to vacant land. We're going to do zip code. Now I don't need this. Broker name. That's an interesting one. That is one you could keep if you'd like, and you could see which agents or excuse me, which broker is performing the most. And that can definitely help when it comes to sourcing out brokers. If you'd want to do it that way, there are, there are also some really good tools that can help you find brokers easily as well. Like softwares like LandStats can do that quite well. Let's go ahead and get rid of these fields. We don't need that. Let me go back real quick because there's one thing that I saw, this one, detail URL. So we're going to do listing link because I believe that's what it is. Let's just double check. Perfect, that's exactly what we want. So that's the sold link or the listing link. We don't need field text found from search. We don't need this. Okay, we don't need this. Now I'm curious to know what this is. So info date sold, why does it look like that? Okay, this field doesn't make sense. I'm actually going to use ChatGPT to scrub that the way that I want because that doesn't look right, but we definitely do need that information to know when it's sold. I want to make sure that everything else is formatted correctly as well too. That's days on Zillow. It's normally not accurate. Latitude and longitude coordinates, that's another one that's not that accurate as well too. So I'm okay with getting rid of those. So acreage, okay, so this is going to be the acreage right here. I can just get rid of that and I'm going to change this to acres because I'm almost 100% sure that that's acres and this is probably going to be the sold price. So let's go back here. Let's just verify with the listing link. 7.5 for $135,000. Yep, that's it. Okay, cool. So we're going to do sold price. What we want to do is we're going to change this as well too, to currency. Perfect. And we'll just change this to number. Make it look a little bit cleaner. Just do number, that's fine. Perfect. Let's see what this is. It's— no, we don't need the Zestimate. Assessed value, time on Zillow. We'll get rid of those. Zip code, we already have zip code. Just want to make sure I have everything that I want. Latitude, longitude, okay, string. So combines that. What if there's a string on the date just to make the date look a little bit cleaner? Does not look like it. Okay, cool. Well, let's go ahead and get rid of all these fields then that we don't need. Yeah, okay, we're going to get rid of all that. All right, cool. So now we have everything that we want. What I'm going to do now is let's sort this out a little bit better. Let's insert a column to the right. Actually, let's move it— let's actually do it here because I'm going to want a price per acre as well, which which is going to just be— let's do equals this divided by this here. That didn't line up the way that I wanted to. Why did it not? Because it's showing as— should be that. Let me troubleshoot this real quick. Why is that not acting the way I want to? Oh well, since we're having trouble with that, I'm just going to actually have ChatGPT do it. Should have no problem doing that. Let's go ahead and just do Lee County, Alabama. I'll just remove this, it's fine. Okay, we're going to download, do it as an Excel. Let's go ahead and pull up ChatGPT. Oops, I'm doing this on my other screen. Let me pull it over here real quick. Perfect. Actually, let's start with this. How should I ask you this? I always start off with how should I ask you this because it gives me a much better prompt rather than just prompting it on the fly. Now this is a pretty bad prompt. Okay, I'm just going to upload it first. Okay, perfect. So let's go ahead and we're going to— I'm trying to just drag it here. I just want to make sure it receives it first. Perfect. Great, thank you. I need help reformatting the sold date. That is easily readable for me. I don't understand that format. So let's go ahead and see what that does. It should take— should take no more than a minute to do something like this, I would think. Okay, still, still going here. Let's see, that doesn't look right, but here it does. So it looks like it just kept this and it removed and it just added that there. So let me scroll over a little bit here. Perfect. So the sold date is formatted the way that I would want. Okay, and we have different dates here, so that's really good. That is very helpful information that we need. Can you also put the PPA as the price per acre for each row? Please ask me any questions if you don't have you need before executing? I like asking it that just in case it needs more information. Dollar amount, that's good. It just helps prevent prompting it a bunch more times if it doesn't come out the way that you'd want. Perfect. And this seems— this doesn't seem right. 13.5 acres, the sold price was— oh, that's $1.5 million. I thought that was $105,000. Yep. So $74,000 makes sense. Damn, that's expensive. $750,000 for— let me pull out my calculator just to double-check here. I'll actually just pull it up here. A second here. Okay, calculator. Let's drag this bad boy over just to make sure that I'm not crazy. We have $750,000 and we're just going to divide that by— you know, I probably just did it backwards doing the price per acre. $52,000. Okay, well, I'm not getting granular, but that seems That's accurate enough for me to be able to do this. I'm not worried about that. Okay, cool. Actually, I don't have to respond to it. I'm going to work with this. Let's download that. And this is everything that I want. I'm just going to copy this. I'm just going to put it into our Excel spreadsheet. I'm just actually going to get rid of this and just put this in here. Looks like I have everything that I want. Okay, cool. What I'm going to do now is— let's see here— data. What I want to do— where's my view? Where did I go? There we go. And we want to freeze one row. Perfect. There we go. Cool. But I also want to get rid of— I want to get this out of here. And this is really all the information that I need now. So what we're going to do is we are going to— first, I want to see which cities and zip codes have the most traction or the most demand. And then what I'm also going to do is I'm just going to start by removing the obvious outliers, then we're going to move forward from there. So what I'm going to do here is let's go to sort. Whoops, let me go to— I want to do advanced options. It's my bad. Data has header. And let's start first by— let's start by zip code. Let's see what the zip codes look like. Let's see, 36801. Okay, there's around 12 there, or 13. 36804 seems like there's a good amount as well. Same with 36874. So really where I'm going to be focusing on is 36801, 804, and 874, where at least that's where I'm going to want to spend more time and energy because that seems to be where the demand is and I have more data to work with, so it's going to be easier to price as well. And the other ones I'm gonna have to most likely see if I can merge them together if they are bordering one another. So when it comes to understanding that, you could just easily go to like zipmap.net, for example. And so if you're using a VPN like I do, it gets pretty annoying because it says that it doesn't work. We're just gonna disconnect. We're gonna refresh. Okay, perfect. So that pulls up, click on Alabama and we are in Lee County, Alabama. This website is a little janky, unfortunately, but it gets the job done. Where the hell are we? Okay, where's my little bar? There we go. And I just wanna see where the zip codes lie. So 36804, 36874, what was the other one that seemed pretty, pretty high? I think 36801, if I didn't say that one already, and 36801. So we have here, here, and here. Seems to be a lot of data here, and if it is consistent with one another, I don't have a problem merging that together. Where it may get a little bit tricky is this little pocket right here. It's probably not going to be as much data. And also over here, this is where Auburn University is as well too. Maybe an area I may just stay away from depending on how expensive it is. But let's go ahead and just take a look here. Okay, let's start by removing outliers. So we're going to go to Data, Sort Range by Advanced Options, has headers. Let's start by— actually, we're going to add multiple columns. We'll go back there and let's start first by zip code, and then we're going to do it by— actually, let's just do it by acres first. My bad, guys. Let's do acres. That way we can start by removing the obvious outliers. But one thing to keep in mind, some areas may just be more expensive as well too. So this is one thing, if you want to be more granular, you can actually go back and we're going to add another column here. And we could do it by zip code, and then we could do it by acres, for example, because then we can find out which areas are obvious— or like, which comps are obvious outliers within that specific location. Now, that can be a little bit tricky at times because we don't really know that for sure in terms of the areas that are more expensive. But again, if we filter out by zip code and city, we'll have a much better understanding by um, by discovering that. But for the time being, I just want to remove clear obvious outliers. So I'm going to start first by just pure acres first, and then removing the very expensive ones. Like this one's $500,000 an acre. That seems really expensive. But we can also see here for Auburn, this one's $113,000 an acre. Take a look at another— $225,000, $275,000. That's still double than the, than the other one. Smith Station, $562,000. So these are some clear obvious outliers that I'm going to get rid of. And if you ever want to double-check, that's why I keep the listing link, which makes it very helpful. Then you can just take a look at it. Okay, is this BS or is this just like a really, really good comp? That's just crazy. It did take a year to sell. This is one I'm definitely gonna get rid of though. Again, we just want to get rid of the clear obvious outliers. Here's another one, but that's a $113,000 I mean, it's definitely more expensive. And this is if you are pricing the county as a whole. And what I'm seeing so far, there's like, there's big discrepancies here. I'm seeing a handful over $100 grand of the sold price within these acreage ranges, even up here. Okay, I'm definitely removing this one. That's crazy. And the price per acre as well too, like that's a big difference. So I'm actually going to This is a really good example. I want to filter it by— let's do it by zip code, and then I'm going to do it by acreage. It's going to be easier for me to understand. So we have $66 an acre, $80 an acre, $34. This one's a lot cheaper, but this one seems to line up as well too. So we have some differences right here. Take a look at these, figure out what's going on here. This is a public record. And again, this is another reason why I keep, keep the listing link on here. Public records are normally very unreliable. So we're going to get rid of that. I know some people in the infill lot world, they use public records quite often, but for vacant land, more so in rural America with larger acreage, it doesn't really pan out the way that we'd want to. However, if you do see data consistent with everything else, it may be okay to keep it, but I just like getting rid of it. Let's take a look at this one real quick. This is just a screenshot of a survey. Not all of the sold, or, um, the sold comps with photos on it— not all the photos transfer over, so it's okay sometimes just seeing a screenshot. That one went under contract same day, so that's a— could be a really good comp. I should get rid of all this crap. Okay, and that's $80,000 an acre, 34 That's really expensive though, so that could definitely be an outlier. I'm not sure why that's so expensive, but we have $75,000 here. Okay, this is a good listing so far. Okay, that definitely increases the value for sure. Let's figure out what's going on with the house. Okay, yeah, that's what I'm going to get rid of. We normally don't get stuff like that across our plate. We have 500,000— is this the same listing? No, but it looks like a house is included in this one. As well. And there's a pond. This looks like the same comp. I'm going to delete that anyways. So as you can see, when it comes to removing outliers, you can definitely take some time and energy. That's why some people, they do like outsourcing it. We do have that as an option in the school community, the Land Lab, but pricing is something that I definitely recommend you go through it a few times yourself and then figure out if you want to outsource it either with you know, someone like myself at The Land Lab, or if you want to just hire a VA and teach them how to do it right. But again, this does take time and energy. We're already like 20 minutes in and we're not anywhere near where we'd want to be just yet, so it definitely does eat up time. So we have 9 acres for $380,000. Okay, that seems fine. $455,000. This one's in an HOA, and this is where nuances come into, come into play because this is near Auburn University. Maybe that could be something that increases the value even though it's in zip code 36801. And Opelika seems to be very, very popular in terms of the data. Auburn, not as much. And Excuse me. This is another reason why I like sorting it by city and zip code, because it gives us a really good understanding of what things— where things are more expensive and what's really going on. But also too, like, I should have, should have kept the zip map, but Opelika, one of the zip codes is near Auburn University as well too. So those are the nuances. If you're not from the area, that's harder to understand, or if you're not working with an agent. And this is where it gets a little bit trickier when it comes to your direct mail campaigns, if you're putting a price point on there. We have 9.3 for $455,000, 12 for $300,000. Seems like a big discrepancy here compared to the other ones. This seems like a normal comp. Yeah, just says beautiful record, Lake County Road. We'll keep that even though that's a huge, huge difference. That's way too expensive. We're getting rid of this. We're gonna get rid of this one as well too for $1,500. $388. Okay, now this may seem like a discrepancy, but look how we change the acreage. So we went from 3 acres to 15, now we're back down to 2. So do not be surprised by this. So what I like to do in situations like this, you could just insert like a break right here and you could highlight this so you know that there's a break. In the, in the data right here, because now we're starting a new one here. So we have $20,000, then we have $3,000, then $6,000, then $12,000, then $18,000. So again, kind of all over the place. This one's inside of an HOA. Looks really nice. Doesn't really give us much information. So there's a stream, but that should not increase the value by that much. But then we have a really cheap one. This one's probably not real. This is a public record. When you see a screenshot like this, this is a public record 9 times out of 10. And we scroll down and you could see that it says public record right here. So again, those we do not like to have. Those are very inconsistent when it comes to the data. Delete that. This one could also be a public record. It is. We're going to delete this as well. So if you're not— if you don't have the listing link, you may think that those two, like, okay, well, that's consistent data because those two are very similar in the price per acre. But if you don't open up that link and realize that it is a public record, you would be keeping that, and that could significantly skew your pricing, right? So we really need to take that into consideration. Here we have $13,000 an acre, 65. I may jump back to this one because that one's really cheap. This one actually seems like a good comp. Something must have been wrong with it because that's relatively cheap. I don't see anything about the listing on here. Doesn't seem sloped, anything like that. Maybe some wetlands or flood zone. I have no idea. Really hard to tell. See, yeah, we're just going to go ahead and get rid of that. Actually, I'm going to keep it. I'm just going to keep it for, for the time being. Let's keep with removing the obvious outliers. 15, 13, these all seem to be good so far. We have a dip right here with these two. These are duplicates, it looks like. Okay, sellers credit. Okay, that's 7.8 for 75. We'll keep that for now. This is most likely duplicate. Actually, this seems to be a subdivision. No, same listing. See this $10,000 seller credit? It's the same listing. We're going to get rid of one of them. Let's get rid of this one. $11,000, $14,000. These all seem to be somewhat in line with the pricing. This one's more expensive, $8.3 million. This is inside of an HOA. There's a lot of stuff going on here. Normally that does skew the pricing, and I'm just going to remove this one because we normally don't deal with HOAs. We try to scrub those out as well too on our list. This one's an outlier. I'm definitely removing this one. $225,000, $275,000. So we have a little bit— okay, that's why. So we have a break in the pricing here. We'll just do the Camp Hill. I don't think Camp Hill is actually part of Lee County. And this may happen sometimes with Zillow. Zillow will say it's just going to have data in there that's not supposed to be there. Is in what county in Alabama? Yep, so that's not the right comp that we want. So we're going to get rid of this one, just add a break up here. I don't know if Valley is another one either. Just take a look. That's Chambers County. Okay, so we're going to get rid of the Valley comps as well. And one way you could do that as well is just taking a look at ZipMap to see which zip codes are there as well too. Phoenix City's there, Salem, Smith Station. I don't know about Waverly. Let's just double-check that. Okay, so this is part of Auburn. Okay, so that's Lee County, Alabama. So that is fine. Cool. So Waverly can also be expensive as well too, given the location. So we have $225,000, $275,000, $160,000, $150,000, $495,000. Okay, no way. Not $113,000. Big difference here. Different zip code but still within the same city, so that's a huge jump. Could be a public record, hard to say. So far it is. Okay, let's get rid of it. 3680, let's just take a look at this one. That's $4.2 for 350, 350. Then we have this one, $11.84 for 14. And you'll also notice as well too, is normally the smaller the acreage, the higher the price per acre and the higher the price per acre, the, um, the lower the, excuse me, the higher the acreage, the lower the price per acre. That's not always the case, but that is most common when it comes to pricing stuff out. So again, just keep an eye out for that, but that's not always the case. Just always go with what the data is telling you. 38th and 10th. This is really odd. I'm just going to get rid of Phoenix City. It's only 2 comps and those are a little off. It's at a row above. Okay, $18,000, $13,000, $14,000. These all seem to be somewhat in line. We got a dip here, and what I'm looking for too is, is the land defective as well? Because that's going to change the pricing. I don't want to take that into consideration and skew my averages because we will be using averages at the end of the day when it comes to this stuff. Really don't see anything telling me that it's defective. If you really want to go above and beyond, you could put the parcel number on whatever mapping source that you use to see what the layout of the land looks like. But we also have some sort of an idea taking a look at this, maybe some structures on it, hard to tell. Um, but yeah, I think that's fine. I'm going to keep it. 17 for 85— excuse me, 17 acres and $85,000 all in all. That seems fine. $60,000— this one's an outlier. I'm removing this one. That's what I mean by a clear, obvious outlier. $37,000— this one is another outlier that I'm going to get rid of. If you want to take a look at the listing, you can, but this is one I'm just going to remove. It doesn't make sense to keep. And see how these are kind of all in line with one another? There are some dips, but it's nowhere near as much of as like $3,000 an acre, right? Like, those are the ones that we for sure would want to get rid of. We have $10,000, $10,000, $12,000, $10,000. Gets more expensive right here, so that's interesting. Let's see what we got going on here. Okay, this one's— this one seems legit. We'll keep it. It's really interesting how that went up to $10 grand an acre. We could always take a look at the listing itself in terms of the description. We have some value add here. See if there's anything that stands out. Partially developed. Okay, looks like two established prepared home sites, so septic, wells, electric as well. Definitely increase the value. And we got a little bit of a dip here, so we got a creek running through it, maybe a small sliver of wetlands. You see the topography as well too. Normally when there's a stream, you're going to see some slope, so there is some slope there, but it doesn't seem anything that's like make or break. Some storage units on the property as well, which is fine. Good hunting land. Road access is a little odd, but it's right there. It's like in the middle of the, of the subdivision, it looks like. Interesting layout, but I think all that's fine. So the price makes sense to be a little bit lower. We have 2 for 12, then— okay, this one is a huge difference. We're gonna get rid of that. We have 9,000, then we have 145. Actually, let's go back. That's really odd. Let's just take a look. It's a public record. Let's get rid of it. We have 8.24 for 145. Makes this one so special. I mean, decent road frontage, good-looking piece of land so far. Yeah, that's fine, we'll keep it. But that is just a huge difference. And that's actually a good example of the higher acreage actually having a higher price per acre. That's not always the case. 300 feet of paved road frontage, I mean, that definitely adds value for sure. It's really interesting though. We have $11,000 an acre, and then we have a change here. Let's take a look at Waverly. $17,000— huge difference, $83,000 an acre. I mean, this seems like a real comp. We got all the photos that we need, all the real photos. Doesn't really have a description. That's just so odd why that one's so much more expensive than the others. This one's not a real comp. See, that's lot 10. Which one's this? Undisclosed. Could be a duplicate. Doesn't look like a duplicate. Okay, we'll keep those. Yeah, those I'm actually okay with keeping with. So what we'd want to do now is actually just, I'll create another column to the right. And what we're going to want to do is we're going to break this. We want to break these down by averages. So in the next video, what we're going to be doing is we are going to combine whatever zip codes that we need to do, because as you can see, 36801 does not have as much data as we would like to break it down into averages, right? So we would be doing, because we're, I would want to target 2 to 20 acres in this campaign. So I'm going to need to combine 36804 with 36801. This is within the same city, so hopefully that's going to give me the numbers that I want with averages. Then also look into combining Auburn with another one. 36874 was the one I was going to want to combine with Opelika as well too, and maybe combine Auburn with these as well. Smith Station is in the bottom right-hand corner, so maybe I won't use that one. Hard to figure out what I'm going to do with this one just yet, or just yet, but in the next video I'm going to show you how we're going to then split it up by acreages, have acreages into certain brackets, and then we're going to break it down by price per acre within those ranges. And then we're going to upload it into our master Excel file and then dial in our pricing even more. So as you can see with pricing, you really want to take this serious because you are doing this with direct mail campaigns and it is not cheap when it comes to your direct mail campaigns. And it's normally a lot more effective when you have a price point on there in comparison to a neutral letter just saying, hey, you're, you're interested. Um, so definitely play around with your pricing. Use this as an example. You'll have plenty more pricing videos in the future that I'll be doing, and hopefully you guys find that— found this helpful. If you did, hit the like and subscribe button for more videos like this, and I'll see you guys in the next video when I break this down more in depth.
More from Anthony

How Vincent made $76,000 in profit with High Ticket Land Flipping while working a 9-5









