Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 18-06-2026
- Inwerkingtreding:
- 18-06-2026
19.1 Liquiditeit - wat is de DSCR (Debt Service Coverage Ratio)?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# SPARQL: 19.1 Zorgkantoren inkoopondersteuning 2# Parameters: ?startperiode, ?eindperiode, ?peildatum 3# Ontologie: versie 3.0.0 of nieuwer 4 5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#> 6PREFIX onz-g: <http://purl.org/ozo/onz-g#> 7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 8 9SELECT 10 ("DSCR" AS ?Kental) 11 # Eindresultaat afronden op twee decimalen 12 (IF(?DebtService = 0, "Ongedefinieerd"^^xsd:string, ROUND((?EBITDA / ?DebtService) * 100) / 100) AS ?Waarde) 13WHERE { 14 # ================================================================ 15 # DEEL 1: EBITDA = P - Q + Q.VI 16 # ================================================================ 17 { 18 SELECT (?p_totaal - ?q_totaal + ?q_vi_totaal AS ?EBITDA) 19 WHERE { 20 SELECT 21 (SUM(?p_bedrag) AS ?p_totaal) 22 (SUM(?q_bedrag) AS ?q_totaal) 23 (SUM(?q_vi_bedrag) AS ?q_vi_totaal) 24 WHERE { 25 # Meetperiode: 1-jan t/m 31-dec of van 1-jan t/m 30-juni 26 # BIND("2024-01-01"^^xsd:date AS ?startperiode) 27 # BIND("2024-12-31"^^xsd:date AS ?eindperiode) 28 29 ?grootboek_post a onz-fin:Grootboekpost ; 30 onz-g:partOf ?rubriek ; 31 onz-g:hasDate ?datum ; 32 onz-fin:heeftGeldBedrag ?geld_bedrag . 33 34 # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant) 35 { 36 { ?rubriek a onz-fin:Grootboekrekening } 37 UNION 38 { ?rubriek a onz-fin:Grootboekrubriek } 39 } 40 # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors) 41 FILTER NOT EXISTS { 42 ?grootboek_post onz-g:partOf ?child . 43 ?child onz-g:partOf ?rubriek . 44 FILTER(?child != ?rubriek) 45 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 46 } 47 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 48 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 49 50 FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode) 51 52 # P: Som der bedrijfsopbrengsten 53 # Prismant: 81/82/83/89/919/920/930 54 # RGS: WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat/WWiv/WOvb 55 BIND(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) AS ?p_bedrag) 74 75 # Q: Som der bedrijfslasten 76 # Prismant: 417/418/411-419/420/4221/4223-4225/4229/4226/480-484/423/43-47/486/489/905/911-915/921/931 77 # RGS: WKpr/WPer/WAfs/WWvi/WBwv/WBed/WOok/WKol/WVkf/WAkf 78 BIND(IF( 79 STRSTARTS(?rubriekCode, "417") || 80 STRSTARTS(?rubriekCode, "418") || 81 STRSTARTS(?rubriekCode, "411") || 82 STRSTARTS(?rubriekCode, "412") || 83 STRSTARTS(?rubriekCode, "413") || 84 STRSTARTS(?rubriekCode, "414") || 85 STRSTARTS(?rubriekCode, "415") || 86 STRSTARTS(?rubriekCode, "416") || 87 STRSTARTS(?rubriekCode, "419") || 88 STRSTARTS(?rubriekCode, "420") || 89 STRSTARTS(?rubriekCode, "4221") || 90 STRSTARTS(?rubriekCode, "4223") || 91 STRSTARTS(?rubriekCode, "4224") || 92 STRSTARTS(?rubriekCode, "4225") || 93 STRSTARTS(?rubriekCode, "4229") || 94 STRSTARTS(?rubriekCode, "4226") || 95 STRSTARTS(?rubriekCode, "480") || 96 STRSTARTS(?rubriekCode, "481") || 97 STRSTARTS(?rubriekCode, "482") || 98 STRSTARTS(?rubriekCode, "483") || 99 STRSTARTS(?rubriekCode, "484") || 100 STRSTARTS(?rubriekCode, "423") || 101 STRSTARTS(?rubriekCode, "43") || 102 STRSTARTS(?rubriekCode, "44") || 103 STRSTARTS(?rubriekCode, "45") || 104 STRSTARTS(?rubriekCode, "46") || 105 STRSTARTS(?rubriekCode, "47") || 106 STRSTARTS(?rubriekCode, "486") || 107 STRSTARTS(?rubriekCode, "489") || 108 STRSTARTS(?rubriekCode, "905") || 109 STRSTARTS(?rubriekCode, "911") || 110 STRSTARTS(?rubriekCode, "912") || 111 STRSTARTS(?rubriekCode, "913") || 112 STRSTARTS(?rubriekCode, "914") || 113 STRSTARTS(?rubriekCode, "915") || 114 STRSTARTS(?rubriekCode, "921") || 115 STRSTARTS(?rubriekCode, "931") || 116 STRSTARTS(?rubriekCode, "WKpr") || 117 STRSTARTS(?rubriekCode, "WPer") || 118 STRSTARTS(?rubriekCode, "WAfs") || 119 STRSTARTS(?rubriekCode, "WWvi") || 120 STRSTARTS(?rubriekCode, "WBwv") || 121 STRSTARTS(?rubriekCode, "WBed") || 122 STRSTARTS(?rubriekCode, "WOok") || 123 STRSTARTS(?rubriekCode, "WKol") || 124 STRSTARTS(?rubriekCode, "WVkf") || 125 STRSTARTS(?rubriekCode, "WAkf"), 126 ?geld_bedrag, 0) AS ?q_bedrag) 127 128 # Q.VI: Afschrijvingen op immateriële vaste activa en materiële vaste activa 129 # Prismant: 480-484, RGS: WAfs 130 BIND(IF( 131 STRSTARTS(?rubriekCode, "480") || 132 STRSTARTS(?rubriekCode, "481") || 133 STRSTARTS(?rubriekCode, "482") || 134 STRSTARTS(?rubriekCode, "483") || 135 STRSTARTS(?rubriekCode, "484") || 136 STRSTARTS(?rubriekCode, "WAfs"), 137 ?geld_bedrag, 0) AS ?q_vi_bedrag) 138 } 139 } 140 } 141 142 # ================================================================ 143 # DEEL 2: DebtService = Rente + Aflossingen 144 # ================================================================ 145 { 146 SELECT (?r_iv_totaal + ?aflossing AS ?DebtService) 147 WHERE { 148 149 # R.IV Rentelasten 150 # Prismant: 485/901, RGS: WFbe -/- WFbeRlm 151 { 152 SELECT (SUM(?r_iv_plus_bedrag) - SUM(?r_iv_min_bedrag) AS ?r_iv_totaal) 153 WHERE { 154 # Meetperiode: 1-jan t/m 31-dec of van 1-jan t/m 30-juni 155 # BIND("2024-01-01"^^xsd:date AS ?startperiode) 156 # BIND("2024-12-31"^^xsd:date AS ?eindperiode) 157 158 ?grootboek_post a onz-fin:Grootboekpost ; 159 onz-g:partOf ?rubriek ; 160 onz-g:hasDate ?datum ; 161 onz-fin:heeftGeldBedrag ?geld_bedrag . 162 163 { { ?rubriek a onz-fin:Grootboekrekening } UNION { ?rubriek a onz-fin:Grootboekrubriek } } 164 FILTER NOT EXISTS { 165 ?grootboek_post onz-g:partOf ?child . 166 ?child onz-g:partOf ?rubriek . 167 FILTER(?child != ?rubriek) 168 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 169 } 170 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 171 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 172 173 FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode) 174 175 BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), ?geld_bedrag, 0) AS ?r_iv_plus_bedrag) 176 BIND(IF(STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_iv_min_bedrag) 177 } 178 } 179 180 # saldoVoor: F Langlopende schulden op ?peildatum 181 # Prismant: 07, RGS: BLas 182 { 183 SELECT (SUM(?bedrag_rubriek) AS ?saldoVoor) 184 WHERE { 185 { 186 SELECT ?rubriek 187 (SUM(?geld_bedrag_post) + MAX(?saldo_waarde) AS ?bedrag_rubriek) 188 WHERE { 189 { 190 SELECT ?rubriek 191 (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde) 192 ?peildatum_argument 193 (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum) 194 WHERE { 195 # Peildatum: eerste dag voor het begin van de meetperiode 196 # BIND("2023-12-31"^^xsd:date AS ?peildatum) 197 BIND(?peildatum AS ?peildatum_argument) 198 199 { 200 { ?rubriek a onz-fin:Grootboekrubriek . } 201 UNION 202 { ?rubriek a onz-fin:Grootboekrekening . } 203 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 204 FILTER(STRSTARTS(?rubriekCode, "07")) 205 } 206 UNION 207 { 208 VALUES ?rubriekCode { "BLas" } 209 BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek) 210 { 211 { ?rubriek a onz-fin:Grootboekrubriek . } 212 UNION 213 { ?rubriek a onz-fin:Grootboekrekening . } 214 } 215 } 216 217 OPTIONAL { 218 ?rubriek onz-g:isAbout ?saldo . 219 ?saldo 220 a onz-fin:EindSaldo ; 221 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 222 onz-g:hasDate ?saldo_datum . 223 FILTER(?saldo_datum <= ?peildatum_argument) 224 FILTER NOT EXISTS { 225 ?rubriek onz-g:isAbout ?saldo2 . 226 ?saldo2 227 a onz-fin:EindSaldo ; 228 onz-g:hasDate ?saldo_datum2 . 229 FILTER(?saldo2 != ?saldo) 230 FILTER(?saldo_datum2 <= ?peildatum_argument) 231 FILTER( 232 ?saldo_datum2 > ?saldo_datum 233 || (?saldo_datum2 = ?saldo_datum && STR(?saldo2) > STR(?saldo)) 234 ) 235 } 236 } 237 } 238 } 239 240 OPTIONAL { 241 ?grootboek_post 242 a onz-fin:Grootboekpost ; 243 onz-g:partOf ?rubriek ; 244 onz-g:hasDate ?datum ; 245 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 246 FILTER NOT EXISTS { 247 ?grootboek_post onz-g:partOf ?specifiekereRubriek . 248 ?specifiekereRubriek onz-g:partOf+ ?rubriek . 249 } 250 FILTER(?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum))) 251 } 252 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 253 } GROUP BY ?rubriek 254 } 255 } 256 } 257 258 # saldoNa: F Langlopende schulden op ?eindperiode 259 # Prismant: 07, RGS: BLas 260 { 261 SELECT (SUM(?bedrag_rubriek) AS ?saldoNa) 262 WHERE { 263 { 264 SELECT ?rubriek 265 (SUM(?geld_bedrag_post) + MAX(?saldo_waarde) AS ?bedrag_rubriek) 266 WHERE { 267 { 268 SELECT ?rubriek 269 (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde) 270 ?peildatum_argument 271 (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum) 272 WHERE { 273 # Eindperiode: laatste dag van de meetperiode 274 # BIND("2024-12-31"^^xsd:date AS ?eindperiode) 275 BIND(?eindperiode AS ?peildatum_argument) 276 277 { 278 { ?rubriek a onz-fin:Grootboekrubriek . } 279 UNION 280 { ?rubriek a onz-fin:Grootboekrekening . } 281 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 282 FILTER(STRSTARTS(?rubriekCode, "07")) 283 } 284 UNION 285 { 286 VALUES ?rubriekCode { "BLas" } 287 BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek) 288 { 289 { ?rubriek a onz-fin:Grootboekrubriek . } 290 UNION 291 { ?rubriek a onz-fin:Grootboekrekening . } 292 } 293 } 294 295 OPTIONAL { 296 ?rubriek onz-g:isAbout ?saldo . 297 ?saldo 298 a onz-fin:EindSaldo ; 299 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 300 onz-g:hasDate ?saldo_datum . 301 FILTER(?saldo_datum <= ?peildatum_argument) 302 FILTER NOT EXISTS { 303 ?rubriek onz-g:isAbout ?saldo2 . 304 ?saldo2 305 a onz-fin:EindSaldo ; 306 onz-g:hasDate ?saldo_datum2 . 307 FILTER(?saldo2 != ?saldo) 308 FILTER(?saldo_datum2 <= ?peildatum_argument) 309 FILTER( 310 ?saldo_datum2 > ?saldo_datum 311 || (?saldo_datum2 = ?saldo_datum && STR(?saldo2) > STR(?saldo)) 312 ) 313 } 314 } 315 } 316 } 317 318 OPTIONAL { 319 ?grootboek_post 320 a onz-fin:Grootboekpost ; 321 onz-g:partOf ?rubriek ; 322 onz-g:hasDate ?datum ; 323 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 324 FILTER NOT EXISTS { 325 ?grootboek_post onz-g:partOf ?specifiekereRubriek . 326 ?specifiekereRubriek onz-g:partOf+ ?rubriek . 327 } 328 FILTER(?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum))) 329 } 330 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 331 } GROUP BY ?rubriek 332 } 333 } 334 } 335 336 # Aflossing = saldoVoor - saldoNa 337 BIND(?saldoVoor - ?saldoNa AS ?aflossing) 338 } 339 } 340} 341ORDER BY ?Kental 342