glam/schemas/20251121/linkml/modules/classes/Revenue.yaml
kempersc 4319f38c05 Add archived slots for audience size, audience type, and capacity metrics
- Created new YAML files for audience size and audience type slots, defining their properties and annotations.
- Added archived capacity slots including cubic meters, linear meters, item count, and descriptions, with appropriate URIs and ranges.
- Introduced a template specificity slot for context-aware RAG filtering.
- Consolidated capacity-related slots into a unified structure, including has_or_had_capacity, capacity_type, and capacity_value, with detailed descriptions and examples.
2026-01-17 18:53:23 +01:00

260 lines
No EOL
8.6 KiB
YAML

# Revenue - Structured revenue/income for financial reporting
# Created per slot_fixes.yaml migration for: total_revenue
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Revenue
name: Revenue
title: Revenue Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
frapo: http://purl.org/cerif/frapo/
time: http://www.w3.org/2006/time#
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_quantity
- ../slots/has_or_had_currency
- ../slots/has_or_had_time_interval
- ../slots/specificity_annotation
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- ./Quantity
- ./Currency
- ./TimeInterval
- ./SpecificityAnnotation
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../slots/revenue_category
default_prefix: hc
classes:
Revenue:
class_uri: schema:MonetaryAmount
description: >-
Structured revenue/income data for financial reporting.
**WHY STRUCTURED REVENUE?**
Simple decimal fields like `total_revenue: 78500000.0` lose important context:
- What currency? (EUR, USD, GBP?)
- What time period? (FY2023, Q1 2024?)
- What type of revenue? (grants, program, investment?)
The Revenue class captures this richness:
- `has_or_had_quantity`: Monetary amount with value and optional unit
- `has_or_had_currency`: ISO 4217 currency (EUR, USD, etc.)
- `has_or_had_time_interval`: Reporting period (annual, quarterly)
**REVENUE CATEGORIES** (nonprofit context):
| Category | Description |
|----------|-------------|
| CONTRIBUTIONS | Donations and gifts |
| GRANTS | Foundation and government grants |
| PROGRAM_SERVICE | Earned income from programs |
| INVESTMENT | Interest, dividends, gains |
| OTHER | Miscellaneous income |
**SCHEMA.ORG ALIGNMENT**:
Maps to `schema:MonetaryAmount` - "A monetary value or range."
**EXAMPLE**:
```yaml
Revenue:
has_or_had_identifier: https://nde.nl/ontology/hc/revenue/rm/fy2023
has_or_had_label: "Total Revenue FY2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
```
**RULE 53 COMPLIANT**: Created per slot_fixes.yaml revision for total_revenue.
Branch 1: has_or_had_currency → Currency
Branch 2: has_or_had_time_interval → TimeInterval
exact_mappings:
- schema:MonetaryAmount
close_mappings:
- frapo:Funding
related_mappings:
- schema:priceSpecification
slots:
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
- has_or_had_quantity
- has_or_had_currency
- has_or_had_time_interval
- revenue_category
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
slot_usage:
has_or_had_identifier:
range: uriorcurie
required: false
description: >-
Optional identifier for this revenue record.
examples:
- value: https://nde.nl/ontology/hc/revenue/rm/fy2023
description: Rijksmuseum FY2023 total revenue
has_or_had_label:
range: string
required: false
description: >-
Human-readable label for this revenue.
examples:
- value: "Total Revenue FY2023"
- value: "Q1 2024 Program Revenue"
has_or_had_description:
range: string
required: false
description: >-
Detailed description of what this revenue represents.
examples:
- value: "Total revenue including contributions, grants, program service revenue, and investment income"
has_or_had_quantity:
range: Quantity
required: true
inlined: true
description: >-
The monetary amount of revenue.
Uses Quantity class for value with optional unit.
examples:
- value:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
description: Total revenue amount
has_or_had_currency:
range: Currency
required: true
inlined: true
description: >-
The currency for this revenue amount.
Branch 1 from slot_fixes.yaml revision.
examples:
- value:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
description: Euro currency
- value:
currency_code: USD
has_or_had_label: US Dollar
currency_symbol: "$"
description: US Dollar currency
has_or_had_time_interval:
range: TimeInterval
required: false
inlined: true
description: >-
The reporting period for this revenue.
Branch 2 from slot_fixes.yaml revision.
examples:
- value:
duration_value: "P1Y"
duration_description: "annual"
description: Annual revenue
- value:
duration_value: "P3M"
duration_description: "quarterly"
description: Quarterly revenue
revenue_category:
range: string
required: false
description: >-
Category of revenue (TOTAL, CONTRIBUTIONS, GRANTS, PROGRAM_SERVICE, INVESTMENT, OTHER).
examples:
- value: TOTAL
description: Total revenue (sum of all categories)
- value: CONTRIBUTIONS
description: Donations and gifts
- value: GRANTS
description: Foundation and government grants
- value: PROGRAM_SERVICE
description: Earned income from programs
comments:
- Revenue models structured monetary income with currency and time period
- Replaces simple decimal total_revenue field
- Uses Schema.org MonetaryAmount as primary ontology mapping
- Supports nonprofit revenue categories (contributions, grants, program, investment)
- Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval
see_also:
- https://schema.org/MonetaryAmount
- https://nde.nl/ontology/hc/class/FinancialStatement
- https://nde.nl/ontology/hc/class/Budget
annotations:
custodian_types: '["*"]'
custodian_types_rationale: >-
Revenue tracking applicable to all heritage custodian types with financial reporting.
custodian_types_primary: M
specificity_score: 0.55
specificity_rationale: >-
Moderate specificity - primarily relevant for financial statement contexts.
examples:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/revenue/rm/fy2023
has_or_had_label: "Total Revenue FY2023"
has_or_had_description: "Total revenue including contributions, grants, program service revenue, and investment income for fiscal year 2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
description: Major museum annual total revenue (Rule 53 pattern)
- value:
has_or_had_label: "Form 990 Total Revenue FY2022"
has_or_had_quantity:
quantity_value: 439000000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: USD
has_or_had_label: US Dollar
currency_symbol: "$"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year July 2022 - June 2023"
revenue_category: TOTAL
description: US nonprofit Form 990 total revenue
# REMOVED inline slots 2026-01-16 - Rule 48 violation
# Slots are imported from ../slots/ - do not define inline