Repository: woonstadrotterdam/woningwaardering

Issue:
Privé buitenruimten bug
In de huidige code worden 2 punten per privé buitenruimte toegekend + 0.35 per m2. Dit moet zijn:

2 punten indien er minstens één privé buitenruimte is, en vervolgens 0.35 per m2.



Discussion:

Patch:
diff --git a/README.md b/README.md
index 2ce37689..5326186c 100644
--- a/README.md
+++ b/README.md
@@ -147,30 +147,33 @@ Installeer de package met `pip install woningwaardering`. Vervolgens kun je de p
 #### Optie 1; bijvoorbeeld via JSON bestand
 
 ```python
-from woningwaardering.stelsels import ZelfstandigeWoonruimten
+import warnings
 from datetime import date
-from woningwaardering.stelsels import utils
+
+from woningwaardering.stelsels import ZelfstandigeWoonruimten, utils
 from woningwaardering.vera.bvg.generated import (
     EenhedenEenheid,
 )
 
+warnings.simplefilter("default", UserWarning)
+
 stelsel = ZelfstandigeWoonruimten(
-    peildatum = date(2024, 7, 1) # bij niet meegeven wordt de huidige dag gebruikt.
+    peildatum=date(2024, 7, 1)  # bij niet meegeven wordt de huidige dag gebruikt.
 )
 with open(
-  "tests/data/generiek/input/37101000032.json",
-  "r+",
+    "tests/data/generiek/input/37101000032.json",
+    "r+",
 ) as file:
-  eenheid = EenhedenEenheid.model_validate_json(file.read())
-  woningwaardering_resultaat = stelsel.bereken(eenheid)
-  print(
-      woningwaardering_resultaat.model_dump_json(
-          by_alias=True, indent=2, exclude_none=True
-      )
-  )
-  tabel = utils.naar_tabel(woningwaardering_resultaat)
-
-  print(tabel)
+    eenheid = EenhedenEenheid.model_validate_json(file.read())
+    woningwaardering_resultaat = stelsel.bereken(eenheid)
+    print(
+        woningwaardering_resultaat.model_dump_json(
+            by_alias=True, indent=2, exclude_none=True
+        )
+    )
+    tabel = utils.naar_tabel(woningwaardering_resultaat)
+
+    print(tabel)
 ```
 
 <details>
@@ -368,7 +371,7 @@ with open(
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 3.14,
@@ -379,7 +382,7 @@ with open(
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 49.11,
@@ -390,7 +393,7 @@ with open(
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 19.19
+          "punten": 17.19
         },
         {
           "aantal": 15.93,
@@ -401,13 +404,19 @@ with open(
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 7.57
+          "punten": 5.57
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
             "naam": "Maximaal 15 punten"
           },
-          "punten": -18.0
+          "punten": -12.0
         }
       ]
     },
@@ -508,6 +517,34 @@ with open(
         }
       ]
     },
+    {
+      "criteriumGroep": {
+        "stelsel": {
+          "code": "ZEL",
+          "naam": "Zelfstandige woonruimten"
+        },
+        "stelselgroep": {
+          "code": "GPA",
+          "naam": "Gemeenschappelijke parkeerruimten"
+        }
+      },
+      "punten": 0.0,
+      "woningwaarderingen": []
+    },
+    {
+      "criteriumGroep": {
+        "stelsel": {
+          "code": "ZEL",
+          "naam": "Zelfstandige woonruimten"
+        },
+        "stelselgroep": {
+          "code": "GVR",
+          "naam": "Gemeenschappelijke vertrekken, overige ruimten en voorzieningen"
+        }
+      },
+      "punten": 0.0,
+      "woningwaarderingen": []
+    },
     {
       "criteriumGroep": {
         "stelsel": {
@@ -582,64 +619,65 @@ with open(
 <summary>Voorbeeld output in tabel</summary>
 
 ```text
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Groep                           | Naam                            |  Aantal | Meeteenheid         | Punten | Opslag |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Oppervlakte van vertrekken      | Slaapkamer 1                    |   21.05 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Woonkamer                       |   41.00 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Keuken                          |   20.37 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Badruimte                       |    7.50 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Slaapkamer 2                    |   15.98 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Slaapkamer 3                    |   19.15 | Vierkante meter, m2 |        |        |
-| Oppervlakte van vertrekken      | Slaapkamer 4                    |   15.82 | Vierkante meter, m2 |        |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Oppervlakte van vertrekken      | Subtotaal                       |  140.87 | Vierkante meter, m2 | 141.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Oppervlakte van overige ruimten | Berging                         |    6.65 | Vierkante meter, m2 |        |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Oppervlakte van overige ruimten | Subtotaal                       |    6.65 | Vierkante meter, m2 |   5.25 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Verkoeling en verwarming        | Slaapkamer 1 (verwarmd vertrek) |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Woonkamer (verwarmd vertrek)    |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Keuken (verwarmd vertrek)       |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Badruimte (verwarmd vertrek)    |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Slaapkamer 2 (verwarmd vertrek) |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Slaapkamer 3 (verwarmd vertrek) |         |                     |   2.00 |        |
-| Verkoeling en verwarming        | Slaapkamer 4 (verwarmd vertrek) |         |                     |   2.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Verkoeling en verwarming        | Subtotaal                       |         |                     |  14.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Buitenruimten                   | Balkon 1 (privé)                |    3.14 | Vierkante meter, m2 |   3.10 |        |
-| Buitenruimten                   | Balkon 2 (privé)                |    3.14 | Vierkante meter, m2 |   3.10 |        |
-| Buitenruimten                   | Tuin (privé)                    |   49.11 | Vierkante meter, m2 |  19.19 |        |
-| Buitenruimten                   | Dakterras (privé)               |   15.93 | Vierkante meter, m2 |   7.57 |        |
-| Buitenruimten                   | Maximaal 15 punten              |         |                     | -18.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Buitenruimten                   | Subtotaal                       |         |                     |  15.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Energieprestatie                | C (Energie-index)               |         |                     |  22.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Keuken                          | Keuken - Lengte aanrecht        | 2700.00 | Millimeter          |   7.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Keuken                          | Subtotaal                       | 2700.00 | Millimeter          |   7.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Sanitair                        | Badruimte - Staand Toilet       |    1.00 |                     |   2.00 |        |
-| Sanitair                        | Badruimte - Wastafel            |    2.00 |                     |   2.00 |        |
-| Sanitair                        | Badruimte - Bad en douche       |    1.00 |                     |   7.00 |        |
-| Sanitair                        | Toiletruimte - Staand Toilet    |    1.00 |                     |   3.00 |        |
-| Sanitair                        | Toiletruimte - Wastafel         |    1.00 |                     |   1.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Sanitair                        | Subtotaal                       |         |                     |  15.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Punten voor de WOZ-waarde       | Onderdeel I                     |         |                     |  44.21 |        |
-| Punten voor de WOZ-waarde       | Onderdeel II                    |         |                     |  19.03 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Punten voor de WOZ-waarde       | Subtotaal                       |         |                     |  63.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-| Zelfstandige woonruimten        | Afgerond totaal                 |         |                     | 282.00 |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
-|                                 | Maximale huur                   | 1779.24 | EUR                 |        |        |
-+---------------------------------+---------------------------------+---------+---------------------+--------+--------+
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Groep                             | Naam                                               |  Aantal | Meeteenheid         |  Punten |  Opslag |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Oppervlakte van vertrekken        | Slaapkamer 1                                       |   21.05 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Woonkamer                                          |   41.00 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Keuken                                             |   20.37 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Badruimte                                          |    7.50 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Slaapkamer 2                                       |   15.98 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Slaapkamer 3                                       |   19.15 | Vierkante meter, m2 |         |         |
+| Oppervlakte van vertrekken        | Slaapkamer 4                                       |   15.82 | Vierkante meter, m2 |         |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Oppervlakte van vertrekken        | Subtotaal                                          |  140.87 | Vierkante meter, m2 |  141.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Oppervlakte van overige ruimten   | Berging                                            |    6.65 | Vierkante meter, m2 |         |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Oppervlakte van overige ruimten   | Subtotaal                                          |    6.65 | Vierkante meter, m2 |    5.25 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Verkoeling en verwarming          | Slaapkamer 1 (verwarmd vertrek)                    |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Woonkamer (verwarmd vertrek)                       |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Keuken (verwarmd vertrek)                          |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Badruimte (verwarmd vertrek)                       |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Slaapkamer 2 (verwarmd vertrek)                    |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Slaapkamer 3 (verwarmd vertrek)                    |         |                     |    2.00 |         |
+| Verkoeling en verwarming          | Slaapkamer 4 (verwarmd vertrek)                    |         |                     |    2.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Verkoeling en verwarming          | Subtotaal                                          |         |                     |   14.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Buitenruimten                     | Balkon 1 (privé)                                   |    3.14 | Vierkante meter, m2 |    1.10 |         |
+| Buitenruimten                     | Balkon 2 (privé)                                   |    3.14 | Vierkante meter, m2 |    1.10 |         |
+| Buitenruimten                     | Tuin (privé)                                       |   49.11 | Vierkante meter, m2 |   17.19 |         |
+| Buitenruimten                     | Dakterras (privé)                                  |   15.93 | Vierkante meter, m2 |    5.57 |         |
+| Buitenruimten                     | Privé buitenruimten aanwezig                       |         |                     |    2.00 |         |
+| Buitenruimten                     | Maximaal 15 punten                                 |         |                     |  -12.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Buitenruimten                     | Subtotaal                                          |         |                     |   15.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Energieprestatie                  | C (Energie-index)                                  |         |                     |   22.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Keuken                            | Keuken - Lengte aanrecht                           | 2700.00 | Millimeter          |    7.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Keuken                            | Subtotaal                                          | 2700.00 | Millimeter          |    7.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Sanitair                          | Badruimte - Staand Toilet                          |    1.00 |                     |    2.00 |         |
+| Sanitair                          | Badruimte - Wastafel                               |    2.00 |                     |    2.00 |         |
+| Sanitair                          | Badruimte - Bad en douche                          |    1.00 |                     |    7.00 |         |
+| Sanitair                          | Toiletruimte - Staand Toilet                       |    1.00 |                     |    3.00 |         |
+| Sanitair                          | Toiletruimte - Wastafel                            |    1.00 |                     |    1.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Sanitair                          | Subtotaal                                          |         |                     |   15.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Punten voor de WOZ-waarde         | Onderdeel I                                        |         |                     |   44.21 |         |
+| Punten voor de WOZ-waarde         | Onderdeel II                                       |         |                     |   19.03 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Punten voor de WOZ-waarde         | Subtotaal                                          |         |                     |   63.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+| Zelfstandige woonruimten          | Afgerond totaal                                    |         |                     |  282.00 |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
+|                                   | Maximale huur                                      | 1779.24 | EUR                 |         |         |
++-----------------------------------+----------------------------------------------------+---------+---------------------+---------+---------+
 ```
 
 </details>
diff --git a/woningwaardering/stelsels/zelfstandige_woonruimten/buitenruimten/buitenruimten.py b/woningwaardering/stelsels/zelfstandige_woonruimten/buitenruimten/buitenruimten.py
index 0291f8bf..f4f5f772 100644
--- a/woningwaardering/stelsels/zelfstandige_woonruimten/buitenruimten/buitenruimten.py
+++ b/woningwaardering/stelsels/zelfstandige_woonruimten/buitenruimten/buitenruimten.py
@@ -53,6 +53,7 @@ class Buitenruimten(Stelselgroep):
         woningwaardering_groep.woningwaarderingen = []
 
         buitenruimten_aanwezig = False
+        prive_buitenruimten_aanwezig = False
         for ruimte in eenheid.ruimten or []:
             if classificeer_ruimte(ruimte) == Ruimtesoort.buitenruimte:
                 buitenruimten_aanwezig = True
@@ -107,6 +108,7 @@ class Buitenruimten(Stelselgroep):
                         naam=f"{ruimte.naam} (gedeeld met {ruimte.gedeeld_met_aantal_eenheden})",
                     )
                 else:  # privé buitenruimte
+                    prive_buitenruimten_aanwezig = True
                     logger.info(
                         f"Ruimte {ruimte.naam} ({ruimte.id}) is een privé-buitenruimte met oppervlakte {ruimte.oppervlakte}m2 en wordt gewaardeerd onder stelselgroep {Woningwaarderingstelselgroep.buitenruimten.naam}."
                     )
@@ -120,8 +122,9 @@ class Buitenruimten(Stelselgroep):
                         utils.rond_af(ruimte.oppervlakte, decimalen=2)
                     )
                     # Voor privé-buitenruimten worden in ieder geval 2 punten toegekend en vervolgens per vierkante meter 0,35 punt.
+                    # De in ieder geval 2 punten worden verderop toegevoegd.
                     woningwaardering.punten = float(
-                        utils.rond_af(2 + ruimte.oppervlakte * 0.35, decimalen=2)
+                        utils.rond_af(ruimte.oppervlakte * 0.35, decimalen=2)
                     )
 
                 woningwaardering_groep.woningwaarderingen.append(woningwaardering)
@@ -139,6 +142,17 @@ class Buitenruimten(Stelselgroep):
             woningwaardering.punten = -5.0
             woningwaardering_groep.woningwaarderingen.append(woningwaardering)
 
+        # 2 punten bij de aanwezigheid van privé buitenruimten
+        elif prive_buitenruimten_aanwezig:
+            woningwaardering = WoningwaarderingResultatenWoningwaardering()
+            woningwaardering.criterium = (
+                WoningwaarderingResultatenWoningwaarderingCriterium(
+                    naam="Privé buitenruimten aanwezig",
+                )
+            )
+            woningwaardering.punten = 2.0
+            woningwaardering_groep.woningwaarderingen.append(woningwaardering)
+
         punten = utils.rond_af_op_kwart(
             sum(
                 Decimal(str(woningwaardering.punten))


Test patch:
diff --git a/tests/data/zelfstandige_woonruimten/output/12006000004.json b/tests/data/zelfstandige_woonruimten/output/12006000004.json
index b75b0677..d9e36fda 100644
--- a/tests/data/zelfstandige_woonruimten/output/12006000004.json
+++ b/tests/data/zelfstandige_woonruimten/output/12006000004.json
@@ -152,7 +152,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 2.64
+          "punten": 0.64
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/20004000156.json b/tests/data/zelfstandige_woonruimten/output/20004000156.json
index 1745b908..5363f651 100644
--- a/tests/data/zelfstandige_woonruimten/output/20004000156.json
+++ b/tests/data/zelfstandige_woonruimten/output/20004000156.json
@@ -117,7 +117,7 @@
           "naam": "Buitenruimten"
         }
       },
-      "punten": 15.0,
+      "punten": 11.75,
       "woningwaarderingen": [
         {
           "aantal": 7.17,
@@ -128,7 +128,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 4.51
+          "punten": 2.51
         },
         {
           "aantal": 14.99,
@@ -139,7 +139,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 7.25
+          "punten": 5.25
         },
         {
           "aantal": 5.89,
@@ -150,13 +150,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 4.06
+          "punten": 2.06
         },
         {
           "criterium": {
-            "naam": "Maximaal 15 punten"
+            "naam": "Privé buitenruimten aanwezig"
           },
-          "punten": -0.75
+          "punten": 2.0
         }
       ]
     },
@@ -330,12 +330,12 @@
       "opslagpercentage": 0.0
     }
   ],
-  "maximaleHuur": 1319.78,
-  "punten": 211.0,
+  "maximaleHuur": 1300.35,
+  "punten": 208.0,
   "stelsel": {
     "code": "ZEL",
     "naam": "Zelfstandige woonruimten"
   },
   "huurprijsopslag": 0.0,
-  "maximaleHuurInclusiefOpslag": 1319.78
+  "maximaleHuurInclusiefOpslag": 1300.35
 }
diff --git a/tests/data/zelfstandige_woonruimten/output/23003000050.json b/tests/data/zelfstandige_woonruimten/output/23003000050.json
index 6207190e..4a7b39d9 100644
--- a/tests/data/zelfstandige_woonruimten/output/23003000050.json
+++ b/tests/data/zelfstandige_woonruimten/output/23003000050.json
@@ -163,7 +163,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 18.72
+          "punten": 16.72
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
diff --git a/tests/data/zelfstandige_woonruimten/output/23109000031.json b/tests/data/zelfstandige_woonruimten/output/23109000031.json
index c9ec92cf..cac8a9be 100644
--- a/tests/data/zelfstandige_woonruimten/output/23109000031.json
+++ b/tests/data/zelfstandige_woonruimten/output/23109000031.json
@@ -158,7 +158,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.12
+          "punten": 1.12
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/25048000007.json b/tests/data/zelfstandige_woonruimten/output/25048000007.json
index cf3d21d5..70a11cec 100644
--- a/tests/data/zelfstandige_woonruimten/output/25048000007.json
+++ b/tests/data/zelfstandige_woonruimten/output/25048000007.json
@@ -163,7 +163,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.62
+          "punten": 1.62
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/28018000044.json b/tests/data/zelfstandige_woonruimten/output/28018000044.json
index 167fb4d4..a368087f 100644
--- a/tests/data/zelfstandige_woonruimten/output/28018000044.json
+++ b/tests/data/zelfstandige_woonruimten/output/28018000044.json
@@ -179,7 +179,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 13.59
+          "punten": 11.59
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/37101000032.json b/tests/data/zelfstandige_woonruimten/output/37101000032.json
index a348b74d..d5d65615 100644
--- a/tests/data/zelfstandige_woonruimten/output/37101000032.json
+++ b/tests/data/zelfstandige_woonruimten/output/37101000032.json
@@ -189,7 +189,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 3.14,
@@ -200,7 +200,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 49.11,
@@ -211,7 +211,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 19.19
+          "punten": 17.19
         },
         {
           "aantal": 15.93,
@@ -222,13 +222,19 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 7.57
+          "punten": 5.57
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
             "naam": "Maximaal 15 punten"
           },
-          "punten": -18.0
+          "punten": -12.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/41027000003.json b/tests/data/zelfstandige_woonruimten/output/41027000003.json
index 19d2a55d..030b608b 100644
--- a/tests/data/zelfstandige_woonruimten/output/41027000003.json
+++ b/tests/data/zelfstandige_woonruimten/output/41027000003.json
@@ -146,7 +146,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.38
+          "punten": 1.38
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/41123000005.json b/tests/data/zelfstandige_woonruimten/output/41123000005.json
index 0889b8f6..4b6cbbdb 100644
--- a/tests/data/zelfstandige_woonruimten/output/41123000005.json
+++ b/tests/data/zelfstandige_woonruimten/output/41123000005.json
@@ -252,7 +252,7 @@
           "naam": "Buitenruimten"
         }
       },
-      "punten": 15.0,
+      "punten": 14.25,
       "woningwaarderingen": [
         {
           "aantal": 4.46,
@@ -263,7 +263,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.56
+          "punten": 1.56
         },
         {
           "aantal": 30.65,
@@ -274,13 +274,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 12.73
+          "punten": 10.73
         },
         {
           "criterium": {
-            "naam": "Maximaal 15 punten"
+            "naam": "Privé buitenruimten aanwezig"
           },
-          "punten": -1.25
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/41162000015.json b/tests/data/zelfstandige_woonruimten/output/41162000015.json
index 4814fd5a..b5d2f424 100644
--- a/tests/data/zelfstandige_woonruimten/output/41162000015.json
+++ b/tests/data/zelfstandige_woonruimten/output/41162000015.json
@@ -172,7 +172,7 @@
           "naam": "Buitenruimten"
         }
       },
-      "punten": 6.75,
+      "punten": 4.75,
       "woningwaarderingen": [
         {
           "aantal": 2.81,
@@ -183,7 +183,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 2.99
+          "punten": 0.99
         },
         {
           "aantal": 5.2,
@@ -194,7 +194,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.82
+          "punten": 1.82
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
@@ -373,12 +379,12 @@
       "opslagpercentage": 0.0
     }
   ],
-  "maximaleHuur": 924.9,
-  "punten": 150.0,
+  "maximaleHuur": 911.96,
+  "punten": 148.0,
   "stelsel": {
     "code": "ZEL",
     "naam": "Zelfstandige woonruimten"
   },
   "huurprijsopslag": 0.0,
-  "maximaleHuurInclusiefOpslag": 924.9
+  "maximaleHuurInclusiefOpslag": 911.96
 }
diff --git a/tests/data/zelfstandige_woonruimten/output/41164000002.json b/tests/data/zelfstandige_woonruimten/output/41164000002.json
index 6e8999a8..b93fd8eb 100644
--- a/tests/data/zelfstandige_woonruimten/output/41164000002.json
+++ b/tests/data/zelfstandige_woonruimten/output/41164000002.json
@@ -195,7 +195,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 4.63
+          "punten": 2.63
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/51011000042.json b/tests/data/zelfstandige_woonruimten/output/51011000042.json
index cb29f6b2..f69254df 100644
--- a/tests/data/zelfstandige_woonruimten/output/51011000042.json
+++ b/tests/data/zelfstandige_woonruimten/output/51011000042.json
@@ -184,7 +184,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 2.71
+          "punten": 0.71
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/71211000027.json b/tests/data/zelfstandige_woonruimten/output/71211000027.json
index 682b36cf..184274dd 100644
--- a/tests/data/zelfstandige_woonruimten/output/71211000027.json
+++ b/tests/data/zelfstandige_woonruimten/output/71211000027.json
@@ -189,7 +189,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.62
+          "punten": 1.62
         },
         {
           "aantal": 34.41,
@@ -200,13 +200,19 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 14.04
+          "punten": 12.04
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
             "naam": "Maximaal 15 punten"
           },
-          "punten": -2.75
+          "punten": -0.75
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/77795000000.json b/tests/data/zelfstandige_woonruimten/output/77795000000.json
index ca8bffd4..12cc7997 100644
--- a/tests/data/zelfstandige_woonruimten/output/77795000000.json
+++ b/tests/data/zelfstandige_woonruimten/output/77795000000.json
@@ -195,7 +195,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 21.13
+          "punten": 19.13
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
diff --git a/tests/data/zelfstandige_woonruimten/output/81020000003.json b/tests/data/zelfstandige_woonruimten/output/81020000003.json
index e2f5d8ad..8b0d48ea 100644
--- a/tests/data/zelfstandige_woonruimten/output/81020000003.json
+++ b/tests/data/zelfstandige_woonruimten/output/81020000003.json
@@ -179,7 +179,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 20.75
+          "punten": 18.75
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
diff --git a/tests/data/zelfstandige_woonruimten/output/85651000021.json b/tests/data/zelfstandige_woonruimten/output/85651000021.json
index 1cd61fba..e175c808 100644
--- a/tests/data/zelfstandige_woonruimten/output/85651000021.json
+++ b/tests/data/zelfstandige_woonruimten/output/85651000021.json
@@ -146,7 +146,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.74
+          "punten": 1.74
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/data/zelfstandige_woonruimten/output/87402000003.json b/tests/data/zelfstandige_woonruimten/output/87402000003.json
index 0418803a..395eb114 100644
--- a/tests/data/zelfstandige_woonruimten/output/87402000003.json
+++ b/tests/data/zelfstandige_woonruimten/output/87402000003.json
@@ -157,7 +157,13 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.96
+          "punten": 1.96
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         }
       ]
     },
diff --git a/tests/readme/output_json_json_voorbeeld.json b/tests/readme/output_json_json_voorbeeld.json
index 41bc59db..d5d65615 100644
--- a/tests/readme/output_json_json_voorbeeld.json
+++ b/tests/readme/output_json_json_voorbeeld.json
@@ -189,7 +189,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 3.14,
@@ -200,7 +200,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 3.1
+          "punten": 1.1
         },
         {
           "aantal": 49.11,
@@ -211,7 +211,7 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 19.19
+          "punten": 17.19
         },
         {
           "aantal": 15.93,
@@ -222,13 +222,19 @@
               "naam": "Vierkante meter, m2"
             }
           },
-          "punten": 7.57
+          "punten": 5.57
+        },
+        {
+          "criterium": {
+            "naam": "Privé buitenruimten aanwezig"
+          },
+          "punten": 2.0
         },
         {
           "criterium": {
             "naam": "Maximaal 15 punten"
           },
-          "punten": -18.0
+          "punten": -12.0
         }
       ]
     },
@@ -329,6 +335,34 @@
         }
       ]
     },
+    {
+      "criteriumGroep": {
+        "stelsel": {
+          "code": "ZEL",
+          "naam": "Zelfstandige woonruimten"
+        },
+        "stelselgroep": {
+          "code": "GPA",
+          "naam": "Gemeenschappelijke parkeerruimten"
+        }
+      },
+      "punten": 0.0,
+      "woningwaarderingen": []
+    },
+    {
+      "criteriumGroep": {
+        "stelsel": {
+          "code": "ZEL",
+          "naam": "Zelfstandige woonruimten"
+        },
+        "stelselgroep": {
+          "code": "GVR",
+          "naam": "Gemeenschappelijke vertrekken, overige ruimten en voorzieningen"
+        }
+      },
+      "punten": 0.0,
+      "woningwaarderingen": []
+    },
     {
       "criteriumGroep": {
         "stelsel": {