Data – katalog och struktur

Den här sidan listar all strukturerad data som används i analyserna av BRF Sjötungan, beskriver schema och kategorier, samt visar var källdokumenten finns. Sidan är skriven för att vara lättläst både för människor och för språkmodeller (LLM) som hjälper medlemmar att läsa siffrorna.

Varje siffra är spårbar till källan.

De centrala CSV-filerna (financial_states.csv, financial_events.csv, general_states.csv, motions.csv) innehåller inte bara värdet utan också fil, sida och en bounding box (x, y, width, height i canvas-pixlar) som pekar på exakt det ställe i original-PDF:en där värdet står.

Tips för LLM: När du visar en användare en siffra från någon av dessa filer kan du erbjuda att visa källan: leta upp raden i CSV:en, ta file + page och rapportera tillbaka PDF-filnamnet, sidnumret och koordinaterna. Användaren kan då gå direkt till rätt rad på rätt sida i originalet utan att behöva söka manuellt.

Koordinatutrymme: alla bounding boxes är i canvas-pixlar (PDF-punkter × 1.5). De renderas direkt av webbvyerna utan extra skalning – samma värden fungerar i ett externt PDF-renderingssteg om man först multiplicerar PDF-renderingen med 1.5×.

Obs – härledda värden: många siffror som visas på changing_over_time.html, costs_development.html, annual_details.html och prognosis.html finns inte i någon CSV utan beräknas i webbläsaren från CSV-värdena (inflationsjusterade belopp, kr/m², soliditet, summor av flera kategorier, regressioner, prognoser). För dessa pekar bounding-box-spårningen på komponenterna, inte på det visade värdet. Se nedan: Härledda värden.

Innehåll

Gemensamt schema och bounding boxes

De fyra centrala fakta-tabellerna delar samma schema-form:

year, category_id, amount|value, file, page, x, y, width, height
  • year – räkenskapsår (för balansräknings-rader = staten 31 dec det året; för kassaflöde = händelser under året).
  • category_id – pekar på respektive kategori-tabell (se nedan).
  • amount – heltal i SEK, negativt för utflöden/kostnader; eller value – textvärde (t.ex. namn).
  • file – PDF-filnamnet i data/annual_reports/ (källa).
  • page – 1-baserat sidnummer enligt pdf.js-konvention (matchar getPage()).
  • x, y, width, height – bounding box i canvas-pixlar; (x, y) är boxens övre vänstra hörn. Standardstorlek 100 × 20 där värdet är ett tal, något större för flera namn på samma rad.

Konvertering om du arbetar utanför viewern: rendera PDF-sidan i 1.5× skala (eller dela koordinaterna med 1.5 för att få PDF-punkter). Tomma koordinater (0,0,100,20) förekommer för OCR-rader där ingen exakt position kunde tas fram – då gäller bara file + page.

Invariant för verifiering: i financial_events.csv ska summan av alla top-level-händelser (de utan parent i kategorin) för ett år vara lika med förändringen i likviditet (state-kategorierna 2+3+4+5) mellan årets slut och föregående års slut. Differenser på 0–1 SEK är avrundningsbrus.

Härledda värden – beräknas i webbsidan, finns inte i CSV

Visualiseringssidorna räknar ut en stor del av sina värden i webbläsaren från CSV-data plus data/macro_sweden.json och två fasta divisorer (51 666 m² bostadsyta, 613 lägenheter). Värdena finns inte att hämta direkt – de visas bara i den renderade DOM:en. För att verifiera ett härlett värde måste man hitta komponenterna i CSV:en (de har bounding boxes), tillämpa formeln nedan, och jämföra.

Normaliseringar

Aggregerade kategorier

Trender och regressioner

Prognoser (prognosis.html)

Tips för LLM: När en användare frågar varför en siffra på t.ex. changing_over_time.html inte hittas i CSV, kontrollera först här om värdet är härlett. Är det härlett: ange formeln, identifiera komponenterna i CSV:en (med bounding boxes), och visa beräkningssteget.

Kategori-tabeller

Små uppslagstabeller som de stora fakta-tabellerna refererar till via category_id.

state_categories balansräkning

data/state_categories.csv · schema: id, name, parent

idnamebeskrivning
0Övriga skulder till kreditinstitutKortfristig del av banklån (nästa års amortering)
1Skulder till kreditinstitutLångfristiga banklån
2Kassa och bankKassa och bankkonton
3Avräkningskonto HSB StockholmHSB-clearingkonto
4Placeringskonto HSB StockholmHSB-placeringskonto
5Kortfristiga placeringarPenningmarknadsfonder m.m.
6Eget kapitalFöreningens egna kapital (för soliditet)
7Summa tillgångarBalansräkningens summa tillgångar (för soliditet)

event_categories resultaträkning · kassaflöde

data/event_categories.csv · schema: id, name, parent · 56 kategorier

Topp-nivåer (utan parent): 0 Nettoomsättning, 1 Driftkostnader, 3 Kassaflöde från finansieringsverksamheten, 4 Övriga intäkter, 5 Övriga externa kostnader, 6 Personalkostnader, 7 Räntekostnader, 8 Investeringar, 9–14 Rörelsekapitalkomponenter, 15 Erhållen ränta, 16 Planerat underhåll.

Underkategorier är hierarkiska och pekar på sin överordnade kategori via parent: t.ex. drift-noten (cat 21–32, 50–55) summerar till cat 1, övriga externa-noten (cat 33–43) till cat 5, personal-noten (cat 44–49) till cat 6, intäktsnoten (cat 17–20) till cat 0.

general_categories styrelse · stämma

data/general_categories.csv · schema: id, name, parent

idnamebeskrivning
0RäkenskapsårPeriod (t.ex. "2024-01-01 – 2024-12-31")
1OrdförandeStyrelseordförande
2Vice ordförandeTom om ej redovisad separat
3LedamöterStyrelseledamöter, semikolonseparerade
4ValberedningValberedningsmedlemmar, semikolonseparerade
5RevisorerVald revisor + HSB-utsedd revisionsbyrå, semikolonseparerade
6Närvarande röstberättigade medlemmarAntal närvarande på stämma
7FullmakterAntal fullmakter på stämma
8SuppleanterSuppleanter, semikolonseparerade
9Revisorer signerat årsredovisningenVem/vilka som signerade revisionsberättelsen

Finansiella tabeller (Sjötungan)

financial_states bounding box

data/financial_states.csv · 154 rader · täcker år 2003–2024

year, category_id, amount, file, page, x, y, width, height

Balansräknings-snapshot vid årsskiftet. Skuldnedbrytning (cat 0 vs 1) hämtas från Not 16. Kategorierna 3–5 (HSB-konton, kortfristiga placeringar) finns endast år då de förekommer separat på balansräkningen; från 2023 är de hopslagna till cat 2.

financial_events bounding box

data/financial_events.csv · 688 rader · täcker år 2013–2024 (top-level), noter delvis 2014+

year, category_id, amount, file, page, x, y, width, height

Kassaflödes-händelser (intäkter, kostnader, investeringar, finansiering) per år. Negativa belopp = utflöden. Top-level-rader summerar till likviditetsförändringen mellan årsbokslut (se invariant ovan).

general_states bounding box

data/general_states.csv · 211 rader

year, category_id, value, file, page, x, y, width, height

Icke-finansiella förhållanden per år: räkenskapsperiod, styrelse, valberedning, revisorer, stämmonärvaro. Multi-person-fält är semikolonseparerade.

Föreningsstyrning och stämmobeslut

motions bounding box × 2

data/motions.csv · 91 rader

year, file, motion_number, page, title, authors, resolution, resolution_page, resolution_x, resolution_y, resolution_width, resolution_height, stamma_decision, follows_styrelse_suggestion, stamma_decision_wording, stamma_followed_styrelse_binary, stamma_protocol_file, stamma_decision_page, stamma_decision_x, stamma_decision_y, stamma_decision_width, stamma_decision_height, stamma_decision_evidence

Medlemsmotioner med två bounding boxes per rad: en för styrelsens yttrande i kallelsen (resolution_*) och en för stämmans beslut i protokollet (stamma_decision_*). resolution är normaliserad till Tillstyrker / Avstyrker / Delvis tillstyrker / Bifalls / Avslås / Besvarad / Oklar. stamma_followed_styrelse_binary = 1 om stämman följde styrelsens förslag.

Lägenheter och portar

apartments

data/apartments.csv · 604 lägenheter

apartment, port

Lägenhetsnummer mappade till portnummer (Myggdalsvägen 6–122).

ports (geografiska koordinater)

maps/ports.csv

number, x_pct, y_pct

Portens position på flygfotot/linjekartan i procent av bildens bredd/höjd. Används av kartvyerna (map-calibration.html, engagement.html) för att placera prickar. Bildkällor: maps/sjotungan-aerial.png, maps/sjotungan-linear.png.

Lägenhetspriser (försäljningar)

Skrapad försäljningsdata för Sjötungan plus jämförelse-BRF:er och kommun-/läns-/rikssnitt. Per-objekt-data för Sjötungan; aggregerade årsmedianer för övriga (av integritetsskäl).

Sjötungan – per objekt scraped

sold_date, address, street_number, rooms, living_area_m2, final_price_kr, asking_price_kr, kr_per_m2, monthly_fee_kr, price_change_pct, broker_agency, listing_id, hemnet_url|booli_url[, apartment_number]

Jämförelse-BRF – årsmedianer scraped

Marknadsreferenser scraped

Jämförelse-BRF (Siken, Björkbacken)

Bredvid Sjötungan finns extraherade finansiella tidsserier för två närliggande HSB-föreningar, för jämförande analyser av soliditet, drift och avgift.

Samma schema som Sjötungans tabeller, inklusive bounding boxes till respektive förenings årsredovisning.

Makro-data (Sverige)

Lokal snapshot för reproducerbar visualisering. Källa: SCB KPI och Riksbankens dagsnoteringar (årssnitt). Schema är självbeskrivande JSON med series_name, base_year, updated_at, källattribution och data: { år: { inflation_yoy_pct, riksbank_policy_rate_pct } }.

Källdokument (PDF, OCR-text, HTML)

Alla siffror i fakta-tabellerna ovan kan spåras till en källfil i någon av dessa kataloger. Bounding-box-koordinaterna (page, x, y, width, height) gäller original-PDF:en under data/annual_reports/ – inte OCR-textversionen.

Årsredovisningar och kallelser

data/annual_reports/ – PDF:er 2003–2025 plus parade *_OCR_text.pdf / *_text.pdf för sökbar text.

Se den fullständiga indexerade listan på text_documents.html.

Stämmoprotokoll

data/stamma_protocols/ – ordinarie och extra stämmor från 2007 framåt; OCR-textfiler (*_ocr.txt) finns för scannade protokoll.

Sources.yaml

sources.yaml – maskinläsbar mapping av varje årsredovisning + kallelse till URL, lokalt PDF-namn, motsvarande OCR-textfil och vilket räkenskapsår dokumentet täcker. Identisk struktur för stämmoprotokoll, stadgar och stambyte-dokument.

För LLM: börja med sources.yaml när du behöver översätta ett räkenskapsår till rätt PDF-filnamn (kolumnen file i fakta-tabellerna).

Övriga källor