Metodik — Hyreskarta Stockholm

Fullständig teknisk dokumentation av hur kr/m²-värdena på hyreskartan beräknas. Sidan är skriven för journalister, forskare och alla som vill fact-checka siffrorna.

1. Datakälla

Underlaget är samtliga aktiva hyresannonser i vår databas vid tidpunkten för sidrenderingen. Databasen byggs genom automatisk scraping av 40+ svenska hyresvärdar och plattformar (HomeQ, Qasa, Samtrygg, Heimstaden, Wallenstam, Stena, de kommunala bostadsbolagen i Stockholms län, med flera). En fullständig lista finns på /hyresvard.

Scrapers körs på intervaller mellan 1 och 120 minuter beroende på källa; en annons blir synlig i underlaget inom minuter efter att den publiceras, och försvinner ur underlaget när hyresvärden tar bort den. Vi använder bara aktiva annonser — historiska annonser ingår inte i kartans beräkning.

2. Geografisk bucketering

Varje annons placeras i en bucket baserat på de geografiska fält vi har från scrape-källan:

  • Om annonsen har fältet district ifyllt och det matchar en känd Stockholm-stadsdel används stadsdelen som bucket.
  • Annars används municipality (kommun) som bucket.
  • Annonser vars geografi inte kan lösas till en känd bucket (t.ex. en stavvariant vi inte har centroid för) exkluderas från kartan. De ligger kvar i databasen men syns inte här.

Bucketens geografiska mittpunkt är en manuellt verifierad centroid (se web/src/lib/geo/centroids.ts) som återspeglar områdets bebyggda del, inte den administrativa mittpunkten — Nynäshamns admin-centroid hamnar exempelvis i skogen, vilket vore missvisande i kartan.

3. Rensning och outlier-filter

Innan beräkning filtreras annonser enligt:

  • rent_sek > 2 000 — rimlighetsgräns för månadshyra i Sverige.
  • area_sqm i intervallet 10–400 m² — utanför detta är värdet nästan alltid en parse-bug (t.ex. en nolla för mycket).
  • Beräknat kr/m²/år i intervallet 200–8 000 — realistiska svenska hyror ligger cirka 800–4 500. Värden utanför detta är enhetsfel (månadshyra läst som årshyra eller tvärtom).

4. Beräkning per bucket

För varje bucket beräknas kr/m²/år per annons som:

kr_per_sqm_year = (rent_sek × 12) / area_sqm

Av dessa värden rapporteras per bucket:

  • Median (50:e percentilen) — den siffra som visas som färg på kartan.
  • P25 och P75 (25:e och 75:e percentilen) — spridning inom området, visas i popup.
  • Sample size (n) — antal annonser i urvalet, bestämmer cirkelns storlek.

Buckets med n < 5 döljs från kartan. Med så få annonser är medianen instabil och kan kastas av en enda ovanlig annons.

5. Förstahand, andrahand och varför det är viktigt

Den svenska hyresmarknaden har två fundamentalt olika prismekanismer:

  • Förstahandskontrakt följer bruksvärdesprincipen: hyran sätts genom kollektiva förhandlingar mellan fastighetsägarorganisationer och Hyresgästföreningen för hela fastighetsbestånd åt gången. En nybyggd 40 m² i Farsta kan ha ungefär samma förstahandshyra som en 40 m² i innerstan om de ligger i samma beståndsförhandling. Förstahand mäter alltså bestånd, inte efterfrågan.
  • Andrahandskontrakt är marknadssatta inom ramen för Hyreslagen (en andrahandshyra får ligga högst ~10 % över förstahandshyran före kostnadspåslag). I praktiken speglar de utbud och efterfrågan i ett område.

Därför är andrahand standardvyn på kartan — det är den analytiskt meningsfulla bilden av “prisnivå per område” i den bemärkelse en icke-svensk läsare förväntar sig. Förstahand visas för transparens, men en hög förstahand-siffra i ett område säger snarare att området har många bostäder i dyra bestånd (ofta nyproduktion) än att hyresmarknaden där är het.

6. Färgskala

Vi använder en sekventiell viridis-inspirerad färgskala (gul → lila). Den är färgblindsäker och identifierbar för läsare som känner igen kartor från dataredaktioner. Skalans minimum och maximum är den 5:e respektive 95:e percentilen över alla tre dataset (andrahand, förstahand, alla) — detta gör att samma färg betyder samma kr/m² oavsett vilken flik du tittar på, vilket är nödvändigt för att jämförelsen ska vara ärlig.

7. Kända begränsningar

  • Underlaget är scraped annonser, inte tecknade kontrakt. Beboda-men-ej-listade lägenheter ingår per definition inte.
  • Vi har inga data om upplåtelseform (bostadsrätt, kooperativ hyresrätt). Kooperativa hyresrätter (främst SKB) ingår i förstahand-siffrorna om annonsen inte särskiljer.
  • Postnummer är inte tillgängligt från alla källor — därför bucketerar vi till stadsdel/kommun, inte postnummer. Granulariteten är bra men inte hyperlokal.
  • Kortvariga sommarlistings (t.ex. < 3 månader) kan höja andrahand-medianen i turistintensiva områden eftersom dessa är prissatta per månad på korttidsbasis.

8. Reproducerbarhet

Råaggregatet är fritt nedladdningsbart:

Licens: CC BY 4.0. Attribuera som “Bostadsögat — bostadsogat.se”.

9. Kontakt för fact-check

Journalister och forskare som vill granska underlaget: skicka datum, kontraktsfilter och bucket(s) till hej@bostadsögat.se så skickar vi det råa anonymiserade urvalet (annons-URL, hyra, area, datum) för oberoende verifiering.

Senast uppdaterad: 2026-04-20. Dokumentation över ändringar i metodiken publiceras här när de görs.