Over Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro-Economische Vraagstukken en Arbeidsmarkt
- Publicatiedatum:
- 22-01-2026
- Inwerkingtreding:
- 01-03-2026
1.2 Wat is de winst- en verliesrekening o.b.v. Grootboek?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: MEVA 1.2 - Complete versie met R en S totalen 2# Parameters: ?startperiode, ?eindperiode 3# Ontologie: versie 3.0.0 of nieuwer 4 5 6PREFIX onz-fin: <http://purl.org/ozo/onz-fin#> 7PREFIX onz-g: <http://purl.org/ozo/onz-g#> 8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 9 10SELECT 11 (?jaarrekeningpost AS ?Jaarrekeningpost) 12 (SUM(?bedrag_rubriek) AS ?Bedrag) 13WHERE 14{ 15 { 16 # ================================================================ 17 # DEEL 1: Berekening eindtotalen P, Q, R, S uit ruwe grootboekdata 18 # ================================================================ 19 { 20 # Bereken alle componentbedragen in één database scan voor performance 21 SELECT 22 (SUM(?p_bedrag) AS ?p_totaal) # P Som der bedrijfsopbrengsten 23 (SUM(?q_bedrag) AS ?q_totaal) # Q Som der bedrijfslasten 24 (SUM(?r_i_bedrag) AS ?r_i_totaal) # R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten 25 (SUM(?r_ii_bedrag) AS ?r_ii_totaal) # R.II Andere rentebaten en soortgelijke opbrengsten 26 (SUM(?r_iii_bedrag) AS ?r_iii_totaal) # R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten 27 (SUM(?r_iv_bedrag) AS ?r_iv_totaal) # R.IV Rentelasten en soortgelijke kosten 28 (SUM(?s_i_bedrag) AS ?s_i_totaal) # S.I Belastingen (altijd 0, bestaat niet in Prismant) 29 (SUM(?s_ii_bedrag) AS ?s_ii_totaal) # S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen 30 WHERE { 31 # BIND("2024-01-01"^^xsd:date AS ?startperiode) 32 # BIND("2024-12-31"^^xsd:date AS ?eindperiode) 33 # Haal alle 6-cijferige grootboekrubrieken op 34 { 35 SELECT DISTINCT ?rubriek WHERE { 36 ?rubriek a onz-fin:Grootboekrubriek . 37 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 38 FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$")) 39 } 40 } 41 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 42 43 # Koppel grootboekposten aan rubrieken binnen meetperiode 44 ?grootboek_post a onz-fin:Grootboekpost ; 45 onz-g:partOf ?rubriek ; 46 onz-g:hasDate ?datum ; 47 onz-fin:heeftGeldBedrag ?geld_bedrag . 48 49 FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode) 50 51 # Split bedragen op in componenten voor eindtotaal berekeningen 52 53 # --- P: Bedragen voor eindtotaalberekening --- 54 # P.I: 81xxxx (Netto omzet) 55 # P.IV: 82/83/89/919/920/930 (Overige bedrijfsopbrengsten) 56 BIND( 57 IF( 58 STRSTARTS(?rubriekCode, "81") || 59 STRSTARTS(?rubriekCode, "82") || 60 STRSTARTS(?rubriekCode, "83") || 61 STRSTARTS(?rubriekCode, "89") || 62 STRSTARTS(?rubriekCode, "919") || 63 STRSTARTS(?rubriekCode, "920") || 64 STRSTARTS(?rubriekCode, "930"), 65 ?geld_bedrag, 0) AS ?p_bedrag 66 ) 67 68 # --- Q: Diverse kostenrubrieken --- 69 # Q.II: 417/418 (Kosten uitbesteed werk en andere externe kosten) 70 # Q.III: 411-419 (Lonen en salarissen) 71 # Q.IV: 420/4221/4223-4225/4229 (Sociale lasten) 72 # Q.V: 4226 (Afschrijvingen) 73 # Q.VI: 480-484 (Afschrijvingen op immateriële vaste activa en materiële vaste activa) 74 # Q.IX: 423/43-47/486/489/905/911-915/921/931 (Overige bedrijfskosten) 75 BIND( 76 IF( 77 STRSTARTS(?rubriekCode, "417") || 78 STRSTARTS(?rubriekCode, "418") || 79 STRSTARTS(?rubriekCode, "411") || 80 STRSTARTS(?rubriekCode, "412") || 81 STRSTARTS(?rubriekCode, "413") || 82 STRSTARTS(?rubriekCode, "414") || 83 STRSTARTS(?rubriekCode, "415") || 84 STRSTARTS(?rubriekCode, "416") || 85 STRSTARTS(?rubriekCode, "419") || 86 STRSTARTS(?rubriekCode, "420") || 87 STRSTARTS(?rubriekCode, "4221") || 88 STRSTARTS(?rubriekCode, "4223") || 89 STRSTARTS(?rubriekCode, "4224") || 90 STRSTARTS(?rubriekCode, "4225") || 91 STRSTARTS(?rubriekCode, "4229") || 92 STRSTARTS(?rubriekCode, "4226") || 93 STRSTARTS(?rubriekCode, "480") || 94 STRSTARTS(?rubriekCode, "481") || 95 STRSTARTS(?rubriekCode, "482") || 96 STRSTARTS(?rubriekCode, "483") || 97 STRSTARTS(?rubriekCode, "484") || 98 STRSTARTS(?rubriekCode, "423") || 99 STRSTARTS(?rubriekCode, "43") || 100 STRSTARTS(?rubriekCode, "44") || 101 STRSTARTS(?rubriekCode, "45") || 102 STRSTARTS(?rubriekCode, "46") || 103 STRSTARTS(?rubriekCode, "47") || 104 STRSTARTS(?rubriekCode, "486") || 105 STRSTARTS(?rubriekCode, "489") || 106 STRSTARTS(?rubriekCode, "905") || 107 STRSTARTS(?rubriekCode, "911") || 108 STRSTARTS(?rubriekCode, "912") || 109 STRSTARTS(?rubriekCode, "913") || 110 STRSTARTS(?rubriekCode, "914") || 111 STRSTARTS(?rubriekCode, "915") || 112 STRSTARTS(?rubriekCode, "921") || 113 STRSTARTS(?rubriekCode, "931"), 114 ?geld_bedrag, 0) AS ?q_bedrag 115 ) 116 # R.I: 904xxx (Opbrengst van vorderingen die tot de vaste activa behoren en van effecten) 117 BIND(IF(STRSTARTS(?rubriekCode, "904"), ?geld_bedrag, 0) AS ?r_i_bedrag) 118 # R.II: 900xxx (Andere rentebaten en soortgelijke opbrengsten) 119 BIND(IF(STRSTARTS(?rubriekCode, "900"), ?geld_bedrag, 0) AS ?r_ii_bedrag) 120 # R.III: 903xxx (Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten) 121 BIND(IF(STRSTARTS(?rubriekCode, "903"), ?geld_bedrag, 0) AS ?r_iii_bedrag) 122 # R.IV: 485/901 (Rentelasten en soortgelijke kosten) 123 BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"), ?geld_bedrag, 0) AS ?r_iv_bedrag) 124 # S.I: Belastingen (bestaat niet in Prismant, altijd 0) 125 BIND(0 AS ?s_i_bedrag) 126 # S.II: 902xxx (Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen) 127 BIND(IF(STRSTARTS(?rubriekCode, "902"), ?geld_bedrag, 0) AS ?s_ii_bedrag) 128 } 129 } 130 131 # Genereer eindtotalen met berekende formules 132 VALUES (?eindtotaal_type ?jaarrekeningpost) { 133 (1 "P Som der bedrijfsopbrengsten") # P totaal 134 (2 "Q Som der bedrijfslasten") # Q totaal 135 (3 "R Resultaat voor belastingen") # P - Q + R.I + R.II - R.III - R.IV 136 (4 "S Resultaat na belastingen") # R - S.I + S.II 137 } 138 139 # Bereken eindtotalen obv formules uit jaarrekening model D 140 BIND( 141 IF(?eindtotaal_type = 1, ?p_totaal, 142 IF(?eindtotaal_type = 2, ?q_totaal, 143 IF(?eindtotaal_type = 3, ?p_totaal - ?q_totaal + ?r_i_totaal + ?r_ii_totaal - ?r_iii_totaal - ?r_iv_totaal, 144 IF(?eindtotaal_type = 4, ?p_totaal - ?q_totaal + ?r_i_totaal + ?r_ii_totaal - ?r_iii_totaal - ?r_iv_totaal - ?s_i_totaal + ?s_ii_totaal, 145 0)))) AS ?bedrag_rubriek 146 ) 147 } 148 UNION 149 { 150 # ======================================================================== 151 # DEEL 2: Individuele jaarrekeningposten uit grootboekdata (bestaande logica) 152 # ======================================================================== 153 { 154 # Aggregeer bedragen per grootboekcategorie 155 SELECT 156 ?categorie 157 (SUM(?geld_bedrag) AS ?bedrag_rubriek) 158 WHERE { 159 # BIND("2024-01-01"^^xsd:date AS ?startperiode) 160 # BIND("2024-12-31"^^xsd:date AS ?eindperiode) 161 # Haal alle 6-cijferige grootboekrubrieken op 162 { 163 SELECT DISTINCT ?categorie ?rubriek 164 WHERE 165 { 166 { 167 SELECT DISTINCT ?rubriek WHERE { 168 ?rubriek a onz-fin:Grootboekrubriek . 169 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 170 FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$")) 171 } 172 } 173 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 174 175 # Wijs rubriekcodes toe aan jaarrekeningcategorieën 176 BIND( 177 COALESCE( 178 IF(STRSTARTS(?rubriekCode, "81"), "P.I", ?unbound), 179 IF( 180 STRSTARTS(?rubriekCode, "82") || 181 STRSTARTS(?rubriekCode, "83") || 182 STRSTARTS(?rubriekCode, "89") || 183 STRSTARTS(?rubriekCode, "919") || 184 STRSTARTS(?rubriekCode, "920") || 185 STRSTARTS(?rubriekCode, "930"), 186 "P.IV", ?unbound 187 ), 188 IF( 189 STRSTARTS(?rubriekCode, "417") || 190 STRSTARTS(?rubriekCode, "418"), 191 "Q.II", ?unbound 192 ), 193 IF( 194 STRSTARTS(?rubriekCode, "411") || 195 STRSTARTS(?rubriekCode, "412") || 196 STRSTARTS(?rubriekCode, "413") || 197 STRSTARTS(?rubriekCode, "414") || 198 STRSTARTS(?rubriekCode, "415") || 199 STRSTARTS(?rubriekCode, "416") || 200 STRSTARTS(?rubriekCode, "419"), 201 "Q.III", ?unbound 202 ), 203 IF( 204 STRSTARTS(?rubriekCode, "420") || 205 STRSTARTS(?rubriekCode, "4221") || 206 STRSTARTS(?rubriekCode, "4223") || 207 STRSTARTS(?rubriekCode, "4224") || 208 STRSTARTS(?rubriekCode, "4225") || 209 STRSTARTS(?rubriekCode, "4229"), 210 "Q.IV", ?unbound 211 ), 212 IF(STRSTARTS(?rubriekCode, "4226"), "Q.V", ?unbound), 213 IF( 214 STRSTARTS(?rubriekCode, "480") || 215 STRSTARTS(?rubriekCode, "481") || 216 STRSTARTS(?rubriekCode, "482") || 217 STRSTARTS(?rubriekCode, "483") || 218 STRSTARTS(?rubriekCode, "484"), 219 "Q.VI", ?unbound 220 ), 221 IF( 222 STRSTARTS(?rubriekCode, "423") || 223 STRSTARTS(?rubriekCode, "43") || 224 STRSTARTS(?rubriekCode, "44") || 225 STRSTARTS(?rubriekCode, "45") || 226 STRSTARTS(?rubriekCode, "46") || 227 STRSTARTS(?rubriekCode, "47") || 228 STRSTARTS(?rubriekCode, "486") || 229 STRSTARTS(?rubriekCode, "489") || 230 STRSTARTS(?rubriekCode, "905") || 231 STRSTARTS(?rubriekCode, "911") || 232 STRSTARTS(?rubriekCode, "912") || 233 STRSTARTS(?rubriekCode, "913") || 234 STRSTARTS(?rubriekCode, "914") || 235 STRSTARTS(?rubriekCode, "915") || 236 STRSTARTS(?rubriekCode, "921") || 237 STRSTARTS(?rubriekCode, "931"), 238 "Q.IX", ?unbound 239 ), 240 IF(STRSTARTS(?rubriekCode, "904"), "R.I", ?unbound), 241 IF(STRSTARTS(?rubriekCode, "900"), "R.II", ?unbound), 242 IF(STRSTARTS(?rubriekCode, "903"), "R.III", ?unbound), 243 # R.IV: 485/901 (Rentelasten en soortgelijke kosten) 244 IF( 245 STRSTARTS(?rubriekCode, "485") || 246 STRSTARTS(?rubriekCode, "901"), 247 "R.IV", ?unbound 248 ), 249 # S.II: 902 (Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen) 250 IF(STRSTARTS(?rubriekCode, "902"), "S.II", ?unbound), 251 "other" 252 ) AS ?categorie 253 ) 254 FILTER(?categorie != "other") 255 } 256 } 257 258 # Koppel grootboekposten aan rubrieken binnen meetperiode 259 ?grootboek_post a onz-fin:Grootboekpost ; 260 onz-g:partOf ?rubriek ; 261 onz-g:hasDate ?datum ; 262 onz-fin:heeftGeldBedrag ?geld_bedrag . 263 264 FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode) 265 266 } GROUP BY ?categorie 267 } 268 269 # Map categorieën naar jaarrekeningpost labels 270 BIND( 271 IF(?categorie = "P.I", "P.I Netto omzet", 272 IF(?categorie = "P.IV", "P.IV Overige bedrijfsopbrengsten", 273 IF(?categorie = "Q.II", "Q.II Kosten uitbesteed werk en andere externe kosten", 274 IF(?categorie = "Q.III", "Q.III Lonen en salarissen", 275 IF(?categorie = "Q.IV", "Q.IV Sociale lasten", 276 IF(?categorie = "Q.V", "Q.V Pensioenlasten", 277 IF(?categorie = "Q.VI", "Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa", 278 IF(?categorie = "Q.IX", "Q.IX Overige bedrijfskosten", 279 IF(?categorie = "R.I", "R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten", 280 IF(?categorie = "R.II", "R.II Andere rentebaten en soortgelijke opbrengsten", 281 IF(?categorie = "R.III", "R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten", 282 IF(?categorie = "R.IV", "R.IV Rentelasten en soortgelijke kosten", 283 IF(?categorie = "S.II", "S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen", 284 ?unbound 285 ))))))))))))) 286 AS ?jaarrekeningpost_child 287 ) 288 289 BIND(?jaarrekeningpost_child AS ?jaarrekeningpost) 290 FILTER(BOUND(?jaarrekeningpost)) 291 } 292 UNION 293 { 294 # ======================================================================= 295 # DEEL 3: Volledige lijst van alle jaarrekeningposten (bedrag 0 als fallback) 296 # ======================================================================= 297 BIND(0 AS ?bedrag_rubriek) 298 VALUES ?jaarrekeningpost { 299 # P: Som der bedrijfsopbrengsten 300 "P.I Netto omzet" 301 "P.II Wijziging in voorraden gereed product en onderhanden werk ten opzichte van de voorafgaande balansdatum" 302 "P.III Geactiveerde productie voor het eigen bedrijf" 303 "P.IV Overige bedrijfsopbrengsten" 304 "P Som der bedrijfsopbrengsten" 305 306 # Q: Som der bedrijfslasten 307 "Q.I Kosten van grond- en hulpstoffen" 308 "Q.II Kosten uitbesteed werk en andere externe kosten" 309 "Q.III Lonen en salarissen" 310 "Q.IV Sociale lasten" 311 "Q.V Pensioenlasten" 312 "Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa" 313 "Q.VII Overige waardevermindering immateriële vaste activa en materiële vaste activa" 314 "Q.VIII Bijzondere waardevermindering van vlottende activa" 315 "Q.IX Overige bedrijfskosten" 316 "Q Som der bedrijfslasten" 317 318 # R: Financiële baten en lasten 319 "R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten" 320 "R.II Andere rentebaten en soortgelijke opbrengsten" 321 "R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten" 322 "R.IV Rentelasten en soortgelijke kosten" 323 "R Resultaat voor belastingen" 324 325 # S: Belastingen en resultaat deelnemingen 326 "S.I Belastingen" 327 "S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen" 328 "S Resultaat na belastingen" 329 } 330 } 331} 332GROUP BY ?jaarrekeningpost 333ORDER BY ?jaarrekeningpost 334