glam/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml
kempersc 174a420c08
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m57s
refactor(schema): centralize 1515 inline slot definitions per Rule 48
- Remove inline slot definitions from 144 class files
- Create 7 new centralized slot files in modules/slots/:
  - custodian_type_broader.yaml
  - custodian_type_narrower.yaml
  - custodian_type_related.yaml
  - definition.yaml
  - finding_aid_access_restriction.yaml
  - finding_aid_description.yaml
  - finding_aid_temporal_coverage.yaml
- Add centralize_inline_slots.py automation script
- Update manifest with new timestamp

Rule 48: Class files must NOT define inline slots - all slots
must be imported from modules/slots/ directory.

Note: Pre-existing IdentifierFormat duplicate class definition
(in Standard.yaml and IdentifierFormat.yaml) not addressed in
this commit - requires separate schema refactor.
2026-01-11 22:02:14 +01:00

741 lines
23 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/administrative_expenses
- ../slots/has_audit_date
- ../slots/has_audit_opinion
- ../slots/has_or_had_audit_status
- ../slots/has_auditor_name
- ../slots/change_in_net_asset
- ../slots/documents_budget
- ../slots/filing_id
- ../slots/filing_type
- ../slots/financial_archival_stage
- ../slots/financial_document_format
- ../slots/financial_document_url
- ../slots/fundraising_expense
- ../slots/id
- ../slots/innovation_expense
- ../slots/managing_unit
- ../slots/program_expense
- ../slots/refers_to_custodian
- ../slots/reporting_period_end
- ../slots/reporting_period_start
- ../slots/specificity_annotation
- ../slots/statement_currency
- ../slots/statement_description
- ../slots/statement_name
- ../slots/statement_type
- ../slots/template_specificity
- ../slots/total_asset
- ../slots/total_expense
- ../slots/total_liability
- ../slots/total_net_asset
- ../slots/total_revenue
- ../slots/valid_from
- ../slots/valid_to
- ../slots/was_derived_from
- ../slots/was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_or_had_administrative_expense
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\n\
4. **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┌─────────────────────────────────────────────────────────────────────┐\n│\
\ CustodianAdministration (ACTIVE) │\n│ - Current year's financial working papers\
\ │\n│ - Draft financial statements │\n│ - Audit workpapers\
\ (during audit) │\n└─────────────────────────────────────────────────────────────────────┘\n\
\ ↓\n (Financial statements finalized,\n audit\
\ completed, retention begins)\n ↓\n┌─────────────────────────────────────────────────────────────────────┐\n\
│ CustodianArchive (INACTIVE) │\n│ - Prior year financial statements (7-year\
\ retention typical) │\n│ - Audit reports and correspondence │\n│ - Form 990s\
\ (permanent retention) │\n└─────────────────────────────────────────────────────────────────────┘\n\
\ ↓\n┌─────────────────────────────────────────────────────────────────────┐\n│ CustodianCollection\
\ (HERITAGE) │\n│ - Historical financial records (if significant) \
\ │\n│ - Founding-era financial documents │\n│ - Records of major donors/gifts\
\ │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\
\n**RELATIONSHIP TO BUDGET**:\n\n- **documents_budget**: Links FinancialStatement → Budget\n - FinancialStatement TESTIFIES\
\ to Budget performance\n - Budget variance analysis compares actuals to plan\n\n- **Budget.documented_by**: Inverse\
\ relationship (Budget → 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:
- schema:MonetaryAmount
- frapo:hasFunding
- prov:Entity
slots:
- administrative_expenses
- audit_date
- audit_opinion
- audit_status
- auditor_name
- change_in_net_asset
- documents_budget
- filing_id
- filing_type
- financial_archival_stage
- financial_document_format
- financial_document_url
- fundraising_expense
- id
- innovation_expense
- managing_unit
- program_expense
- publication_date
- refers_to_custodian
- reporting_period_end
- reporting_period_start
- specificity_annotation
- statement_currency
- statement_description
- statement_name
- statement_type
- template_specificity
- total_asset
- total_expense
- total_liability
- total_net_asset
- 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_expense:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: 'Total expenses for reporting period.
'
change_in_net_asset:
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_asset:
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_liability:
slot_uri: frapo:hasFunding
range: decimal
required: false
description: 'Total liabilities at end of reporting period.
'
total_net_asset:
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_expense:
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
'
has_or_had_administrative_expense:
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_expense:
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_expense:
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
'
has_or_had_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
has_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"
'
has_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
has_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