Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro-Economische Vraagstukken en Arbeidsmarkt

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