kilazi. blog
Products

AI Property Valuation in Buenos Aires, Where Nobody Publishes the Sale Price

Tasalo values an apartment from asking prices, a condition quiz and a little AI. Here's how the data was earned, and where the tool still fibs.

The short answerTo value an apartment in Buenos Aires without public sale prices, start from the asking price per square metre for its neighbourhood and room count, adjust for condition (damp, old gas pipes, building age), and label the result as an asking price, because closed deals land around 5% lower. Tasalo, my AI valuation tool, works that way and publishes asking medians for 46 neighbourhoods; the AI only nudges the number from photos.

In Buenos Aires, every apartment has two prices: the one on the portal, and the one it actually sells for. Nobody publishes the second one.

So sellers improvise. The asking price is often sentimental: a round number the owner won't go below, because it feels right.

Then the price drops a couple of thousand dollars every few days until the listing is "burnt": stale, and "hard to sell".

So I built Tasalo. Describe your apartment and get its value, a rental analysis and a PDF report. A weekend idea that grew to 30 commits, a Mercado Pago checkout (Argentina's default way to pay), login by emailed link, coupons and 46 neighbourhood price pages. It's live, in Spanish, at tasalo.tulocal.ar; quotes from it are my translation.

46neighbourhood price pages (48 tracked)
2,508asking prices for sale in one snapshot
1,763asking rents in pesos, same snapshot
8condition questions that move the price
40indexable pages in the sitemap
2019the year the city's open price data stops

How do you value an apartment in Buenos Aires without sale prices?

Start from asking prices, adjust for condition, and say out loud that it's an asking price. That's the whole method. The AI is the smallest part.

The engine is arithmetic: a price per m² for your neighbourhood and room count, times your size. The range runs from 12% under to 15% over.

Then the quiz, which was the actual idea. Eight questions, each worth a fixed percentage. Severe damp: minus 12%. Original gas installation: minus 4%. A building over 50: minus 8%.

The condition quiz on Tasalo's evaluation form: eight dropdowns, from building age to general upkeep.
The quiz header, translated: Be honest, every answer moves the price. The buyer will find these problems anyway.

Upload photos and an AI that reads images rates the finishes and nudges the number. Optional. A garnish. The meal is the data.

Where does the data come from when the portals block you?

From the portals' own search pages, fetched slowly from inside a real browser, after two funnier methods failed.

One of the big listing portals sits behind a web application firewall, a bot blocker. Plain requests worked for a few dozen pages, then came back as HTTP 202 with an empty body, a polite "prove you're human": the firewall's challenge, not an answer. My first scraper read that as "no listings" and cheerfully recorded zeros. A neighbourhood with zero apartments. In Buenos Aires.

Attempt two: copy the firewall's token cookie from a real browser and replay it. It worked exactly once. The firewall fingerprints the connection itself, so a valid cookie from the wrong kind of client is still a stranger.

What works: the fetch runs inside a real Chromium, requests two to three seconds apart, a fresh browser context every 25 or so, any challenged context binned on the spot. Search cards already carry price, size and rooms, so no single listing ever gets opened. Fewer requests, fewer enemies. Three workers were fine. Four unpaced ones got the whole run blocked after about 150 requests.

Bonus comedy:

  • The count went backwards. Two scrapers shared one checkpoint file, each overwriting it from its own stale copy. The "dead" one I'd relaunched was only napping in a retry backoff.
  • The government spells creatively. The city's price file says "Paterl" for La Paternal and "Boca" for La Boca. Without aliases, three neighbourhoods quietly lost their history.

How does one valuation tool become 46 answer pages?

Each page answers one question people actually type, in its first sentence, with a number and a sample size. Palermo: a median of USD 2,941 per m² from 57 listings, plus the spread, its city rank and its drop from the official peak.

Tasalo's Palermo page: the median asking price per square metre, the middle half of listings, its rank in the city and the drop from its peak.
One of 46 neighbourhood pages. Translated: a Palermo apartment is listed at a median of USD 2,941 per m², measured on 57 active listings.

On top sit the rankings: priciest, cheapest, best rental yield, biggest drop from peak. Every page points back to "value your own apartment".

Two rules keep it honest. Snapshots are stored by capture day, so a falling median is measured, not claimed. And unchecked facts don't ship: train stations were checked against per-line station lists, and after several wrong first drafts only 23 train entries survived across all the neighbourhoods.

It's the rule I use everywhere, from AI property search down: feed the machine real records, then make it show them.

What isn't honest yet?

Six things, listed, because a valuation tool that hides its weak spots is just a confident stranger.

Tasalo's price history chart for Palermo: the city's quarterly series up to 2019, then a dashed line down to the current asking median.
The city's price series up to 2019, then the current asking median as the dot. The small print underneath is the mislabel below.
  • The history line is mislabelled. My pages call the city's price series closing prices. The statistics office's own reports say it's built from a big portal's listings, so it's asking prices, like mine. Correction owed.
  • The "real value" is a guess with decimals. Tasalo shows a market value 20% below asking. That 20% has no source. The only closed-deals index I found puts the haggle near 5%.
  • The five-year projection is compound interest in a suit. It's the neighbourhood's yearly trend, compounded five times.
  • Two datasets, not one. The evaluator still runs on an older 15-neighbourhood price table; the pages run on fresh medians for 46.
  • The homepage brags. It shows a big round "properties analysed" number that my own runbook says the data doesn't back.
  • La Boca outranks Recoleta. The page admits why: its listings skew to renovated lofts on the tourist circuit. A median is honest about its sample, not about the city.

And the testimonials: three glowing, star-rated quotes on the homepage, all placeholders. They're gone from the live page. A testimonial is a lie until a customer says it. Real usage: a handful of evaluations.

Here's the whole engine minus the PDF, fed with the neighbourhood pages' medians, the two discounts side by side. Play with it:

-asking estimate
-Tasalo's "real value"
flat 20% off, no source
-closed-deal haggle
about 5% off

Will I come back to Tasalo?

I think so, because the hard part is done and the fun part isn't. The scraper runs, the pages index, the checkout works.

Its sibling already lives on tubarrio, my site for gated communities: a land-plot valuer that tells you whether it used real nearby listings or a fallback guess, and that found plots advertised on the water list 1.33x higher. In a drawer: a pipeline that turns a phone video walkthrough into a 3D scene on a rented GPU that costs nothing while idle.

If an agency ever wants it, I know the move: build the demo before you pitch.

Every apartment in this city has two prices. Tasalo knows one. I'd like to meet the other.

Value an apartment

Tasalo is live, in Spanish. The quick price range is free.

Try Tasalomax@kilazi.com

Questions people ask

How much does an apartment cost per square metre in Buenos Aires?

Across one snapshot of about 2,500 sale listings, the city-wide median asking price was about USD 2,300 per square metre, from roughly USD 1,000 in Villa Lugano to about USD 5,800 in Puerto Madero. These are asking prices; an index built only on closed deals puts the final price around 5% lower on average.

Are Buenos Aires apartments priced in US dollars?

Yes. Sale listings in Buenos Aires are almost always priced and negotiated in US dollars, and market indexes report the price per square metre in dollars. Most rents are quoted in pesos (about nine in ten in one snapshot of listings), so a rental yield calculation has to convert one side before comparing them.

What is the gap between asking and closing prices in Buenos Aires?

Around 5%. An index built only from completed sales of used apartments put the negotiation gap at 4.96%, after narrowing from about 9% in 2020. Individual deals vary a lot: an overpriced listing may never close at all, which no closing index can measure.

Why use the median price instead of the average?

Because a handful of luxury units can drag an average far away from what a typical apartment costs, while the median barely moves. For neighbourhood pages built on 50 or so listings each, the median plus the middle half of the market gives a fairer picture than one average.

Can an AI valuation replace a professional appraisal?

No. An AI valuation built on asking prices gives you a fast, honest range and tells you what moves it. For a sale, a mortgage or a legal process, you still want a licensed appraiser who sees the apartment, the building and the paperwork in person.