glam/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml
kempersc fc405445c6 Refactor and update schema definitions
- Removed obsolete slots: `has_or_had_custodian_observation`, `provider`, and `specificity_annotation`.
- Updated `has_or_had_score` slot to use `SpecificityScore` class and modified its description and examples.
- Added new slots: `end_seconds`, `end_time`, `has_archive_path`, `has_or_had_custodian_name`, `protocol_name`, and `protocol_version`.
- Introduced a script `check_annotation_types.py` to validate the presence and structure of `custodian_types` in YAML files.
- Added a script `update_specificity.py` to automate updates related to `SpecificityAnnotation` to `SpecificityScore`.
2026-02-01 19:55:38 +01:00

229 lines
13 KiB
YAML

id: https://nde.nl/ontology/hc/class/FinancialStatement
name: financial_statement_class
title: FinancialStatement Class
imports:
- linkml:types
- ../enums/FinancialStatementTypeEnum
- ../slots/documents_or_documented
- ../slots/draws_or_drew_opinion
- ../slots/has_or_had_asset
- ../slots/has_or_had_expense
- ../slots/has_or_had_format
- ../slots/has_or_had_identifier
- ../slots/has_or_had_liability
- ../slots/has_or_had_revenue
- ../slots/has_or_had_status
- ../slots/has_or_had_type
- ../slots/has_or_had_url
- ../slots/is_or_was_based_on
- ../slots/is_or_was_derived_from
- ../slots/is_or_was_generated_by
- ../slots/is_or_was_published_at
- ../slots/managing_unit
- ../slots/refers_to_custodian
- ../slots/reporting_period_end
- ../slots/reporting_period_start
- ../slots/specifies_or_specified
- ../slots/statement_currency
- ../slots/statement_description
- ../slots/statement_name
- ../slots/statement_type
- ../slots/states_or_stated
- ../slots/temporal_extent
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
dcterms: http://purl.org/dc/terms/
rico: https://www.ica.org/standards/RiC/ontology#
prov: http://www.w3.org/ns/prov#
time: http://www.w3.org/2006/time#
org: http://www.w3.org/ns/org#
schema: http://schema.org/
frapo: http://purl.org/cerif/frapo/
frbr: http://purl.org/vocab/frbr/core#
classes:
FinancialStatement:
is_a: ReconstructedEntity
class_uri: schema:Report
description: "Represents a financial report that DOCUMENTS and TESTIFIES to the financial\nperformance of a heritage custodian against a Budget.\n\n**CRITICAL DISTINCTION - STATEMENT vs. BUDGET**:\n\n| FinancialStatement | Budget |\n|-------------------|--------|\n| **ACTUALS** - what happened | **PLAN** - intended allocations |\n| Backward-looking (historical) | Forward-looking (prospective) |\n| Audited/reviewed by third party | Approved by governance |\n| Final and unalterable | May be revised during period |\n| External reporting document | Internal planning document |\n| Legal/compliance requirement | Management tool |\n\n**FINANCIAL STATEMENT TYPES**:\n\nHeritage custodians (predominantly nonprofits) produce specialized financial statements:\n\n1. **ANNUAL_REPORT**: Comprehensive year-end report combining narrative and financials\n - Required for many nonprofits (ANBI in NL, 990 in US)\n - Includes mission activities, impact metrics, governance\n\n2. **FORM_990** (US nonprofits):\
\ IRS tax filing for 501(c)(3) organizations\n - Publicly available via ProPublica, GuideStar\n - Details revenue, expenses, officer compensation\n\n3. **STATEMENT_OF_FINANCIAL_POSITION** (Balance Sheet):\n - Assets, liabilities, net assets at a point in time\n - Nonprofit version uses \"net assets\" not \"equity\"\n\n4. **STATEMENT_OF_ACTIVITIES** (Income Statement):\n - Revenue and expenses for a period\n - Shows change in net assets\n\n5. **STATEMENT_OF_CASH_FLOWS**:\n - Cash inflows and outflows\n - Operating, investing, financing activities\n\n6. **STATEMENT_OF_FUNCTIONAL_EXPENSES**:\n - Nonprofit-specific: Program vs. administrative vs. fundraising\n - Required for Form 990, optional for GAAP\n\n7. **QUARTERLY_REPORT**: Interim financial statements\n\n8. **AUDIT_REPORT**: Independent auditor's opinion\n\n**THREE-TIER RECORDS LIFECYCLE INTEGRATION**:\n\nFinancialStatement documents move through the records lifecycle:\n\n```\n\u250C\u2500\u2500\u2500\u2500\u2500\
\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianAdministration (ACTIVE) \u2502\n\u2502 - Current year's financial working papers \u2502\n\u2502 - Draft financial statements \u2502\n\u2502 - Audit workpapers (during audit) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\
\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Financial statements finalized,\n audit completed, retention begins)\n \u2193\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianArchive (INACTIVE) \u2502\n\u2502 - Prior year financial statements (7-year retention typical) \u2502\n\u2502 - Audit reports and correspondence \
\ \u2502\n\u2502 - Form 990s (permanent retention) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\
\n\u2502 CustodianCollection (HERITAGE) \u2502\n\u2502 - Historical financial records (if significant) \u2502\n\u2502 - Founding-era financial documents \u2502\n\u2502 - Records of major donors/gifts \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**RELATIONSHIP TO BUDGET**:\n\n- **documents_budget**: Links FinancialStatement \u2192 Budget\n - FinancialStatement TESTIFIES to Budget performance\n - Budget variance analysis compares actuals to plan\n\n- **Budget.documented_by**:\
\ Inverse relationship (Budget \u2192 FinancialStatement)\n\n- **Schema.org**: schema:Report for report documents\n- **RiC-O**: rico:RecordResource for archival records\n- **PROV-O**: prov:Entity with generation provenance\n- **FRAPO**: frapo:Funding for monetary values\n- **FRBR**: frbr:Work for expression/manifestation of report\n"
exact_mappings:
- schema:Report
close_mappings:
- rico:RecordResource
- crm:E31_Document
- frbr:Work
related_mappings:
- frapo:hasFunding
- prov:Entity
slots:
- has_or_had_expense
- states_or_stated
- has_or_had_revenue
- temporal_extent
- is_or_was_derived_from
- is_or_was_generated_by
slot_usage:
statement_name:
range: string
required: true
statement_description:
range: string
required: false
statement_type:
range: FinancialStatementTypeEnum
required: true
reporting_period_start:
range: date
required: true
reporting_period_end:
range: date
required: true
is_or_was_published_at:
required: false
range: PublicationEvent
inlined: true
examples:
- value:
temporal_extent:
begin_of_the_begin: '2024-04-15T00:00:00Z'
end_of_the_begin: '2024-04-15T00:00:00Z'
begin_of_the_end: '2024-04-15T00:00:00Z'
end_of_the_end: '2024-04-15T00:00:00Z'
statement_currency:
range: string
required: true
examples:
- value: EUR
has_or_had_revenue:
range: Revenue
multivalued: true
inlined: true
inlined_as_list: true
required: false
description: 'Structured revenue data with amount, currency, and time period. Replaces simple decimal total_revenue field with rich Revenue class. Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval.'
examples:
- value:
- has_or_had_label: Total Revenue FY2023
has_or_had_quantity:
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "\u20AC"
has_or_had_time_interval:
revenue_category: TOTAL
has_or_had_expense:
range: decimal
required: false
specifies_or_specified:
range: NetAsset
required: false
inlined: true
multivalued: true
has_or_had_asset:
range: decimal
required: false
has_or_had_liability:
range: decimal
required: false
has_or_had_format:
range: string
required: false
has_or_had_type:
range: string
required: false
examples:
- value: IRS Form 990
has_or_had_identifier:
range: uriorcurie
required: false
multivalued: true
inlined: true
examples:
- value:
has_or_had_status:
multivalued: true
range: string
any_of:
- range: AuditStatus
examples:
- value:
has_or_had_type: AuditedStatus
has_or_had_label: Audited
documents_or_documented:
range: Budget
multivalued: true
required: false
examples:
- value: https://nde.nl/ontology/hc/budget/rm/fy2023
managing_unit:
range: OrganizationalStructure
required: false
refers_to_custodian:
range: Custodian
required: true
is_or_was_derived_from:
range: CustodianObservation
multivalued: true
required: false
is_or_was_generated_by:
range: ReconstructionActivity
required: false
temporal_extent:
range: TimeSpan
inlined: true
required: false
comments:
- Represents ACTUAL financial performance (not planned budget)
- Documents/testifies to Budget via rico:documents relationship
- 'Nonprofit-specific: functional expense classification (program/admin/fundraising)'
- "Integrates with three-tier records lifecycle (Administration \u2192 Archive \u2192 Collection)"
- Schema.org schema:Report as primary ontology class
- Key source for institutional sustainability assessment
see_also:
- https://schema.org/Report
examples:
- value:
statement_name: Rijksmuseum Annual Report 2023
statement_description: Comprehensive annual report including financial statements, exhibition highlights, visitor statistics, and conservation activities.
statement_type: ANNUAL_REPORT
reporting_period_start: '2023-01-01'
reporting_period_end: '2023-12-31'
is_or_was_published_at:
temporal_extent:
begin_of_the_begin: '2024-04-15T00:00:00Z'
end_of_the_begin: '2024-04-15T00:00:00Z'
begin_of_the_end: '2024-04-15T00:00:00Z'
end_of_the_end: '2024-04-15T00:00:00Z'
statement_currency: EUR
has_or_had_revenue:
- has_or_had_label: Total Revenue FY2023
has_or_had_quantity:
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "\u20AC"
has_or_had_time_interval:
revenue_category: TOTAL
specifies_or_specified:
- has_or_had_net_asset: 3300000.0
currency: EUR
has_or_had_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023
has_or_had_format: PDF
has_or_had_status:
- has_or_had_type: AuditedStatus
has_or_had_label: Audited
- ACTIVE
documents_or_documented:
- https://nde.nl/ontology/hc/budget/rm/fy2023
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"