Purpose of this article
This article is a technical reference for Scaler's validation rules. It covers every data model in the platform, defining which fields are required, what constraints apply, and which reporting frameworks trigger additional requirements.
Use this article to:
- Understand why a specific alert is appearing for a field
- Verify what is required before importing data via spreadsheet
- Audit your data against framework-specific requirements
For a plain-language explanation of how alerts work and affect data completion, see Understanding data completion and alerts.
How validation works in Scaler
Data flows through 20+ data models covering asset details, meters, consumption, certifications, climate risk, financial data, and more. Validation runs at two scopes:
- Scaler level — always applies to all assets, regardless of reporting configuration
- Framework level — only applies when a specific reporting framework is enabled (e.g. GRESB, EU Taxonomy, SFDR)
Severity levels
Level | Description | Blocks completion? |
missing_data | Required field is empty | Yes |
error | Invalid format, out-of-range value, broken reference, or uniqueness violation | Yes |
warning | Data quality recommendation | No |
Common validation rule types
Rule key | Meaning |
required | Field must have a value |
string | Must be valid text |
max | Cannot exceed character or value limit |
numeric | Must be a number |
numeric_range | Number must be between min and max |
date | Must be a valid date |
after / before | Date must be after/before another date |
after_or_equal / before_or_equal | Date must be on or after/before another date |
exists | Referenced lookup value must exist in database |
belongs_to | Child value must belong to selected parent |
unique | Value must be unique within its scope |
boolean | Must be true or false |
must_be_one_of | Value restricted to a specific set |
decimal | Maximum number of decimal places |
required_for_framework | Required only when a specific framework is enabled |
Model Validation Details
Each sub-page below contains the complete field-by-field validation rules for each model.
1. Asset Details
Validator: InAssetDetailsValidator
UI Location: Asset Characteristics → Asset Details
Required Fields
Field | DB Name | Type | Constraints |
Asset name | asset_name | string | max 255 chars |
Meter ID | external_id | string | max 255 chars, unique within portfolio |
Property type | property_type_id | lookup | must exist in DB |
Country | country_id | lookup | must exist in DB |
City | city | string | max 100 chars |
Street address | street | string | max 100 chars |
Owned since | owned_since | date | valid date |
Conditionally Required Fields
Field | DB Name | Condition |
Property subtype | property_subtype_id | When property type has available subtypes |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Postal code | postal_code | string | max 50 chars |
House number | building_number | string | max 50 chars |
Default unit system | unit_system_id | lookup | must exist in DB |
Region | region_id | lookup | must exist in DB |
Climate zone | climate_zone_id | lookup | must exist in DB |
Latitude | latitude | number | between -90 and 90 |
Longitude | longitude | number | between -180 and 180 |
Owned until | owned_until | date | must be after "Owned since" |
Construction year | year_built | number | between 1800 and current year |
Year last renovated | year_last_renovated | number | between construction year and current year |
Number of floors | floor_count | number | between 1 and 999 |
Amount of parking spots | num_of_parking_spaces | number | between 0 and 1,000,000 |
Central heating boiler type | heating_boiler_type_id | lookup | must exist in DB |
Cooling type | cooling_type_id | lookup | must exist in DB |
Window glass type | window_glass_type_id | lookup | must exist in DB |
Property subtype | property_subtype_id | lookup | must belong to selected property type |
Warnings
Field | Condition | Message |
Region | Portfolio has market-based emission factors enabled | Needed for market-based emissions calculation; without it, location-based factors are used |
Framework Requirements
Framework | Required Fields |
GRESB | Country, Property type, Latitude, Longitude, Construction year |
EU Taxonomy CCM | Country, Property type, Climate zone, Construction year |
EU Taxonomy CCA | Country, Property type, Climate zone, Construction year |
SFDR | Country, Property type, Postal code |
2. Meter
Validator: InMeterValidator
UI Location: Meters & Consumption → Energy / Water / Waste
Required Fields
Field | DB Name | Type | Constraints |
Meter ID | external_id | string | unique within the asset |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Description | description | string | must be valid text |
3. Meter History
Validator: InMeterHistoryValidator
UI Location: Meters & Consumption → Energy / Water / Waste
Required Fields
Field | DB Name | Type | Constraints |
Resource type | resource_type_id | lookup | must exist (Energy, Water, or Waste) |
Active in analytics | active | boolean | true or false |
Include in calculations | include_in_calculations | boolean | true or false |
Start date | start_date | date | valid date, on or after asset's "Owned since" |
Conditionally Required Fields
Field | DB Name | Condition |
Meter data type | data_type_id | NOT DHC and NOT EV Charging |
Area type | area_type_id | NOT DHC, NOT EV Charging, NOT Water Mixed |
Source | source_id | Resource = Energy AND NOT DHC AND NOT EV Charging |
Waste type | waste_type_id | Resource = Waste |
Energy supplier | energy_supplier_id | Portfolio has energy suppliers feature enabled |
Indoor area type | indoor_area_type_id | Area type = "Mixed indoor/outdoor" |
Covered area | covered_area.value | Area type is NOT "Whole Building" |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Subcategory | resource_type_subcategory_id | lookup | must belong to selected resource type |
Meter data type | data_type_id | lookup | must exist in DB |
Area type | area_type_id | lookup | must exist in DB |
Source | source_id | lookup | must exist in DB |
Waste type | waste_type_id | lookup | must exist in DB |
Monitoring method | monitoring_method_id | lookup | must exist in DB |
Energy supplier | energy_supplier_id | lookup | must exist for asset's region |
GHG scope | ghg_scope_id | lookup | must exist in DB |
Indoor area type | indoor_area_type_id | lookup | must exist in DB |
End date | end_date | date | after start date, on or before "Owned until" |
Covered area | covered_area.value | number | valid number |
Covered area unit | covered_area.unit_id | enum | sqm or sqft |
Indoor covered area | indoor_covered_area.value | number | valid number |
Outdoor covered area | outdoor_covered_area.value | number | valid number |
Custom Business Rules (Errors)
Rule | Description |
Area must exist in reporting data | Meter area type must have a corresponding floor area in reporting data |
Covered area ≤ reporting data | Meter covered area must not exceed the corresponding GFA |
Meters must fully cover GFA | Sum of all meter covered areas must equal the GFA in reporting data |
All whole or all sub-area | Cannot mix whole-building with sub-area meters for same resource type |
No dual whole-building (energy) | Cannot have both Landlord and Tenant whole-building energy meters |
Version date chronology | New version start date must be after previous version start date |
Warnings
Rule | Description |
Unit areas exceed covered area | Sum of linked building unit areas exceeds meter's covered area |
Exterior meter without floor area | Outdoor meter exists but no exterior floor area in reporting data |
Only tenant meters | Consider adding common area or switching to whole building |
Dual control (water/waste) | Both tenant and landlord whole-building meters for water or waste |
Dual control (cross-resource) | Misalignment in landlord vs tenant across resources — may impact GRESB |
Framework Requirements
Framework | Required Fields / Rules |
Carbon Accounting | Source, GHG scope |
GRESB | Consistent area types; reporting data fully covered by meters |
4. Meter Consumption
Validator: InMeterConsumptionValidator
UI Location: Meters & Consumption → Energy / Water / Waste
Conditionally Required Fields
Field | DB Name | Condition |
Start date | start_date | Data type is period-based (invoice, sub-meter, etc.) |
End date | end_date | Data type is period-based |
Consumption value | consumption.value | Data type is period-based |
Consumption unit | consumption.unit_id | Consumption value is provided |
Reading date | reading_date | Data type is "Meter reading" |
Solar panel data | solar_panel_data_id | On-site renewable from solar panels |
Collection frequency | collection_frequency | Waste estimation using bins |
Number of waste bins | num_of_bins | Waste estimation using bins |
Volume of waste bins | bin_volume | Waste estimation using bins |
Field Validations
Field | DB Name | Type | Constraints |
Start date | start_date | date | valid date |
End date | end_date | date | valid date, must be after start date |
Reading date | reading_date | date | valid date |
Consumption value | consumption.value | number | between -100,000,000 and 100,000,000 |
Consumption unit | consumption.unit_id | enum | must be valid unit for the resource type |
Custom Business Rules (Errors)
Rule | Description |
No overlapping periods | Consumption periods must not overlap for the same meter |
No duplicate reading dates | Reading dates must be unique per meter |
Must have covering meter version | Consumption period must fall within an active meter version |
Correction requires existing data | Cannot create a correction when no consumption data exists |
Correction start date | Cannot be before first existing consumption |
Correction end date | Cannot be after last existing consumption |
Correction reading date | Must match an existing consumption reading date |
Warnings
Rule | Description |
Unusual consumption change | Energy: exceeds -50% to +50% vs previous. Water/Waste: exceeds -50% to +100% |
Spans multiple versions | Consumption period overlaps with multiple meter versions |
Not fully covered by version | Meter version dates don't fully cover the consumption period |
5. Building Unit
Validator: InBuildingUnitValidator
UI Location: Building Units
Required Fields
Field | DB Name | Type | Constraints |
Meter ID | external_id | string | unique within the asset |
Name | name | string | must be provided |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Description | description | string | valid text |
Comment | comment | string | max 255 chars |
6. Certification (Asset Level)
Validator: InCertificationValidator
UI Location: Certifications → Design & Construction / Operational / Energy Rating
Required Fields
Field | DB Name | Type | Constraints |
Group | group_id | lookup | must exist in DB |
Type | type_id | lookup | must belong to selected group |
Level | level_id | lookup | must belong to selected type |
Conditionally Required
Field | DB Name | Condition |
Date obtained | date_obtained | When "Planning to obtain" is false or null |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Score index | score_index | number | - |
Covered area | covered_area.value | number | cannot exceed min GFA for the certification period |
Covered area unit | covered_area.unit_id | enum | sqm or sqft |
Date obtained | date_obtained | date | valid date |
Expiration date | date_expired | date | must be on or after date obtained |
Primary energy demand | primary_energy_demand | number | between -100 and 1000 |
Meets NZEB criteria | primary_energy_demand_meets_nzeb_criteria | boolean | - |
% lower than NZEB | percentage_lower_than_nzeb_criteria | number | between 0 and 100 |
Top % national stock PED | top_percentage_of_national_stock_ped | number | between 0 and 100 |
Planning to obtain | planning_to_obtain | boolean | - |
EPC certificate number | epc_certificate_number | string | max 255 chars |
Comment | comment | string | max 255 chars |
Framework Requirements
Framework | Required Fields / Rules |
GRESB | "Date submitted for review" required when certification was obtained within reporting year |
7. Physical Climate Risk
Validator: InPhysicalClimateValidator
UI Location: Physical Climate → Physical Climate Risk Assessments
Required Fields
Field | DB Name | Type | Constraints |
Since | since | date | valid date |
Climate Hazard Fields
All optional. Each is a number that must reference a valid physical climate risk level from the lookup.
Temperature-related
Field | DB Name |
Changing temperature | changing_temperature |
Heat stress | heat_stress |
Temperature variability | temperature_variability |
Permafrost thawing | permafrost_thawing |
Heat wave | heat_wave |
Cold wave/frost | cold_wave_frost |
Wind-related
Field | DB Name |
Wildfire | wildfire |
Changing wind patterns | changing_wind_patterns |
Cyclone/hurricane/typhoon | cyclon_hurricane_typhoon |
Storm | storm |
Tornado | tornado |
Water-related
Field | DB Name |
Changing precipitation patterns | changing_precipitation_patterns |
Precipitation/hydrological variability | precipitation_or_hydrological_variability |
Ocean acidification | ocean_acidification |
Saline intrusion | saline_intrusion |
Sea level rise | sea_level_rise |
Water stress | water_stress |
Drought | drought |
Heavy precipitation | heavy_precipitation |
Flood | flood |
Glacial lake outburst | glacial_lake_outburst |
Soil/Ground-related
Field | DB Name |
Coastal erosion | coastal_erosion |
Soil degradation | soil_degradation |
Soil erosion | soil_erosion |
Solifluction | solifluction |
Avalanche | avalanche |
Landslide | landslide |
Subsidence | subsidence |
Other
Field | DB Name | Type | Constraints |
Comment | comment | string | max 255 chars |
8. Renewable Energy Contract
Validator: InRenewableEnergyContractValidator
UI Location: Certifications → Renewable Energy Contracts
Required Fields
Field | DB Name | Type | Constraints |
Name | name | string | max 255 chars |
Procurement type | procurement_type_id | lookup | must exist in DB |
Market based claim | market_based_claim_id | lookup | must exist in DB |
Proximity | proximity_id | lookup | must exist in DB |
Vintage of generation | vintage_of_generation_id | lookup | must exist in DB |
Start date | start_date | date | valid date |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
End date | end_date | date | must be after start date |
Purchased amount | purchased_amount.value | number | valid number |
Purchased amount unit | purchased_amount.unit_id | enum | kWh, MWh, or GJ |
Comment | comment | string | max 255 chars |
9. ESG Data
Validator: InEsgDataValidator
UI Location: Legacy – multiple tabs based on ESG field type
Required Fields
Field | DB Name | Type | Constraints |
ESG field | esg_field_id | lookup | must exist in DB |
Year | year | number | between 1900 and current year |
Updated at | updated_at | date | valid date |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Description | description | string | valid text |
Comment | comment | string | valid text |
10. Reporting Data
Validator: InReportingDataAggValidator
UI Location: Reporting Data → Floor Areas / Reporting Details / Sustainable Characteristics / Carbon Offsets
Tab Mapping
Tab | Fields |
Floor Areas | GFA, GFA common areas, GFA tenant areas, GFA exterior areas, GIA (+ common/tenant), GUA (+ common/tenant), vegetated surface area, total surface area |
Reporting Details | Status, employees, asset/technical/property manager, gross asset value, vacancy rate, gross rental income, rental units, % ownership |
Sustainable Characteristics | Solar panel fields, parking/EV fields, battery storage |
Carbon Offsets | Carbon offset fields (landlord/tenant × electricity/fuels/DHC) |
Key Field Validations
Field | DB Name | Type | Constraints |
Gross floor area | gross_floor_area.value | number | between 0 and 100,000,000 |
GFA unit | gross_floor_area.unit_id | enum | sqm or sqft |
GFA common areas | gross_floor_area_common_areas.value | number | valid number |
GFA tenant areas | gross_floor_area_tenant_areas.value | number | valid number |
GFA exterior areas | gross_floor_area_exterior_areas.value | number | valid number |
Gross lettable floor area | gross_lettable_floor_area.value | number | valid number |
Status | status_id.value | lookup | must exist in DB |
Percent of ownership | percent_of_ownership.value | number | between 0 and 100 |
Average vacancy rate % | average_vacancy_rate.value | number | between 0 and 100 |
Custom Business Rules
Rule | Description |
Unit areas vs tenant areas | Sum of all linked building unit areas cannot exceed tenant areas |
Framework Requirements
Framework | Required Fields |
GRESB | Gross floor area, Gross lettable floor area, Status |
EU Taxonomy CCM | Gross floor area, Primary energy demand, Meets NZEB criteria, % lower than NZEB |
SFDR | Gross floor area |
EPRA | Gross floor area, Property gross value |
GRESB-Specific Rules
Field | Level | Description |
Percent of ownership | Error | Must be filled for current reporting year |
Average vacancy rate % | Error | Must be filled for current reporting year |
Status | Error | Must cover the entire reporting year without gaps |
Gross asset value | Warning | Recommended for current year |
Average vacancy rate % | Warning | Recommended for previous year |
11. Financial Data
Validator: InFinancialDataAggValidator
UI Location: Financial Data → Financial Data
Field Validations
Field | DB Name | Type | Constraints |
Currency | *.currency_id | lookup | must exist in DB |
Capital expenditures (Capex) | capex.value | number | between -100M and 100M, max 6 decimals |
Operating expenses (Opex) | opex.value | number | between 0 and 100M, max 6 decimals |
Turnover | turnover.value | number | between 0 and 100M, max 6 decimals |
% of NOI invested in sustainability | percentage_of_noi_invested_in_sustainable.value | number | between 0 and 100 |
Comment | comment.value | string | valid text |
Warnings
Field | Description |
Capex | Warning when value is negative |
Framework Requirements
Framework | Required Fields |
EU Taxonomy (CCM, CCA, Merged) | Turnover, Capex, Opex |
EPRA | Turnover |
12. Loan Data
Validator: InLoanDataAggValidator
UI Location: Financial Data → Loan Data
All fields are optional with validation.
Core Loan Fields
Field | DB Name | Type | Constraints |
Loan start date | loan_start_date.value | date | valid date |
Current loan expiry | current_loan_expiry.value | date | valid date |
Extension options | extension_options_to_current_loan_expiry.value | number | between 0 and 100M |
Extension criteria | describe_criteria_for_executing_extention_options.value | string | max 255 chars |
Lender | lender.value | string | max 255 chars |
Loan holder | loan_holder.value | string | max 255 chars |
Original loan amount | original_loan_amount.value | number | between 0 and 100M |
Loan currency | loan_denominated_currency.value | string | valid text |
Interest rate type | interest_rate_type.value | string | valid text |
Annual interest rate | interest_rate_annual_interest_rate.value | number | between 0 and 100 |
Base rate | interest_rate_base_rate.value | number | between 0 and 100 |
Swap margin | interest_rate_swap_margin.value | number | between 0 and 100 |
Reference rate | interest_rate_reference_rate.value | number | valid number |
Amortisation | amortisation.value | boolean | true or false |
Yearly amortisation rate | yearly_amortisation_rate.value | number | between 0 and 100 |
Remaining loan balance | remaining_loan_balance.value | number | between 0 and 100M |
Cross collateralised loan | cross_collateralised_loan.value | string | valid text |
Recourse to vehicle | loan_with_recourse_to_vehicle.value | string | valid text |
Loan to cost (LTC) | loan_to_cost.value | number | between 0 and 100 |
Loan to value (LTV) | loan_to_value.value | number | between 0 and 100 |
DSCR | debt_service_coverage_ratio.value | number | between 0 and 100M |
ICR | interest_coverage_ratio.value | number | between 0 and 100M |
Covenant Fields (LTV, DSCR, ICR)
Each covenant type (LTV, DSCR, ICR) has the same sub-field pattern:
Sub-field | Type | Constraints |
Covenant level | number | between 0 and 100 |
Breach consequence | string | valid text |
Cure of breach | string | valid text |
Cure period | string | valid text |
Next test date | date | valid date |
Test frequency | string | valid text |
Additional string fields: Other covenants, Other covenant breach, Default clause, Comment
13. Impact Investing
Validator: InImpactInvestingAggValidator
UI Location: Social Data → Impact Investing
All fields are optional with validation. Unit fields must be sqm or sqft.
Area Fields
All: number, between 0 and 100,000,000
Field | DB Name |
GFA affordable housing | gross_floor_area_aff_housing_crit.value |
GFA social housing | gross_floor_area_soc_housing_crit.value |
GFA alternative housing | gross_floor_area_alt_housing_crit.value |
GFA free market housing | gross_floor_area_free_market_housing.value |
GFA public facilities | gross_floor_area_public_facilities.value |
GFA green spaces | gross_floor_area_green_spaces.value |
Community spaces (free) | total_floor_area_community_spaces_free.value |
Community spaces (delivered) | total_floor_area_community_spaces_delivered.value |
Community spaces (wider) | total_floor_area_community_spaces_wider.value |
Count Fields
All: number, between 0 and 100,000,000
Field | DB Name |
Affordable housing units | num_of_rent_units_with_aff_housing_crit.value |
Social housing units | num_of_rent_units_with_soc_housing_crit.value |
Alternative housing units | num_of_rent_units_with_alt_housing_crit.value |
Green lease units | num_of_rent_units_with_green_lease_signed.value |
Free market units | number_of_rental_units_with_free_market_housing_criteria.value |
Number of tenants | num_of_tenants.value |
Tenants (affordable) | num_of_tenants_affordable_housing.value |
Tenants (social) | num_of_tenants_social_housing.value |
Tenants (alternative) | num_of_tenants_alternative_housing.value |
Tenants (free market) | num_of_tenants_free_market_housing.value |
Average beds housed | avg_num_of_beds_housed.value |
Other Fields
Field | DB Name | Type | Constraints |
Water storage volume | vol_of_water_storage_created.value | number | between 0 and 100M |
Green spaces description | desc_of_green_spaces.value | string | valid text |
Water storage description | desc_of_water_storage.value | string | valid text |
Comment | comment.value | string | valid text |
14. Climate Adaptation Plan
Validator: InClimateAdaptationPlanAggValidator
UI Location: Physical Climate → Climate Adaptation Plans
Boolean Fields
All must be true or false when provided.
Field | DB Name |
Vulnerability assessment (climate projections) | vulnerability_assessment_performed_using_climate_proj.value |
Vulnerability assessment (highest resolution) | vulnerability_assessment_performed_using_highest_resolution.value |
Climate hazards considered | climate_hazards_considered_material_relevant_adaption.value |
Climate projections best practice | climate_projections_assessment_performed_best_practice.value |
Physical/non-physical solutions | economic_activity_has_implemented_physical_non_physical.value |
Nature-based solutions | adaptation_solution_favour_nature_based_solutions.value |
Solutions consistent with plans | solutions_consistent_with_local_sectoral_regional_national.value |
Solutions monitored | solutions_monitored_measured_against_pre_defined_indicators.value |
Physical solution TSC compliance | if_solution_physical_and_tsc_it_complies.value |
Climate risk assessment performed | climate_risk_and_vulnerability_assessment_is_performed.value |
Adaptation plan drawn up | adaption_plan_is_drawn_up_accordingly.value |
Solutions don't affect adaptation | adaptation_solutions_implemented_do_not_affect_adaptation.value |
Numeric & Other Fields
Field | DB Name | Type | Constraints |
Expected building lifespan | expected_lifespan_of_the_building_in_years.value | number | between 0 and 10,000 |
Comment | comment.value | string | max 255 chars |
Framework Requirements
Framework | Required Fields | Notes |
EU Taxonomy CCM | All boolean fields + expected lifespan | Vulnerability (climate projections) when lifespan < 10 years; Vulnerability (highest resolution) when lifespan > 10 years |
EU Taxonomy CCA | Same as CCM except "Climate hazards considered" not required | Same lifespan conditions apply |
15. Construction
Validator: InConstructionAggValidator
UI Location: Asset Characteristics → Construction
Boolean Fields
All must be true or false when provided.
Field | DB Name |
Air tightness testing | testing_performed_for_air_tightness_and_thermal_integrity.value |
Quality control | robust_and_traceable_quality_control_processed.value |
Life cycle GWP calculated | life_cycle_gwp_from_construction_is_calculated.value |
Water risks identified | environmental_risks_water_quality_stress_identified.value |
Operators limit waste | operators_limit_waste_generation.value |
Supports circularity | building_designs_construction_techniques_support_circularity.value |
Appendix C compliance | building_components_materials_comply_criteria_appendix_c.value |
Brownfield site | located_on_potentially_contaminated_brownfield_site.value |
Contaminant investigation | subject_to_investigation_for_potential_contaminants.value |
Pollution measures | measures_taken_to_reduce_noise_dust_pollutant_emissions.value |
EIA completed | eia_completed.value |
Not on arable/greenfield | not_built_on_arable_land_crop_land_greenfield_land_forest.value |
Renovation complies | building_renovation_complies.value |
Renovation leads to reduction | building_renovation_leads_to_reduction.value |
Fossil fuel extraction | involved_in_extraction_of_fossil_fuels.value |
Waste sorting facilities | equipped_with_facilities_for_waste_sorting.value |
EPC operation | building_effectively_operated_through_epc.value |
Numeric Fields
All: number, between 0 and 100,000,000
Field | DB Name |
Tap flow rate (litres/min) | maximum_flow_litres_min_of_wash_hand_basin_taps.value |
Shower flow rate | maximum_flow_litres_min_of_showers.value |
WC full flush volume | full_flush_volume_of_wcs.value |
WC average flush volume | maximum_average_flush_volume_of_wcs.value |
Urinal usage | maximum_use_in_litres_bowl_hour_of_urinals.value |
Urinal flush volume | maximum_full_flush_volume_of_flushing_urinals.value |
Formaldehyde emissions | mg_of_formaldehyde_per_m3_of_material_emitted.value |
Carcinogenic compound emissions | mg_of_other_carcinogenic_compounds_per_m3_emitted.value |
Construction energy | energy_consumption_during_construction_phase.value |
Construction embodied carbon | embodied_carbon_during_construction_phase.value |
Recycled materials volume | vol_of_bio_based_or_reused_recycled_materials.value |
EU Taxonomy compliant materials | vol_of_materials_sourced_matching_eu_taxonomy_thresholds.value |
Construction waste | waste_generation_during_construction_phase.value |
Raw materials weight | weight_of_raw_building_materials.value |
Total materials weight | total_weight_of_building_materials.value |
HSAV rated output | effective_rated_output_for_hsav.value |
Framework Requirements
Framework | Required Fields | Conditions |
EU Taxonomy CCM | Air tightness testing, Life cycle GWP calculated | When GFA > 5000 m² and construction permit after 2020 |
EU Taxonomy CCM | Fossil fuel extraction | Always |
EU Taxonomy CCM | HSAV rated output | Non-residential properties |
EU Taxonomy CCM | EPC operation | Non-residential and HSAV > 290 |
SFDR | Fossil fuel extraction | Always |
EU Taxonomy CCA | Fossil fuel extraction | Always |
INREV ESG SDDS | Fossil fuel extraction | Always |
16. Embodied Carbon
Validator: InEmbodiedCarbonAggValidator
UI Location: Asset Characteristics → Embodied Carbon
All fields optional. Each is a number between 0 and 100,000,000.
Life Cycle Stages
Stage | Field | DB Name |
Production | Raw material supply (A1) | raw_material_supply_a1.value |
Production | Transport (A2) | transport_a2.value |
Production | Manufacturing (A3) | manufacturing_a3.value |
Construction | Transport (A4) | transport_a4.value |
Construction | Construction & installation (A5) | construction_and_installation_process.value |
Use | Use (B1) | use_b1.value |
Use | Maintenance (B2) | maintenance_b2.value |
Use | Repair (B3) | repair_b3.value |
Use | Replacement (B4) | replacement_b4.value |
Use | Refurbishment (B5) | refurbishment_b5.value |
End of life | Deconstruction (C1) | deconstruction_and_demolition_c1.value |
End of life | Transport (C2) | transport_c2.value |
End of life | Waste processing (C3) | waste_processing_c3.value |
End of life | Disposal (C4) | disposal_c4.value |
Other
Field | DB Name | Type | Constraints |
Comment | comment.value | string | max 255 chars |
17. Development
Validator: InDevelopmentAggValidator
UI Location: Development
Lookup Fields
All optional. Each must exist in DB when provided.
Field | DB Name |
Locate projects near transit | locate_projects_near_transit_id.value |
Protect natural habitats | protect_natural_habitats_restore_soils_id.value |
Prevent heat stress | prevent_heat_stress_id.value |
Prevent water stress | prevent_water_stress_id.value |
Prevent floods/sea level rise | prevent_floods_sea_level_rise_id.value |
Prevent wildfires | prevent_wildfires_id.value |
Hurricane/typhoon prevention | hurricane_typhoon_prevention_id.value |
Marketing plan (local community) | marketing_plan_local_community_id.value |
Mitigate construction impacts | mitigate_construction_impacts_id.value |
Install security measures | install_security_measures_id.value |
Employ locals | employ_locals_id.value |
Incorporate retail/public spaces | incorporate_retail_public_spaces_id.value |
Encourage exercise (design) | encourage_exercise_building_design_id.value |
Design for nature access | design_for_nature_access_id.value |
Promote alt commute options | promote_alt_commute_options_id.value |
Include fountains/bottle fillers | include_fountains_bottle_fillers_id.value |
Increase ventilation/airflow | increase_ventilation_airflow_id.value |
Maximize daylight access | maximize_daylight_access_id.value |
Encourage social engagement | encourage_social_engagement_id.value |
Pet friendly design/policies | pet_friendly_design_policies_id.value |
Install cool roof | install_cool_roof_id.value |
Install smart meters | install_smart_meters_id.value |
Integrative design process | integrative_design_process_id.value |
Exceed energy code | exceed_energy_code_id.value |
Low VOC materials | low_voc_materials_id.value |
Adhere to safety standards | adhere_safety_standards_id.value |
Stormwater/erosion control | stormwater_erosion_control_id.value |
Seek green building certification | seek_green_building_certification_id.value |
No smoking policy | no_smoking_policy_id.value |
String Fields (all max 255 chars)
Field | DB Name |
Baseline energy code | baseline_energy_code.value |
Specify Energy Star appliances | specify_energy_star_appliances.value |
Comment | comment.value |
18. Installation (F-Gas)
Validator: InInstallationValidator
UI Location: Meters & Consumption → Installations
Required Fields
Field | DB Name | Type | Constraints |
Installation type | type_of_installation_id | lookup | must exist in DB |
Installation ID | installation_id | string | unique within asset |
Area type | area_type_id | lookup | must exist in DB |
F-gas capacity | f_gas_capacity | number | between 0 and 100M |
F-gas type | fluorinated_gas_type_id | lookup | must exist in DB |
Leak factor | leak_factor | number | between 0 and 100 |
Installation date | installation_date | date | must be before or equal to decommission date |
Optional Fields with Validation
Field | DB Name | Type | Constraints |
Version | version | number | valid number |
Description | description | string | max 255 chars |
Cooling output | cooling_output | number | between 0 and 100M |
Heating output | heating_output | number | between 0 and 100M |
Classification | classification | string | max 255 chars |
Decommission date | decomission_date | date | required when disposal emissions provided; after or equal to installation date |
Acquisition date | acquisition_date | date | valid date |
Plant type | plant_type | string | max 255 chars |
Plant manufacturer | plant_manufacturer | string | max 255 chars |
Plant model | plant_model | string | max 255 chars |
Serial number | serial_number | string | max 255 chars |
Location description | location_description | string | max 255 chars |
Comment | comment | string | max 255 chars |
Assembly emissions | assembly_emissions | number | between 0 and 100M |
Disposal emissions | disposal_emissions | number | between 0 and 100M |
19. Building Unit Sub-Models
This page covers Building Unit GFA, GUA, Vacancy Period, and Certification.
Building Unit - Gross Floor Area
Validator: InBuildingUnitsGrossFloorAreaValidator
Field | DB Name | Required | Type | Constraints |
Building unit | building_unit_id | Yes | lookup | must exist in DB |
Area value | value.value | Yes | number | - |
Unit | value.unit_id | Yes | enum | sqm or sqft |
Recorded at | recorded_at | Yes | date | valid date, unique per building unit |
Building Unit - Gross Usable Area
Validator: InBuildingUnitsGrossUsableAreaValidator
Same structure as GFA above.
Building Unit - Vacancy Period
Validator: InBuildingUnitsVacancyPeriodValidator
Field | DB Name | Required | Type | Constraints |
Building unit | building_unit_id | Yes | lookup | must exist in DB |
Start date | start_date | Yes | date | valid date |
End date | end_date | No | date | must be after start date |
Warning: Vacancy periods must not overlap with existing periods for the same unit.
Building Unit - Certification
Validator: InBuildingUnitsCertificationValidator
Field | DB Name | Required | Type | Constraints |
Building unit | building_unit_id | Yes | lookup | must exist in DB |
Certification group | group_id | Yes | lookup | must exist in DB |
Certification type | type_id | Yes | lookup | must belong to selected group |
Certification level | level_id | Yes | lookup | must belong to selected type |
Date obtained | date_obtained | Unless planning | date | valid date |
Optional fields: Score index (number), Covered area (number, ≤ min GFA, unit sqm/sqft), Date expired (date, ≥ date obtained), Primary energy demand (number, -100 to 1000), Meets NZEB criteria (boolean), % lower than NZEB (number, 0-100), Top % national stock (number, 0-100), Planning to obtain (boolean), EPC certificate number (string, max 255), Comment (string, max 255).
20. Impact Initiatives
UI Location: Social Data → Impact Initiatives
Four sub-types share similar patterns. All require Since (date, unique per asset).
Community Program
Validator: InImpactInitiativesCommunityProgramValidator
Field | DB Name | Required | Type | Constraints |
Since | since | Yes | date | unique per asset |
Initiative type | type_of_initiatives_id | No | lookup | must exist in DB |
Description | description_of_initiative | No | string | max 255 chars |
Individuals serviced | number_of_individuals_serviced_by_initiative | No | number | valid |
Target audience | main_target_audience_id | No | lookup | must exist in DB |
Focus | focus_of_initiative_id | No | lookup | must exist in DB |
Stakeholders | stakeholders_of_initiative_id | No | lookup | must exist in DB |
Comment | comment | No | string | max 255 chars |
Ecology Initiative
Validator: InImpactInitiativesEcologyInitiativeValidator
Field | DB Name | Required | Type | Constraints |
Since | since | Yes | date | unique per asset |
Initiative type | type_of_initiatives_id | No | lookup | must exist in DB |
Description | description_of_initiative | No | string | max 255 chars |
Area (sqm) | sqm_of_initiative | No | number | between 0 and 100M |
Number of installations | num_of_installations | No | number | between 0 and 100M |
Comment | comment | No | string | max 255 chars |
Places Created
Validator: InImpactInitiativesPlacesCreatedValidator
Field | DB Name | Required | Type | Constraints |
Since | since | Yes | date | unique per asset |
Initiative type | type_of_initiatives_id | No | lookup | must exist in DB |
Description | description_of_initiative | No | string | max 255 chars |
Comment | comment | No | string | max 255 chars |
Public Facilities
Validator: InImpactInitiativesPublicFacilitiesValidator
Field | DB Name | Required | Type | Constraints |
Since | since | Yes | date | unique per asset |
Initiative type | type_of_initiatives_id | No | lookup | must exist in DB |
Description | description_of_initiative | No | string | max 255 chars |
Individuals serviced | number_of_individuals_serviced_by_initiative | No | number | valid |
Area (sqm) | sqm_of_initiative | No | number | between 0 and 100M |
Comment | comment | No | string | max 255 chars |
21. Output Consumption
Validator: OutputConsumptionValidator
UI Location: Meters & Consumption (calculated/aggregated output)
This model only has warnings (no required fields or errors).
Warnings
Field | Rule | Message |
Consumption value | Should be >= 0 | Negative consumption indicates incorrect data in underlying meters |
Consumption value | Should not exceed 1,000,000,000 | Consumption exceeds maximum allowed value |
22. Missing Row Validations
These validations check for required data rows (not field values) that must exist for certain frameworks or conditions.
Missing Row Rules
What's Missing | Condition | Frameworks |
No certification row | Asset has no valid certification for reporting year and is not EPC exempt | SFDR, EU Taxonomy CCM, EU Taxonomy CCA, EU Taxonomy Merged |
No meter row (general) | Asset is operating but has no active meters | GRI, SASB, SECR, SFDR, Roadmaps |
No energy meter (current year) | Asset is operating but has no energy meter | GRESB |
No water meter (current year) | Asset is operating but has no water meter | GRESB |
No energy meter (previous year) | No energy meter for previous reporting year | GRESB |
No water meter (previous year) | No water meter for previous reporting year | GRESB |
Missing area coverage | Non-whole-building setup missing either common area or tenant area meters | GRESB |
No building unit GFA | Building unit exists but has no gross floor area | All frameworks |
23. Custom Validation Rules
These are custom validation rule classes applied to specific models.
CoversAreaInReportingData
Applies to: Meter History
Validates meter coverage against reporting data floor areas.
Rule | Level | Description |
Area must exist in reporting data | Error | Meter area type must have corresponding floor area in reporting data |
Only tenant meters | Warning | Consider adding common area or whole building meters |
Dual control (energy) | Error | Cannot have both tenant and landlord whole building meters for energy |
Dual control (water/waste) | Warning | Both tenant and landlord controlled meters - review if accurate |
Dual control (cross-resource) | Warning | Misalignment in operational control across resources - may impact GRESB scoring |
Covered area exceeds reporting data | Error | Meter covered area cannot be greater than corresponding GFA |
Meters must fully cover GFA | Error | Sum of meter covered areas must equal the GFA of the asset |
AllWholeOrNonWholeBuilding
Applies to: Meter History
Rule | Level | Description |
Consistent area types | Error | All meters must be either whole building or sub-area, not mixed |
UnitAreasExceedMeterCoveredArea
Applies to: Meter History
Rule | Level | Description |
Building unit areas exceed meter | Warning | Sum of linked building unit areas exceeds meter covered area |
AfterDatesInLatestVersion
Applies to: Meter History
Rule | Level | Description |
Version date chronology | Error | New version dates must be after previous version dates |
DoesntOverlapWith
Applies to: Meter Consumption
Rule | Level | Description |
No overlapping periods | Error | Consumption periods must not overlap |
No duplicate reading dates | Error | Reading dates must be unique per meter |
RelativeChangeNotGreaterThan
Applies to: Meter Consumption
Rule | Level | Thresholds |
Unusual consumption change | Warning | Energy: -50% to +50%. Water/Waste: -50% to +100% |
NumberOfEncompassingVersionsFulfills
Applies to: Meter Consumption
Rule | Level | Description |
Must have covering version | Error | Consumption period must be covered by an active meter version |
Spans multiple versions | Warning | Consumption period overlaps with multiple meter versions |
Not fully covered | Warning | Meter version doesn't fully cover the consumption period |
CorrectionDateIsNotOutOfConsumptionPeriod
Applies to: Meter Consumption
Rule | Level | Description |
Correction requires existing data | Error | Cannot create correction without existing consumption data |
Correction date boundaries | Error | Start/end/reading date must fall within existing consumption range |
StatusCoversEntireYear
Applies to: Reporting Data
Rule | Level | Description |
Status coverage | Error (GRESB) | Status entries must cover the entire reporting year without gaps |
ExistingInThisAndPreviousYearTricky
Applies to: Reporting Data
Rule | Level | Description |
Current year required | Error (GRESB) | Field must be filled for current reporting year |
Current year recommended | Warning (GRESB) | Recommended to fill for current year |
Previous year recommended | Warning (GRESB) | Recommended to fill for previous year |
UnitAreasExceedTenantAreas
Applies to: Reporting Data
Rule | Level | Description |
Unit areas exceed tenant areas | Error | Sum of building unit areas cannot exceed GFA tenant areas |
NotInExistingPeriod
Applies to: Building Unit Vacancy Period
Rule | Level | Description |
No overlapping periods | Warning | Period must not overlap with existing periods |
InCertificationGresbYearlyValidation
Applies to: Certification
Rule | Level | Description |
Date submitted for review | Missing data (GRESB) | Required when certification obtained within GRESB reporting period |
