glam/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml
kempersc dfa667c90f Fix LinkML schema for valid RDF generation with proper slot_uri
Summary:
- Create 46 missing slot definition files with proper slot_uri values
- Add slot imports to main schema (01_custodian_name_modular.yaml)
- Fix YAML examples sections in 116+ class and slot files
- Fix PersonObservation.yaml examples section (nested objects → string literals)

Technical changes:
- All slots now have explicit slot_uri mapping to base ontologies (RiC-O, Schema.org, SKOS)
- Eliminates malformed URIs like 'custodian/:slot_name' in generated RDF
- gen-owl now produces valid Turtle with 153,166 triples

New slot files (46):
- RiC-O slots: rico_note, rico_organizational_principle, rico_has_or_had_holder, etc.
- Scope slots: scope_includes, scope_excludes, archive_scope
- Organization slots: organization_type, governance_authority, area_served
- Platform slots: platform_type_category, portal_type_category
- Social media slots: social_media_platform_category, post_type_*
- Type hierarchy slots: broader_type, narrower_types, custodian_type_broader
- Wikidata slots: wikidata_equivalent, wikidata_mapping

Generated output:
- schemas/20251121/rdf/01_custodian_name_modular_20260107_134534_clean.owl.ttl (6.9MB)
- Validated with rdflib: 153,166 triples, no malformed URIs
2026-01-07 13:48:03 +01:00

695 lines
24 KiB
YAML

id: https://nde.nl/ontology/hc/class/FinancialStatement
name: financial_statement_class
title: FinancialStatement Class
imports:
- linkml:types
- ./Custodian
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ./OrganizationalStructure
- ./Budget
- ./CustodianArchive
- ./CustodianAdministration
- ./CustodianCollection
- ../enums/FinancialStatementTypeEnum
- ./ReconstructedEntity
- ../slots/publication_date
- ../slots/class_metadata_slots
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
performance of a heritage custodian against a Budget.
**CRITICAL DISTINCTION - STATEMENT vs. BUDGET**:
| FinancialStatement | Budget |
|-------------------|--------|
| **ACTUALS** - what happened | **PLAN** - intended allocations |
| Backward-looking (historical) | Forward-looking (prospective) |
| Audited/reviewed by third party | Approved by governance |
| Final and unalterable | May be revised during period |
| External reporting document | Internal planning document |
| Legal/compliance requirement | Management tool |
**FINANCIAL STATEMENT TYPES**:
Heritage custodians (predominantly nonprofits) produce specialized financial statements:
1. **ANNUAL_REPORT**: Comprehensive year-end report combining narrative and financials
- Required for many nonprofits (ANBI in NL, 990 in US)
- Includes mission activities, impact metrics, governance
2. **FORM_990** (US nonprofits): IRS tax filing for 501(c)(3) organizations
- Publicly available via ProPublica, GuideStar
- Details revenue, expenses, officer compensation
3. **STATEMENT_OF_FINANCIAL_POSITION** (Balance Sheet):
- Assets, liabilities, net assets at a point in time
- Nonprofit version uses "net assets" not "equity"
4. **STATEMENT_OF_ACTIVITIES** (Income Statement):
- Revenue and expenses for a period
- Shows change in net assets
5. **STATEMENT_OF_CASH_FLOWS**:
- Cash inflows and outflows
- Operating, investing, financing activities
6. **STATEMENT_OF_FUNCTIONAL_EXPENSES**:
- Nonprofit-specific: Program vs. administrative vs. fundraising
- Required for Form 990, optional for GAAP
7. **QUARTERLY_REPORT**: Interim financial statements
8. **AUDIT_REPORT**: Independent auditor's opinion
**THREE-TIER RECORDS LIFECYCLE INTEGRATION**:
FinancialStatement documents move through the records lifecycle:
```
┌─────────────────────────────────────────────────────────────────────┐
│ CustodianAdministration (ACTIVE) │
│ - Current year's financial working papers │
│ - Draft financial statements │
│ - Audit workpapers (during audit) │
└─────────────────────────────────────────────────────────────────────┘
(Financial statements finalized,
audit completed, retention begins)
┌─────────────────────────────────────────────────────────────────────┐
│ CustodianArchive (INACTIVE) │
│ - Prior year financial statements (7-year retention typical) │
│ - Audit reports and correspondence │
│ - Form 990s (permanent retention) │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ CustodianCollection (HERITAGE) │
│ - Historical financial records (if significant) │
│ - Founding-era financial documents │
│ - Records of major donors/gifts │
└─────────────────────────────────────────────────────────────────────┘
```
**RELATIONSHIP TO BUDGET**:
- **documents_budget**: Links FinancialStatement → Budget
- FinancialStatement TESTIFIES to Budget performance
- Budget variance analysis compares actuals to plan
- **Budget.documented_by**: Inverse relationship (Budget → FinancialStatement)
- **Schema.org**: schema:Report for report documents
- **RiC-O**: rico:RecordResource for archival records
- **PROV-O**: prov:Entity with generation provenance
- **FRAPO**: frapo:Funding for monetary values
- **FRBR**: frbr:Work for expression/manifestation of report
exact_mappings:
- schema:Report
close_mappings:
- rico:RecordResource
- crm:E31_Document
- frbr:Work
related_mappings:
- schema:MonetaryAmount
- frapo:hasFunding
- prov:Entity
slots:
- administrative_expenses
- audit_date
- audit_opinion
- audit_status
- auditor_name
- change_in_net_assets
- documents_budget
- filing_id
- filing_type
- financial_archival_stage
- financial_document_format
- financial_document_url
- fundraising_expenses
- id
- innovation_expenses
- managing_unit
- program_expenses
- publication_date
- refers_to_custodian
- reporting_period_end
- reporting_period_start
- specificity_annotation
- statement_currency
- statement_description
- statement_name
- statement_type
- template_specificity
- total_assets
- total_expenses
- total_liabilities
- total_net_assets
- total_revenue
- valid_from
- valid_to
- was_derived_from
- was_generated_by
slot_usage:
id:
identifier: true
required: true
description: |
Unique identifier for this financial statement (URI).
Format: https://nde.nl/ontology/hc/financial-statement/{custodian-id}/{type}/{year}
statement_name:
slot_uri: dcterms:title
range: string
required: true
description: |
Name/title for this financial statement.
**Examples**:
- "Rijksmuseum Annual Report 2023"
- "Wallace Collection Form 990 FY2023"
- "Noord-Hollands Archief Audited Financial Statements 2023"
statement_description:
slot_uri: dcterms:description
range: string
required: false
description: |
Narrative description of statement scope and key highlights.
statement_type:
slot_uri: dcterms:type
range: FinancialStatementTypeEnum
required: true
description: |
Type of financial statement.
**See**: FinancialStatementTypeEnum for valid values.
reporting_period_start:
slot_uri: time:hasBeginning
range: date
required: true
description: |
Start date of reporting period covered.
reporting_period_end:
slot_uri: time:hasEnd
range: date
required: true
description: |
End date of reporting period covered.
publication_date:
slot_uri: dcterms:issued
range: date
required: false
description: |
Date when statement was published/issued.
**Dublin Core**: dcterms:issued for publication date.
statement_currency:
slot_uri: schema:currency
range: string
required: true
description: |
Currency for all monetary amounts (ISO 4217).
examples:
- value: EUR
- value: USD
- value: GBP
total_revenue:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Total revenue/income for reporting period.
Includes:
- Contributions and grants
- Program service revenue
- Investment income
- Other income
total_expenses:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Total expenses for reporting period.
change_in_net_assets:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Change in net assets (surplus/deficit).
= total_revenue - total_expenses
**Nonprofit terminology**: "Change in net assets"
(not "profit" or "net income")
total_assets:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Total assets at end of reporting period.
**Statement of Financial Position** (Balance Sheet):
Assets = Liabilities + Net Assets
total_liabilities:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Total liabilities at end of reporting period.
total_net_assets:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Total net assets at end of reporting period.
**Nonprofit terminology**: "Net assets"
(not "shareholders' equity")
Components:
- Net assets without donor restrictions
- Net assets with donor restrictions
program_expenses:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Program/mission expenses (nonprofit-specific).
**Statement of Functional Expenses**:
Expenses directly supporting mission activities.
For heritage custodians:
- Collection care
- Exhibitions
- Public programs
- Research
- Education
administrative_expenses:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Administrative/management expenses (nonprofit-specific).
**Statement of Functional Expenses**:
- Executive management
- Finance/accounting
- HR
- Facilities (overhead)
fundraising_expenses:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Fundraising expenses (nonprofit-specific).
**Statement of Functional Expenses**:
- Development staff
- Events
- Direct mail
- Grant writing
innovation_expenses:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: |
Innovation expenses (actual spending on innovation projects).
**Heritage-specific**: Actual expenditures on innovation projects
that transform how the institution operates, preserves, or provides
access to heritage.
Includes:
- Digital transformation initiatives
- R&D and experimental programs
- New technology adoption (AI, machine learning, etc.)
- Process automation and improvement
- Visitor experience innovation
- Collection management system upgrades
- Data infrastructure modernization
**Comparison with Budget**:
Compare FinancialStatement.innovation_expenses to Budget.innovation_budget
to assess variance between planned and actual innovation spending.
**Examples**:
- Implementation of AI-powered cataloging
- Development of virtual reality experiences
- Deployment of automated conservation monitoring
- Building linked open data infrastructure
audit_status:
slot_uri: schema:eventStatus
range: string
required: false
description: |
Audit status of this statement.
**Values**:
- UNAUDITED: Draft or management-prepared
- REVIEWED: CPA review (limited assurance)
- AUDITED: Full audit (reasonable assurance)
- QUALIFIED: Audited with qualification
examples:
- value: AUDITED
description: Full independent audit completed
auditor_name:
slot_uri: prov:wasAttributedTo
range: string
required: false
description: |
Name of auditing firm or CPA.
**Examples**:
- "KPMG Accountants N.V."
- "Deloitte & Touche LLP"
- "Local CPA Firm"
audit_opinion:
slot_uri: dcterms:description
range: string
required: false
description: |
Type of audit opinion issued.
**Values**:
- UNQUALIFIED: Clean opinion (best)
- QUALIFIED: Exception noted
- ADVERSE: Material misstatement
- DISCLAIMER: Unable to form opinion
examples:
- value: UNQUALIFIED
description: Clean audit opinion
audit_date:
slot_uri: dcterms:date
range: date
required: false
description: |
Date of auditor's report.
financial_document_url:
slot_uri: schema:url
range: uri
required: false
description: |
URL where statement document can be accessed.
**Sources**:
- Institution website (annual reports)
- ProPublica Nonprofit Explorer (Form 990)
- GuideStar/Candid
- Government transparency portals
examples:
- value: https://www.rijksmuseum.nl/en/about-us/annual-report
description: Museum annual report page
financial_document_format:
slot_uri: dcterms:format
range: string
required: false
description: |
File format of document.
**Values**: PDF, HTML, XBRL, etc.
filing_type:
slot_uri: dcterms:type
range: string
required: false
description: |
Type of regulatory filing (if applicable).
**Examples**:
- "IRS Form 990" (US nonprofits)
- "ANBI Publicatieplicht" (Dutch charities)
- "Charity Commission Annual Return" (UK)
- "ATO Annual Information Statement" (Australia)
filing_id:
slot_uri: dcterms:identifier
range: string
required: false
description: |
Filing identifier or reference number.
**Examples**:
- EIN (US): "13-1624102"
- RSIN (NL): "123456789"
- Charity number (UK): "123456"
financial_archival_stage:
slot_uri: rico:hasRecordState
range: string
required: false
description: |
Current position in three-tier records lifecycle.
**RiC-O**: rico:hasRecordState for record lifecycle.
**Values**:
- ACTIVE: In CustodianAdministration (current year)
- INACTIVE: In CustodianArchive (prior years, retention)
- HERITAGE: In CustodianCollection (historical significance)
**Links to**:
- If ACTIVE → CustodianAdministration instance
- If INACTIVE → CustodianArchive instance
- If HERITAGE → CustodianCollection instance
examples:
- value: ACTIVE
description: Current year statement in active use
- value: INACTIVE
description: Prior year in retention period
documents_budget:
slot_uri: rico:documents
range: Budget
multivalued: true
required: false
description: |
Budget(s) that this statement documents/testifies to.
**RiC-O**: rico:documents links RecordResource to Activity/Thing documented.
**Relationship Pattern**:
- FinancialStatement --rico:documents--> Budget
- Budget --rico:isDocumentedBy--> FinancialStatement (inverse)
FinancialStatement TESTIFIES to Budget performance by
providing actual figures that can be compared to budget.
**Budget Variance Analysis**:
Compare Budget.operating_budget to FinancialStatement.total_expenses
to calculate variance and assess budget accuracy.
examples:
- value: https://nde.nl/ontology/hc/budget/rm/fy2023
description: Statement documents FY2023 budget
managing_unit:
slot_uri: org:unitOf
range: OrganizationalStructure
required: false
description: |
Organizational unit responsible for preparing this statement.
Typically: Finance department, Controller's office
refers_to_custodian:
slot_uri: crm:P46i_forms_part_of
range: Custodian
required: true
description: |
Links this statement to the Custodian hub.
**CIDOC-CRM**: P46i_forms_part_of for part-whole.
was_derived_from:
slot_uri: prov:wasDerivedFrom
range: CustodianObservation
multivalued: true
required: false
description: |
Observation(s) from which this statement was derived.
**PROV-O**: prov:wasDerivedFrom for provenance.
was_generated_by:
slot_uri: prov:wasGeneratedBy
range: ReconstructionActivity
required: false
description: |
Reconstruction activity that generated this record.
**PROV-O**: prov:wasGeneratedBy for generation.
valid_from:
slot_uri: time:hasBeginning
range: date
required: false
description: |
Start of validity (typically = reporting_period_start).
valid_to:
slot_uri: time:hasEnd
range: date
required: false
description: |
End of validity (typically = reporting_period_end).
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
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 → Archive → Collection)
- Schema.org schema:Report as primary ontology class
- Key source for institutional sustainability assessment
see_also:
- https://schema.org/Report
- https://nde.nl/ontology/hc/class/Budget
- https://nde.nl/ontology/hc/class/CustodianAdministration
- https://nde.nl/ontology/hc/class/CustodianArchive
examples:
- value:
id: https://nde.nl/ontology/hc/financial-statement/rm/annual-report/2023
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'
publication_date: '2024-04-15'
statement_currency: EUR
total_revenue: 78500000.0
total_expenses: 75200000.0
change_in_net_assets: 3300000.0
total_assets: 125000000.0
total_liabilities: 15000000.0
total_net_assets: 110000000.0
program_expenses: 62000000.0
administrative_expenses: 10000000.0
fundraising_expenses: 3200000.0
audit_status: AUDITED
auditor_name: KPMG Accountants N.V.
audit_opinion: UNQUALIFIED
audit_date: '2024-03-20'
financial_document_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023
financial_document_format: PDF
financial_archival_stage: ACTIVE
documents_budget:
- https://nde.nl/ontology/hc/budget/rm/fy2023
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Major museum annual report with full audit
- value:
id: https://nde.nl/ontology/hc/financial-statement/met/form-990/2022
statement_name: Metropolitan Museum of Art Form 990 FY2022
statement_description: IRS Form 990 filing for fiscal year 2022.
statement_type: FORM_990
reporting_period_start: '2022-07-01'
reporting_period_end: '2023-06-30'
publication_date: '2024-02-15'
statement_currency: USD
total_revenue: 439000000.0
total_expenses: 412000000.0
change_in_net_assets: 27000000.0
total_assets: 5200000000.0
total_liabilities: 520000000.0
total_net_assets: 4680000000.0
audit_status: AUDITED
financial_document_url: https://projects.propublica.org/nonprofits/organizations/131624102
filing_type: IRS Form 990
filing_id: 13-1624102
financial_archival_stage: INACTIVE
documents_budget:
- https://nde.nl/ontology/hc/budget/met/fy2022
refers_to_custodian: https://nde.nl/ontology/hc/us-ny-nyc-m-met
description: US nonprofit Form 990 filing
slots:
statement_name:
description: Name/title for financial statement
range: string
statement_description:
description: Narrative description of statement
range: string
statement_type:
description: Type of financial statement
range: FinancialStatementTypeEnum
reporting_period_start:
description: Start date of reporting period
range: date
reporting_period_end:
description: End date of reporting period
range: date
statement_currency:
description: Currency for monetary amounts
range: string
total_revenue:
description: Total revenue for period
range: decimal
total_expenses:
description: Total expenses for period
range: decimal
change_in_net_assets:
description: Change in net assets (surplus/deficit)
range: decimal
total_assets:
description: Total assets at period end
range: decimal
total_liabilities:
description: Total liabilities at period end
range: decimal
total_net_assets:
description: Total net assets at period end
range: decimal
program_expenses:
description: Program/mission expenses
range: decimal
administrative_expenses:
description: Administrative expenses
range: decimal
fundraising_expenses:
description: Fundraising expenses
range: decimal
innovation_expenses:
description: Innovation expenses (actual spending)
range: decimal
audit_status:
description: Audit status of statement
range: string
auditor_name:
description: Name of auditing firm
range: string
audit_opinion:
description: Type of audit opinion
range: string
audit_date:
description: Date of auditor's report
range: date
financial_document_url:
description: URL to access document
range: uri
financial_document_format:
description: File format of document
range: string
filing_type:
description: Type of regulatory filing
range: string
filing_id:
description: Filing identifier
range: string
financial_archival_stage:
description: Position in records lifecycle
range: string
documents_budget:
description: Budget(s) this statement documents
range: Budget