Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
18-06-2026

Inwerkingtreding:
18-06-2026

24.2 Overig - wat is de Interest Coverage Ratio (ICR)?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 24.2
2# Parameters: ?startperiode, ?eindperiode
3# Ontologie: versie 3.0.0 of nieuwer
4
5# Deze query berekent de Interest Coverage Ratio (ICR) obv Prismant of RGS grootboekrubrieken.
6# ICR = EBIT / R.IV Rentelasten
7# EBIT = P Som der bedrijfsopbrengsten - Q Som der bedrijfslasten
8
9PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
10PREFIX onz-g: <http://purl.org/ozo/onz-g#>
11PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
12
13SELECT
14  ("ICR" AS ?Kental)
15  (IF(?r_iv != 0,
16      xsd:decimal((?p_totaal * -1 - ?q_totaal)) / xsd:decimal(?r_iv),
17      "Ongedefinieerd"
18  ) AS ?Waarde)
19WHERE {
20
21  # Deel 1: Eindtotalen berekenen (p_totaal en q_totaal)
22  {
23    SELECT (SUM(?p_bedrag) AS ?p_totaal) (SUM(?q_bedrag) AS ?q_totaal)
24    WHERE {
25            # BIND("2024-01-01"^^xsd:date AS ?startperiode)
26            # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
27
28        ?grootboek_post a onz-fin:Grootboekpost ;
29            onz-g:partOf ?rubriek ;
30            onz-g:hasDate ?datum ;
31            onz-fin:heeftGeldBedrag ?geld_bedrag .
32
33        # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant)
34        {
35            { ?rubriek a onz-fin:Grootboekrekening }
36            UNION
37            { ?rubriek a onz-fin:Grootboekrubriek }
38        }
39        # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors)
40        FILTER NOT EXISTS {
41            ?grootboek_post onz-g:partOf ?child .
42            ?child onz-g:partOf ?rubriek .
43            FILTER(?child != ?rubriek)
44            { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } }
45        }
46        FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
47        BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
48
49        FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
50
51        # P-totaal
52        # Prismant: 81/82/83/89/919/920/930
53        # RGS: WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat/WWiv/WOvb
54        BIND(
55          IF(
56            STRSTARTS(?rubriekCode, "81") ||
57            STRSTARTS(?rubriekCode, "82") ||
58            STRSTARTS(?rubriekCode, "83") ||
59            STRSTARTS(?rubriekCode, "89") ||
60            STRSTARTS(?rubriekCode, "919") ||
61            STRSTARTS(?rubriekCode, "920") ||
62            STRSTARTS(?rubriekCode, "930") ||
63            STRSTARTS(?rubriekCode, "WOmz") ||
64            STRSTARTS(?rubriekCode, "WRev") ||
65            STRSTARTS(?rubriekCode, "WRvi") ||
66            STRSTARTS(?rubriekCode, "WRgr") ||
67            STRSTARTS(?rubriekCode, "WWvv") ||
68            STRSTARTS(?rubriekCode, "WNoa") ||
69            STRSTARTS(?rubriekCode, "WLbe") ||
70            STRSTARTS(?rubriekCode, "WBat") ||
71            STRSTARTS(?rubriekCode, "WWiv") ||
72            STRSTARTS(?rubriekCode, "WOvb"),
73            ?geld_bedrag, 0
74          ) AS ?p_bedrag
75        )
76
77        # Q-totaal
78        # Prismant: 417/418/411-419/420/4221/4223-4225/4229/4226/480-484/423/43-47/486/489/905/911-915/921/931
79        # RGS: WKpr/WPer/WAfs/WWvi/WBwv/WBed/WOok/WKol/WVkf/WAkf
80        BIND(
81          IF(
82            STRSTARTS(?rubriekCode, "417") ||
83            STRSTARTS(?rubriekCode, "418") ||
84            STRSTARTS(?rubriekCode, "411") ||
85            STRSTARTS(?rubriekCode, "412") ||
86            STRSTARTS(?rubriekCode, "413") ||
87            STRSTARTS(?rubriekCode, "414") ||
88            STRSTARTS(?rubriekCode, "415") ||
89            STRSTARTS(?rubriekCode, "416") ||
90            STRSTARTS(?rubriekCode, "419") ||
91            STRSTARTS(?rubriekCode, "420") ||
92            STRSTARTS(?rubriekCode, "4221") ||
93            STRSTARTS(?rubriekCode, "4223") ||
94            STRSTARTS(?rubriekCode, "4224") ||
95            STRSTARTS(?rubriekCode, "4225") ||
96            STRSTARTS(?rubriekCode, "4229") ||
97            STRSTARTS(?rubriekCode, "4226") ||
98            STRSTARTS(?rubriekCode, "480") ||
99            STRSTARTS(?rubriekCode, "481") ||
100            STRSTARTS(?rubriekCode, "482") ||
101            STRSTARTS(?rubriekCode, "483") ||
102            STRSTARTS(?rubriekCode, "484") ||
103            STRSTARTS(?rubriekCode, "423") ||
104            STRSTARTS(?rubriekCode, "43") ||
105            STRSTARTS(?rubriekCode, "44") ||
106            STRSTARTS(?rubriekCode, "45") ||
107            STRSTARTS(?rubriekCode, "46") ||
108            STRSTARTS(?rubriekCode, "47") ||
109            STRSTARTS(?rubriekCode, "486") ||
110            STRSTARTS(?rubriekCode, "489") ||
111            STRSTARTS(?rubriekCode, "905") ||
112            STRSTARTS(?rubriekCode, "911") ||
113            STRSTARTS(?rubriekCode, "912") ||
114            STRSTARTS(?rubriekCode, "913") ||
115            STRSTARTS(?rubriekCode, "914") ||
116            STRSTARTS(?rubriekCode, "915") ||
117            STRSTARTS(?rubriekCode, "921") ||
118            STRSTARTS(?rubriekCode, "931") ||
119            STRSTARTS(?rubriekCode, "WKpr") ||
120            STRSTARTS(?rubriekCode, "WPer") ||
121            STRSTARTS(?rubriekCode, "WAfs") ||
122            STRSTARTS(?rubriekCode, "WWvi") ||
123            STRSTARTS(?rubriekCode, "WBwv") ||
124            STRSTARTS(?rubriekCode, "WBed") ||
125            STRSTARTS(?rubriekCode, "WOok") ||
126            STRSTARTS(?rubriekCode, "WKol") ||
127            STRSTARTS(?rubriekCode, "WVkf") ||
128            STRSTARTS(?rubriekCode, "WAkf"),
129            ?geld_bedrag, 0
130          ) AS ?q_bedrag
131        )
132    }
133  }
134
135  # Deel 2: R.IV Rentelasten en soortgelijke kosten
136  # Prismant: 485/901, RGS: WFbe - WFbeRlm
137  {
138    SELECT (SUM(?r_iv_plus_bedrag) AS ?r_iv_plus) (SUM(?r_iv_min_bedrag) AS ?r_iv_min)
139    WHERE {
140            # BIND("2024-01-01"^^xsd:date AS ?startperiode)
141            # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
142
143        ?grootboek_post a onz-fin:Grootboekpost ;
144            onz-g:partOf ?rubriek ;
145            onz-g:hasDate ?datum ;
146            onz-fin:heeftGeldBedrag ?geld_bedrag .
147
148        # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant)
149        {
150            { ?rubriek a onz-fin:Grootboekrekening }
151            UNION
152            { ?rubriek a onz-fin:Grootboekrubriek }
153        }
154        # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors)
155        FILTER NOT EXISTS {
156            ?grootboek_post onz-g:partOf ?child .
157            ?child onz-g:partOf ?rubriek .
158            FILTER(?child != ?rubriek)
159            { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } }
160        }
161        FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
162        BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
163
164        FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
165
166        # R.IV plus: Prismant=485/901, RGS=WFbe (inclusief WFbeRlm)
167        BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), ?geld_bedrag, 0) AS ?r_iv_plus_bedrag)
168        # R.IV min: RGS=WFbeRlm (rentebaten, zit al in WFbe en moet eraf)
169        BIND(IF(STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_iv_min_bedrag)
170    }
171  }
172
173  # R.IV netto = plus - min (voor RGS: WFbe - WFbeRlm, voor Prismant: 485+901)
174  BIND(COALESCE(?r_iv_plus, 0) - COALESCE(?r_iv_min, 0) AS ?r_iv)
175}
176ORDER BY ?Kental
177