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
- Härledda värden (beräknas i webbsidan)
- Kategori-tabeller
- Finansiella tabeller (Sjötungan)
- Föreningsstyrning och stämmobeslut
- Lägenheter och portar
- Lägenhetspriser (försäljningar)
- Jämförelse-BRF (Siken, Björkbacken)
- Makro-data (Sverige)
- Källdokument (PDF, OCR-text, HTML)
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; ellervalue– textvärde (t.ex. namn).file– PDF-filnamnet idata/annual_reports/(källa).page– 1-baserat sidnummer enligt pdf.js-konvention (matchargetPage()).x, y, width, height– bounding box i canvas-pixlar;(x, y)är boxens övre vänstra hörn. Standardstorlek100 × 20dä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
- Per kvadratmeter: belopp ÷ 51 666 m². Anv. på changing_over_time.html, costs_development.html, annual_details.html, prognosis.html.
- Per lägenhet: belopp ÷ 613.
- Inflationsjusterat (real-belopp): nominellt belopp × (100 ÷ prisindexår) där prisindex kedjas framåt/bakåt från basår 2024 med
inflation_yoy_pctur macro_sweden.json. Se changing_over_time.html:1035 och costs_development.html:360. - Köpkraft per krona: 10 000 öre ÷ prisindex – andelen av basårets köpkraft som 1 kr då motsvarade. changing_over_time.html:826.
Aggregerade kategorier
- Total likviditet = state-kategorierna 2 + 3 + 4 + 5 (Kassa och bank, HSB-konton, kortfristiga placeringar). changing_over_time.html:970.
- Likviditetsförändring = total_likviditet(år) − total_likviditet(år−1). Måste vara lika med summan av top-level-händelser för året (invariant).
- Soliditet (%) = state-cat 6 (Eget kapital) ÷ state-cat 7 (Summa tillgångar) × 100. changing_over_time.html:1145.
- Förälderssumma från barn – om en parent-kategori (t.ex. Driftkostnader = cat 1) saknar egen rad ett år, summeras barnen i den noten. changing_over_time.html:923, annual_details.html:923.
- "Övrigt"-residual – om förälderssumman ≠ summan av kända barn skapas en syntetisk rad "Övrigt" med differensen. costs_development.html:1209, annual_details.html:1209.
- "Totala kostnader" syntetisk root i kostnadsutvecklingen – cat 1, 5, 6, 7 grupperas under en konstruerad rotnod. costs_development.html:460.
- Andel av förälder (%) = barn ÷ förälder × 100. costs_development.html:658.
Trender och regressioner
- Linjär regression (OLS) över ett år-fönster, ger lutning i kr/år. costs_development.html:384, prognosis.html:446.
- Tillväxtfaktor (%/år) = (1 + lutning ÷ medelvärde) × 100, ≥3 datapunkter krävs. costs_development.html:467.
- Total tillväxt över fönster = lutning × (antal_år − 1). costs_development.html:566.
- Medelvärde över fönster = Σ värden ÷ antal år.
Prognoser (prognosis.html)
- Exponentiell extrapolation: värde(år) = sista_kända × (1 + tillväxt)år. prognosis.html:865.
- Total tillväxt (delta/start): (slut − start) ÷ |start| × 100. prognosis.html:900.
- Projicerad skuld: skuld(år) = skuld(år−1) + finansieringskassaflöde(år), kumulativt. prognosis.html:1399.
- Räntekostnad från projicerad skuld: |skuld| × användarvald bankränta. prognosis.html:1573.
- Stambyte-finansiering split: stambyte_total ÷ antal_år × bank-andel. prognosis.html:1389.
- Skuld per m²: projicerad skuld ÷ 51 666. prognosis.html:1467.
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
| id | name | beskrivning |
|---|---|---|
| 0 | Övriga skulder till kreditinstitut | Kortfristig del av banklån (nästa års amortering) |
| 1 | Skulder till kreditinstitut | Långfristiga banklån |
| 2 | Kassa och bank | Kassa och bankkonton |
| 3 | Avräkningskonto HSB Stockholm | HSB-clearingkonto |
| 4 | Placeringskonto HSB Stockholm | HSB-placeringskonto |
| 5 | Kortfristiga placeringar | Penningmarknadsfonder m.m. |
| 6 | Eget kapital | Föreningens egna kapital (för soliditet) |
| 7 | Summa tillgångar | Balansrä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
| id | name | beskrivning |
|---|---|---|
| 0 | Räkenskapsår | Period (t.ex. "2024-01-01 – 2024-12-31") |
| 1 | Ordförande | Styrelseordförande |
| 2 | Vice ordförande | Tom om ej redovisad separat |
| 3 | Ledamöter | Styrelseledamöter, semikolonseparerade |
| 4 | Valberedning | Valberedningsmedlemmar, semikolonseparerade |
| 5 | Revisorer | Vald revisor + HSB-utsedd revisionsbyrå, semikolonseparerade |
| 6 | Närvarande röstberättigade medlemmar | Antal närvarande på stämma |
| 7 | Fullmakter | Antal fullmakter på stämma |
| 8 | Suppleanter | Suppleanter, semikolonseparerade |
| 9 | Revisorer signerat årsredovisningen | Vem/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)
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
data/apartment_prices/sjotungan_sales_hemnet.csv337 rader · Hemnet slutpriser, filtrerade till Myggdalsvägen 6–122data/apartment_prices/sjotungan_sales_booli.csv373 rader · Booli getHousingCoopSold för Sjötungandata/apartment_prices/sjotungan_sales_hemnet_raw.jsoncachad rå-payload (Hemnet)data/apartment_prices/sjotungan_sales_booli_raw.jsoncachad GraphQL-payload (Booli)
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
bjorkbacken_annual_medians_hemnet.csv·..._booli.csvHSB BRF Björkbacken (Björkbacksvägen 9–83 + Bollmoravägen 36–58)gaddan_annual_medians_hemnet.csv·..._booli.csvHSB BRF Gäddan (Sikvägen 29–59, jämna sidan-konstruktion enligt allowlist)siken_annual_medians_hemnet.csv·..._booli.csvHSB BRF Siken (Sikvägen 1–27)
Marknadsreferenser scraped
tyreso_kommun_annual_medians_hemnet.csvTyresö kommun, Hemnet, shard-by-rooms (~4 100 listings, 2013–2026)maklarstatistik_sverige_brf_annual.csv·..._rolling12.csvMäklarstatistik kr/m² Sverigemaklarstatistik_stockholms_lan_brf_annual.csv·..._rolling12.csvMäklarstatistik kr/m² Stockholms länsweden_brf_annual.csvSCB BRF totalpris Sverige (2000–2024)
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.
data/financial_states_siken.csvbalansräkning HSB BRF Siken/Björkbackendata/financial_events_siken.csvkassaflöde HSB BRF Sikendata/financial_events_bjorkbacken.csvkassaflöde HSB BRF Björkbacken
Samma schema som Sjötungans tabeller, inklusive bounding boxes till respektive förenings årsredovisning.
Makro-data (Sverige)
data/macro_sweden.jsonmanuellt snapshot årsvis KPI-inflation och Riksbankens styrränta, 1980–2024
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
SFS2018672_fulltext_konsoliderad.pdfLag (2018:672) om ekonomiska föreningar – konsoliderad fulltextbrf-economy-guide.pdf·brf-economy-guide.htmlguide till BRF-ekonomi (förklarande text + figurer)