Skip to content

Report Outputs & Generation

Status: Final Version: 1.0


Purpose

Define report types, export formats, generation pipeline, versioning, and audit trail for ESG reporting outputs.


Report Types (v1)

Report Type Audience Format Content Frequency
GRI Sustainability Report External stakeholders PDF, DOCX Full GRI disclosures (E, S, G) Annual
Period Summary Internal management PDF, XLSX Metrics by site, period totals Quarterly/Annual
Site-Level Report Site managers PDF, XLSX Single site metrics for period On-demand
Disclosure Export Analysts JSON, CSV, XLSX Raw metric data On-demand
Audit Package External auditors PDF + ZIP All approved data + evidence Annual
Human Capital Report HR managers, External stakeholders CSV, XLSX Employee demographics (E.1), Employment type & turnover (E.2), Age distribution (E.3) Quarterly/Monthly
OHS Report HSE managers, External stakeholders CSV, XLSX Occupational Health and Safety incident statistics (F.1), LTI days and LTIFR (F.2) Quarterly
Environment Report Environmental managers, External stakeholders CSV, XLSX Production (G.1), Materials consumption (G.2), Energy usage (G.3), Water (G.4), Air emissions (G.5), Waste (G.6-G.7), TSF management (G.8), Rehabilitation & incidents (G.9-G.10) Monthly/Quarterly
Community Investment Report CSR managers, External stakeholders CSV, XLSX Quarterly CSR/CSIR Activities (H.1) Quarterly

Export Formats

PDF

  • Use Case: External reports, board presentations
  • Library: OpenPDF or iText (JVM libraries)
  • Template: Thymeleaf templates with CSS styling

XLSX

  • Use Case: Data analysis, pivot tables
  • Library: Apache POI (poi-ooxml)
  • Structure: One sheet per metric category (Environmental, Social, Governance)

JSON/CSV

  • Use Case: API integrations, data exports
  • Structure: Flat or nested JSON, CSV with headers

Report Versioning

Version Type Description Use Case
Draft Work-in-progress, data not locked Internal review
Final Locked period, ready for publication Official disclosure
Restated Corrected after initial publication Error correction, methodology change

Version Schema

@Entity
@Table(name = "reports")
data class Report(
    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    val id: UUID,

    @Column(name = "tenant_id", nullable = false)
    val tenantId: UUID,

    @Column(name = "reporting_period_id", nullable = false)
    val reportingPeriodId: UUID,

    @Column(name = "report_type", nullable = false)
    val reportType: String,

    @Enumerated(EnumType.STRING)
    @Column(name = "version_type", nullable = false)
    val versionType: VersionType, // ENUM: DRAFT, FINAL, RESTATED

    @Column(name = "version_number", nullable = false)
    val versionNumber: Int = 1, // Incremented on restatements

    @Column(name = "generated_at")
    val generatedAt: Instant? = null,

    @Column(name = "generated_by_user_id")
    val generatedByUserId: UUID? = null,

    @Column(name = "file_path")
    val filePath: String? = null,

    @Column(name = "file_format")
    val fileFormat: String? = null,

    @Column(name = "content_hash") // SHA-256 of PDF/file
    val contentHash: String? = null,

    @Type(JsonBinaryType::class)
    @Column(name = "metadata", columnDefinition = "jsonb") // JSONB: report params, filters
    val metadata: Map<String, Any>? = null
)

enum class VersionType {
    DRAFT, FINAL, RESTATED
}

Generation Pipeline

Asynchronous Job

@ApplicationScoped
class ReportGenerationService(
    private val reportingPeriodRepository: ReportingPeriodRepository,
    private val reportRepository: ReportRepository,
    private val userRepository: UserRepository,
    private val notificationService: NotificationService,
    private val pdfGenerationService: PdfGenerationService,
    private val storageService: StorageService
) {

    @Transactional
    @Retry(maxRetries = 3, delay = 5000, delayUnit = ChronoUnit.MILLIS)
    fun generateReport(
        tenantId: UUID,
        reportingPeriodId: UUID,
        reportType: String,
        userId: UUID
    ): Uni<Report> {
        return Uni.createFrom().item {
            val period = reportingPeriodRepository.findByIdOptional(reportingPeriodId)
                .orElseThrow { EntityNotFoundException("Reporting period not found") }

            // Create report record
            var report = Report(
                id = UUID.randomUUID(),
                tenantId = tenantId,
                reportingPeriodId = period.id,
                reportType = reportType,
                versionType = if (period.state == PeriodState.LOCKED) VersionType.FINAL else VersionType.DRAFT,
                generatedByUserId = userId
            )
            reportRepository.persist(report)

            // Generate PDF
            val pdfBytes = generatePDF(period)

            // Store to S3 or file system
            val path = "reports/$tenantId/${report.id}.pdf"
            storageService.store(path, pdfBytes)

            // Calculate content hash
            val contentHash = MessageDigest.getInstance("SHA-256")
                .digest(pdfBytes)
                .joinToString("") { "%02x".format(it) }

            // Update report with file info
            report = report.copy(
                filePath = path,
                fileFormat = "pdf",
                generatedAt = Instant.now(),
                contentHash = contentHash
            )
            reportRepository.save(report)

            // Notify user
            val user = userRepository.findById(userId).orElseThrow()
            notificationService.sendReportGeneratedNotification(user, report)

            report
        }, Executors.newSingleThreadExecutor())
    }

    private fun generatePDF(period: ReportingPeriod): ByteArray {
        val data = mapOf(
            "period" to period,
            "metrics" to getApprovedMetrics(period),
            "restatements" to period.restatements
        )

        return pdfGenerationService.generateFromTemplate(
            templateName = "reports/gri-sustainability",
            data = data,
            paperSize = "A4",
            marginTop = 20,
            marginBottom = 20
        )
    }

    private fun getApprovedMetrics(period: ReportingPeriod): List<Metric> {
        // Query approved metrics for the period
        return emptyList() // Implementation details
    }
}

// Configuration for async executor
@ApplicationScoped
class AsyncConfiguration {
    @Produces
    @Named("reportingTaskExecutor")
    @ApplicationScoped
    fun reportingTaskExecutor(): ManagedExecutor {
        return ManagedExecutor.builder()
            .maxAsync(5)
            .maxQueued(100)
            setAwaitTerminationSeconds(600) // 10 minutes
            initialize()
        }
    }
}

Thymeleaf Template Example (GRI Report)

<!-- src/main/resources/templates/reports/gri-sustainability.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${period.organisation.name} + ' - GRI Sustainability Report ' + ${period.fiscalYear}">GRI Sustainability Report</title>
    <style>
        body { font-family: Arial, sans-serif; font-size: 10pt; }
        h1 { color: #2c3e50; font-size: 18pt; }
        table { width: 100%; border-collapse: collapse; margin: 20px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #3498db; color: white; }
    </style>
</head>
<body>
    <h1 th:text="'Sustainability Report ' + ${period.fiscalYear}">Sustainability Report</h1>
    <p><strong>Organization:</strong> <span th:text="${period.organisation.name}">Organization Name</span></p>
    <p>
        <strong>Reporting Period:</strong>
        <span th:text="${#temporals.format(period.startDate, 'yyyy-MM-dd')}">Start Date</span> to
        <span th:text="${#temporals.format(period.endDate, 'yyyy-MM-dd')}">End Date</span>
    </p>

    <h2>GRI 302: Energy</h2>
    <table>
        <thead>
            <tr>
                <th>Metric</th>
                <th>Value</th>
                <th>Unit</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="metric : ${metrics}" th:if="${metric.disclosure.code == '302-1'}">
                <td th:text="${metric.name}">Metric Name</td>
                <td th:text="${#numbers.formatDecimal(metric.value, 1, 2)}">Value</td>
                <td th:text="${metric.unit}">Unit</td>
            </tr>
        </tbody>
    </table>

    <div th:if="${restatements != null and !restatements.isEmpty()}">
        <h2>GRI 2-4: Restatements of Information</h2>
        <table>
            <thead>
                <tr>
                    <th>Metric</th>
                    <th>Original</th>
                    <th>Restated</th>
                    <th>Reason</th>
                </tr>
            </thead>
            <tbody>
                <tr th:each="r : ${restatements}">
                    <td th:text="${r.metricName}">Metric Name</td>
                    <td th:text="${r.beforeValue}">Original Value</td>
                    <td th:text="${r.afterValue}">Restated Value</td>
                    <td th:text="${r.description}">Reason</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

Audit Trail

auditLogRepository.save(
    AuditLog(
        id = UUID.randomUUID(),
        action = "report.generated",
        entityType = "Report",
        entityId = report.id,
        actorUserId = userId,
        metadata = mapOf(
            "report_type" to reportType,
            "period_id" to period.id.toString(),
            "file_format" to "pdf",
            "file_size_bytes" to storageService.getFileSize(report.filePath)
        ),
        timestamp = Instant.now()
    )
)

Acceptance Criteria

  • GRI Sustainability Report includes all approved metrics
  • Report generation runs asynchronously with @Async (timeout 10 min)
  • PDF reports generated with Thymeleaf templates
  • XLSX exports include separate sheets per category
  • Report versioning tracks draft/final/restated
  • Content hash generated for integrity verification (SHA-256)
  • All report generation logged to audit trail

Stakeholder Engagement Reporting (GRI 2-29, 2-30, Grievance Mechanism)

Overview

This section defines the output format for stakeholder engagement reports, including GRI 2-29 (Approach to Stakeholder Engagement), GRI 2-30 (Collective Bargaining), and Grievance Mechanism logs. These reports support compliance with GRI organizational governance disclosures.

Report Sections

B.1 GRI 2-30: Collective Bargaining Coverage

Output Format: Quarterly percentage table

Quarter Percentage Covered
Q1 66%
Q2 66%
Q3 66%
Q4 -

Description: Percentage of total full-time permanent employees covered by collective bargaining, including membership in National Employment Council (NEC) or Trade Unions.

Data Requirements: - Collection frequency: Quarterly - Data type: Percentage (0-100%) - Dimensionality: Organisation-level - Calculation: (Employees covered by collective bargaining / Total full-time permanent employees) × 100

CSV/XLSX Export Columns:

Quarter, Percentage_Covered, Reporting_Period, Organisation_ID, Collection_Date


B.2 GRI 2-29: Stakeholder Engagement

Stakeholder Categories

The platform maintains a master list of stakeholder categories:

  1. Employees
  2. Government
  3. Regulatory bodies
  4. Shareholders
  5. Community (villagers, schools, farmers, ASMs)
  6. Vendors (Contractors and Suppliers)
  7. Press/Media
  8. Non-governmental organisations
  9. Financial institutions

Engagement Platforms

Supported engagement mechanisms:

  1. In-person meeting
  2. Virtual meeting
  3. Phone call
  4. WhatsApp
  5. Email
  6. Letter
  7. Conference
  8. Other

Quarterly Stakeholder Engagements Log

Column Description Data Type Required Example
NO. Sequential engagement number Integer Yes 1
Initial Date of Engagement Start date of engagement Date (DD-MMM-YY) Yes 24-Jan-25
Stakeholder Category Categories from master list (can be multiple) String (comma-separated IDs) Yes "2, 3, 5"
Stakeholder Name Name of stakeholder group or organisation String Yes "Guruve Local Gvt, OPC, Ministry of Education"
Purpose of Engagement Description of engagement objective Text Yes "Muroiwa Primary School Additional Block Construction"
Outcome of Engagement Results, decisions, or actions from engagement Text Yes "The block is currently at ring beam level..."
Person Responsible for Closing Out Owner(s) responsible for follow-up String Yes "T.Tinago/L.Khumalo/D. Tavenhave"
Status of Engagement Current status Enum: Open, WIP, Closed Yes WIP
Status Date Target or actual completion date Date (DD-MMM-YY) Yes 30-Apr-25

CSV/XLSX Export Format:

NO.,INITIAL_DATE_OF_ENGAGEMENT,STAKEHOLDER_CATEGORY,STAKEHOLDER_NAME,PURPOSE_OF_ENGAGEMENT,OUTCOME_OF_ENGAGEMENT,PERSON_RESPONSIBLE_FOR_CLOSING_OUT,STATUS_OF_ENGAGEMENT,STATUS_DATE
1,24-Jan-25,"2,3,5","Guruve Local Gvt, OPC, Ministry of Education","Muroiwa Primary School Additional Block Construction","The block is currently at ring beam level...","T.Tinago/L.Khumalo/D. Tavenhave",WIP,30-Apr-25

Filters & Ordering: - Filters: Reporting period (fiscal year, quarter), site/business unit, organisation, status (Open/WIP/Closed), stakeholder category - Ordering: By initial date of engagement (ascending), then by engagement number - Grouping: Optional grouping by quarter, stakeholder category, or status


B.3 Grievance Mechanism Log

Output Format: Table of grievances reported during the period

Column Description Data Type Required Example
NO. Sequential grievance number Integer Yes 1
Date Grievance Reported Date grievance was received Date (DD-MMM-YY) Yes 13-Mar-25
Internal/External Grievance Source of grievance Enum: Internal, External Yes External
Department/Stakeholder Group Grievance Raised By General group (no individual names) String Yes Community
General Nature of Grievance Description of the issue Text Yes "The host communities raised a plea for the mine to construct a Clinic..."
Intervention Measure Action taken or planned Text Yes "Construction of a Clinic at Bome is underway..."
Resolved/Outstanding Resolution status Enum: RESOLVED, OUTSTANDING Yes RESOLVED

CSV/XLSX Export Format:

NO.,DATE_GRIEVANCE_REPORTED,INTERNAL_EXTERNAL_GRIEVANCE,DEPARTMENT_STAKEHOLDER_GROUP,GENERAL_NATURE_OF_GRIEVANCE,INTERVENTION_MEASURE,RESOLVED_OUTSTANDING
1,13-Mar-25,External,Community,"The host communities raised a plea for the mine to construct a Clinic...","Construction of a Clinic at Bome is underway...",RESOLVED

Filters & Ordering: - Filters: Reporting period (fiscal year, quarter), internal/external, stakeholder group, resolution status, organisation, site/business unit - Ordering: By date grievance reported (ascending), then by grievance number - Grouping: Optional grouping by quarter, internal/external classification, or resolution status


Export Templates

CSV Export Structure

File Naming Convention: {Organisation}_{ReportType}_{FiscalYear}_{ExportDate}.csv

Example: Eureka_Gold_Stakeholder_Engagement_FY2025_2026-01-17.csv

Sheet Structure for XLSX: - Sheet 1: GRI 2-30 Collective Bargaining (quarterly percentages) - Sheet 2: Stakeholder Categories & Platforms (reference lists) - Sheet 3: GRI 2-29 Stakeholder Engagements (full log) - Sheet 4: Grievance Mechanism Log

Column Mapping

Report Field Database Column Transform
NO. engagement.sequence_number or grievance.sequence_number Direct
Initial Date of Engagement engagement.initial_date Format: DD-MMM-YY
Stakeholder Category engagement.stakeholder_categories (join table) Comma-separated category IDs or names
Stakeholder Name engagement.stakeholder_name Direct
Purpose of Engagement engagement.purpose Direct
Outcome of Engagement engagement.outcome Direct
Person Responsible engagement.owner Direct (support multiple owners with "/" delimiter)
Status of Engagement engagement.status Enum: Open, WIP, Closed
Status Date engagement.status_date Format: DD-MMM-YY
Date Grievance Reported grievance.date_reported Format: DD-MMM-YY
Internal/External grievance.source_type Enum: Internal, External
Department/Stakeholder Group grievance.stakeholder_group Direct (no individual names)
General Nature of Grievance grievance.nature Direct
Intervention Measure grievance.intervention Direct
Resolved/Outstanding grievance.resolution_status Enum: RESOLVED, OUTSTANDING

Validation Rules

Stakeholder Engagements: - Initial date must be within the reporting period - At least one stakeholder category must be selected - Status transitions: Open → WIP → Closed (no reverse transitions) - Status date must be >= initial date - If status is Closed, outcome field is required

Grievances: - Date reported must be within the reporting period - Internal/External classification is mandatory - Stakeholder group should be a general category, not individual names (PII protection) - Resolution status required (RESOLVED or OUTSTANDING) - If RESOLVED, intervention measure is required

Collective Bargaining: - Percentage must be between 0 and 100 - Quarterly data required (Q1-Q4) - Missing quarters acceptable if not yet reached in fiscal year


Access Control & PII Handling

Role-Based Access: - Data Collector: Can view and edit engagements/grievances for their assigned sites - Site Manager: Can view and approve engagements/grievances for their site - Org Admin: Can view all engagements/grievances across organisation - External Auditor: Read-only access to approved/locked period data

PII Protection: - Stakeholder names should reference groups/organisations, not individuals where possible - Individual names in grievances should be anonymised in exports (use department/group labels) - Person responsible can use initials or role titles (e.g., "CSIR Manager", "T.Tinago") - Evidence attachments containing PII must be restricted to internal use only


Human Capital Reporting (GRI 405-1, GRI 401, Employee Age)

Overview

This section defines the output format for human capital reports, including GRI 405-1 (Diversity of governance bodies and employees), GRI 401 (Employment type and turnover), and employee age demographics. These reports support compliance with GRI social disclosures related to employment and labor practices.

Report Sections

E.1 GRI 405-1: Employee Demographics

Output Format: Quarterly headcount and percentage table by employment level

Data Structure:

Employment Level Quarter Male Female From Local Community % Male % Female % From Local Community
Executive Q1 2025 7 0 0 100% 0% 0%
Executive Q2 2025 8 0 0 100% 0% 0%
Salaried Staff (Non-NEC) Q1 2025 145 29 22 83% 17% 13%
Salaried Staff (Non-NEC) Q2 2025 152 33 24 82% 18% 0%
Waged Staff (NEC) Q1 2025 380 53 351 88% 12% 81%
Waged Staff (NEC) Q2 2025 386 58 355 87% 13% 80%

Description: Quarterly snapshot of employee headcount by employment level, disaggregated by gender and local community status. Includes derived percentage metrics for diversity analysis.

Data Requirements: - Collection frequency: Quarterly (end of quarter snapshot) - Employment levels: Executive, Salaried Staff (Non-NEC), Waged Staff (NEC) - Dimensions: Gender (Male, Female), Local Community flag (Yes/No) - Calculation: Percentages derived from counts - % Male = (Male / Total) × 100 - % Female = (Female / Total) × 100 - % From Local Community = (From Local Community / Total) × 100 - Dimensionality: Organisation-level and Site-level - Total = Male + Female

CSV/XLSX Export Columns:

Employment_Level, Quarter, Male, Female, From_Local_Community, Percent_Male, Percent_Female, Percent_From_Local_Community, Total_Employees, Reporting_Period, Organisation_ID, Site_ID, Collection_Date


E.2 GRI 401: Employment Type and Turnover

Output Format: Monthly tables for employment type, recruitment, departures, and casual workers

E.2.1 Permanent vs. Fixed Term Employment

Data Structure:

Employment Type Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Average
Permanent 417 417 418 429 427 426 429 429 433 - - - 319
Fixed Term 204 184 196 199 191 205 174 169 148 - - - 139

Description: Monthly headcount for permanent and fixed-term employees with annual average.

Data Requirements: - Collection frequency: Monthly - Employment types: Permanent, Fixed Term - Calculation: Average = (Sum of monthly values) / (Number of months with data) - Monthly snapshot taken at end of month

E.2.2 New Recruitments (Permanent Staff by Gender)

Data Structure:

Gender Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Average
Male 0 0 4 12 1 2 1 10 17 - - - 4
Female 0 0 0 3 3 1 4 4 1 - - - 1

Description: Monthly count of new permanent staff recruited, disaggregated by gender.

Data Requirements: - Collection frequency: Monthly - Dimensions: Gender (Male, Female) - Scope: Permanent staff only (excludes fixed-term and casual) - Calculation: Average = (Sum of monthly values) / (Number of months with data)

E.2.3 Departures (Total Permanent Staff)

Data Structure:

Metric Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total
No. of Departures 2 1 2 1 3 3 33 19 35 - - - 99

Description: Monthly count of departures for permanent staff with annual total.

Data Requirements: - Collection frequency: Monthly - Scope: Permanent staff only - Calculation: Total = Sum of monthly departures for the fiscal year

E.2.4 Casual Workers

Data Structure:

Metric Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total
No. of Casual Workers 0 0 0 0 0 0 0 0 0 - - - 0

Description: Monthly headcount of casual workers (non-permanent, non-fixed-term) employed.

Data Requirements: - Collection frequency: Monthly - Definition: Workers employed on a casual/daily basis (not permanent or fixed-term contracts) - Calculation: Total = Sum of monthly values (cumulative unique workers for the year)

CSV/XLSX Export Columns (E.2 Combined):

Metric_Type, Employment_Type_Or_Gender, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Aggregate_Value, Aggregate_Type, Reporting_Period, Organisation_ID, Site_ID

Where: - Metric_Type: "Employment_Type", "Recruitment", "Departures", "Casual_Workers" - Aggregate_Value: Average for employment type/recruitment, Total for departures/casual workers - Aggregate_Type: "AVERAGE" or "TOTAL"


E.3 Employee Age Demographics

Output Format: Monthly age group distribution table

Data Structure:

Age Group Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total
Under 30 189 182 188 197 190 199 200 197 195 - - - 1737
Aged 30-50 358 346 352 356 355 357 330 329 314 - - - 3097
Over 50 74 73 74 75 75 75 73 72 72 - - - 663
Total 621 601 614 628 620 631 603 598 581 - - - 5497

Description: Monthly headcount by age group with annual totals. The total row shows the sum of all age groups for validation.

Data Requirements: - Collection frequency: Monthly - Age groups: Under 30, Aged 30-50, Over 50 - Monthly snapshot taken at end of month - Calculation: - Monthly Total = Under 30 + Aged 30-50 + Over 50 - Annual Total = Sum of monthly unique employee counts (not simple sum of monthly totals) - Dimensionality: Organisation-level and Site-level

CSV/XLSX Export Columns:

Age_Group, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Annual_Total, Reporting_Period, Organisation_ID, Site_ID


Export Templates

CSV Export Structure

File Naming Convention: {Organisation}_{ReportType}_{FiscalYear}_{ExportDate}.csv

Example: Eureka_Gold_Human_Capital_FY2025_2026-01-17.csv

Sheet Structure for XLSX: - Sheet 1: E.1 Employee Demographics (quarterly by employment level) - Sheet 2: E.2 Employment Type and Turnover (monthly) - Sub-table: Permanent vs. Fixed Term - Sub-table: New Recruitments by Gender - Sub-table: Departures - Sub-table: Casual Workers - Sheet 3: E.3 Employee Age (monthly by age group) - Sheet 4: Reference Data (employment levels, age group definitions)

Column Mapping

Report Field Database Column Transform
Employment Level metric_submission.dimensions['employment_level'] Enum: Executive, Salaried Staff (Non-NEC), Waged Staff (NEC)
Quarter reporting_period.quarter Format: Q1 2025, Q2 2025, etc.
Male metric_submission.value WHERE gender='Male' Direct
Female metric_submission.value WHERE gender='Female' Direct
From Local Community metric_submission.value WHERE local_community=true Direct
% Male Calculated field (Male / Total) × 100, format: 0% - 100%
% Female Calculated field (Female / Total) × 100, format: 0% - 100%
% From Local Community Calculated field (From Local Community / Total) × 100, format: 0% - 100%
Employment Type metric_submission.dimensions['employment_type'] Enum: Permanent, Fixed Term
Jan-Dec (months) metric_submission.value WHERE month=X Direct, grouped by month
Average Calculated field Sum of monthly values / Count of non-null months
Total Calculated field Sum of monthly values for fiscal year
Age Group metric_submission.dimensions['age_group'] Enum: Under 30, Aged 30-50, Over 50

Validation Rules

E.1 Employee Demographics: - Total = Male + Female for each employment level and quarter - Percentages must sum to 100% (Male + Female = 100%) - % From Local Community must be ≤ 100% - From Local Community count ≤ Total employees - No negative values - Quarterly data required (Q1-Q4, with missing quarters acceptable if not yet reached in fiscal year)

E.2 Employment Type and Turnover: - All values must be non-negative integers - Monthly data required for each fiscal year month - Average calculation: (Sum of monthly values) / (Count of non-null months), rounded to nearest integer - Total calculation: Sum of monthly values for the fiscal year - Fixed Term + Permanent should approximately equal total workforce (minus casual workers) - Recruitment metrics (Male + Female) should align with net changes in permanent headcount

E.3 Employee Age: - All values must be non-negative integers - Monthly Total row must equal sum of age groups (Under 30 + Aged 30-50 + Over 50) for each month - Annual Total represents unique employee counts across the year (may not equal simple sum of monthly totals) - Missing months acceptable if not yet reached in fiscal year


Filters & Ordering

Available Filters: - Reporting Period: Fiscal year, quarter (for E.1), month (for E.2, E.3) - Organisation: Select specific organisation or group - Site/Business Unit: Filter to specific site or across multiple sites - Employment Level: Filter E.1 by Executive, Salaried Staff (Non-NEC), Waged Staff (NEC) - Employment Type: Filter E.2 by Permanent, Fixed Term - Gender: Filter E.2 recruitment by Male, Female - Age Group: Filter E.3 by Under 30, Aged 30-50, Over 50

Ordering: - E.1: By employment level (Executive → Salaried → Waged), then by quarter (Q1 → Q4) - E.2: By metric type (Employment Type → Recruitment → Departures → Casual Workers), then by month (Jan → Dec) - E.3: By age group (Under 30 → Aged 30-50 → Over 50), then by month (Jan → Dec)

Grouping: - Optional grouping by site, employment level, or quarter for E.1 - Optional grouping by site or employment type for E.2 - Optional grouping by site or age group for E.3


Access Control & PII Handling

Role-Based Access: - Data Collector: Can view and edit human capital metrics for their assigned sites - HR Manager: Can view and approve HR metrics for their organisation - Site Manager: Can view headcount metrics for their site (no individual-level access) - Org Admin: Can view all HR metrics across organisation - External Auditor: Read-only access to approved/locked period data

PII Protection: - All human capital metrics are aggregated at group level (no individual employee records in reports) - Minimum aggregation threshold: At least 5 employees per reported category to prevent identification - Individual employee names, IDs, or personal details must not appear in exports - Age groups are broad ranges (not specific ages) to protect privacy - Gender dimension limited to Male/Female aggregates (no individual-level data) - Evidence attachments containing individual HR records must be restricted to internal use only and encrypted - Local community status reported as counts/percentages, not individual employee flags

Data Minimization: - Reports include only demographic aggregates required for GRI compliance - Individual recruitment or departure events are counted but not attributed to specific employees - Casual worker counts are totals only (no individual worker details)


Occupational Health and Safety (OHS) Reporting (GRI 403-9, GRI 403-10)

Overview

This section defines the output format for Occupational Health and Safety (OHS) reports, including GRI 403-9 (work-related injuries) and GRI 403-10 (work-related ill health). These reports support compliance with GRI social disclosures related to workplace safety, incident tracking, and lost time injury frequency rates (LTIFR).

Report Sections

F.1 Quarterly Incident Statistics

Output Format: Quarterly incident counts table by workforce type

Data Structure:

Incident Type Workforce Type Q1 Q2 Q3 Q4 Total
Near Miss Mine 45 52 48 50 195
Near Miss Contractors 12 15 10 14 51
First Aid Mine 23 28 25 22 98
First Aid Contractors 8 6 9 7 30
Restricted Work Mine 5 4 6 3 18
Restricted Work Contractors 2 1 3 2 8
Medical Treatment Mine 12 15 10 13 50
Medical Treatment Contractors 4 3 5 4 16
LTI (Lost Time Injury) Mine 3 2 4 1 10
LTI (Lost Time Injury) Contractors 1 0 1 0 2
Fatality Mine 0 0 0 0 0
Fatality Contractors 0 0 0 0 0
High Potential Incident Mine 8 6 7 5 26
High Potential Incident Contractors 2 1 3 1 7
Property Damage Mine 6 5 4 7 22
Property Damage Contractors 1 2 1 2 6
Silicosis/Pneumoconiosis Mine 0 1 0 0 1
Silicosis/Pneumoconiosis Contractors 0 0 0 0 0
Other Clinic Visits Mine 78 82 75 80 315
Other Clinic Visits Contractors 15 18 12 16 61

Description: Quarterly count of occupational health and safety incidents by type and workforce type (Mine employees vs. Contractors). Includes total across all quarters for the fiscal year.

Data Requirements: - Collection frequency: Quarterly - Incident types: Near Miss, First Aid, Restricted Work, Medical Treatment, LTI (Lost Time Injury), Fatality, High Potential Incident, Property Damage, Silicosis/Pneumoconiosis, Other Clinic Visits - Workforce types: Mine, Contractors - Dimensions: incident_type, workforce_type, quarter - Calculation: Total = Q1 + Q2 + Q3 + Q4 - Dimensionality: Organisation-level and Site-level - Zero values allowed for quarters with no incidents

CSV/XLSX Export Columns:

Incident_Type, Workforce_Type, Q1, Q2, Q3, Q4, Total, Reporting_Period, Organisation_ID, Site_ID, Collection_Date


F.2 Lost Time Injury (LTI) Days and LTIFR

Output Format: Quarterly LTI days and LTIFR table by workforce type

Data Structure:

Metric Workforce Type Q1 Q2 Q3 Q4 YTD
LTI Days Mine 45 30 60 15 150
LTI Days Contractors 15 0 12 0 27
LTIFR Mine 1.25 0.83 1.67 0.42 1.04
LTIFR Contractors 0.71 0.00 0.68 0.00 0.35

Description: Quarterly Lost Time Injury (LTI) days and Lost Time Injury Frequency Rate (LTIFR) by workforce type. Year-to-date (YTD) values represent cumulative totals and averages for the fiscal year.

Data Requirements: - Collection frequency: Quarterly - Metrics: - LTI Days: Total days lost due to lost time injuries - LTIFR: Lost Time Injury Frequency Rate - Workforce types: Mine, Contractors - Calculation: - YTD LTI Days = Q1 + Q2 + Q3 + Q4 (cumulative sum) - LTIFR = (Number of LTIs × 1,000,000) / Total hours worked - YTD LTIFR = (Total LTIs YTD × 1,000,000) / Total hours worked YTD - Dimensionality: Organisation-level and Site-level - Precision: LTIFR reported to 2 decimal places

CSV/XLSX Export Columns:

Metric, Workforce_Type, Q1, Q2, Q3, Q4, YTD, Reporting_Period, Organisation_ID, Site_ID, Collection_Date

LTIFR Formula Reference:

LTIFR = (Number of LTIs / Total hours worked) × 1,000,000

Where: - Number of LTIs = Count of lost time injuries for the period - Total hours worked = Sum of hours worked by all employees/contractors for the period - Multiplier = 1,000,000 (standard frequency rate per million hours)


Export Templates

CSV Export Structure

File Naming Convention: {Organisation}_{ReportType}_{FiscalYear}_{ExportDate}.csv

Example: Eureka_Gold_OHS_Report_FY2025_2026-01-18.csv

Sheet Structure for XLSX: - Sheet 1: F.1 Quarterly Incident Statistics (all incident types by workforce type) - Sheet 2: F.2 LTI Days and LTIFR (quarterly and YTD) - Sheet 3: Reference Data (incident type definitions, workforce type categories, LTIFR formula) - Sheet 4: Hours Worked (quarterly hours by workforce type for LTIFR calculation reference)

Column Mapping

Report Field Database Column Transform
Incident Type metric_submission.dimensions['incident_type'] Enum: Near Miss, First Aid, Restricted Work, Medical Treatment, LTI, Fatality, High Potential Incident, Property Damage, Silicosis/Pneumoconiosis, Other Clinic Visits
Workforce Type metric_submission.dimensions['workforce_type'] Enum: Mine, Contractors
Q1, Q2, Q3, Q4 metric_submission.value WHERE quarter=X Direct, grouped by quarter
Total (F.1) Calculated field Sum of Q1 + Q2 + Q3 + Q4 for incident counts
YTD (F.2) Calculated field Cumulative sum for LTI Days, weighted average for LTIFR
LTI Days metric_submission.value WHERE metric='lti_days' Direct
LTIFR Calculated field (Number of LTIs × 1,000,000) / Total hours worked, rounded to 2 decimal places

Validation Rules

F.1 Quarterly Incident Statistics: - All values must be non-negative integers - Quarterly data required (Q1-Q4, with missing quarters acceptable if not yet reached in fiscal year) - Total = Q1 + Q2 + Q3 + Q4 for each incident type and workforce type - Fatality count requires mandatory evidence attachment (accident report, investigation report) - High Potential Incident count requires evidence attachment - Zero values explicitly allowed for no-incident periods (do not leave blank)

F.2 LTI Days and LTIFR: - LTI Days must be non-negative integers - LTIFR must be non-negative decimal (0.00 or greater) - LTIFR precision: 2 decimal places - YTD LTI Days = Q1 + Q2 + Q3 + Q4 (cumulative sum) - LTIFR calculation requires total hours worked metric for the same period - Referential check: Number of LTIs from F.1 must match LTI count used in LTIFR calculation - If LTI count is zero for a quarter, LTIFR should be 0.00 (not blank) - YTD LTIFR should reflect cumulative LTIs over cumulative hours worked

Cross-Validation: - LTI count from F.1 (LTI rows for Mine and Contractors) must align with LTIFR calculation input - Total hours worked must be submitted for each workforce type and quarter to enable LTIFR calculation - If LTI Days > 0, corresponding LTI count in F.1 must be > 0


Filters & Ordering

Available Filters: - Reporting Period: Fiscal year, quarter (Q1-Q4) - Organisation: Select specific organisation or group - Site/Business Unit: Filter to specific site or across multiple sites - Workforce Type: Filter by Mine, Contractors, or Both - Incident Type: Filter F.1 by specific incident types (e.g., only Fatalities, only LTIs) - Metric Type: Filter F.2 by LTI Days or LTIFR

Ordering: - F.1: By incident type (severity-based: Fatality → LTI → Medical Treatment → Restricted Work → First Aid → High Potential → Property Damage → Silicosis/Pneumoconiosis → Near Miss → Other Clinic Visits), then by workforce type (Mine → Contractors), then by quarter (Q1 → Q4) - F.2: By metric (LTI Days → LTIFR), then by workforce type (Mine → Contractors), then by quarter (Q1 → Q4)

Grouping: - Optional grouping by site, workforce type, or quarter - Optional aggregation at organisation level for multi-site reporting

Handling Missing Quarters: - If fiscal year is incomplete (e.g., only Q1-Q2 data available), Q3 and Q4 columns should display "-" or "N/A" - Total/YTD calculations should sum only available quarters - Export metadata should indicate which quarters are included in the report


Access Control & Evidence Requirements

Role-Based Access: - Data Collector: Can view and edit OHS metrics for their assigned sites - HSE Manager: Can view and approve OHS metrics for their organisation - Site Manager: Can view incident statistics for their site - Org Admin: Can view all OHS metrics across organisation - External Auditor: Read-only access to approved/locked period data

Evidence Requirements by Incident Type: - Fatality: MANDATORY - Accident report, investigation report, regulatory notification, medical examiner report - LTI: MANDATORY - Accident report, medical treatment record, LTI register entry - High Potential Incident: MANDATORY - Incident investigation report, root cause analysis - Medical Treatment: RECOMMENDED - Medical treatment record, clinic register entry - Restricted Work: RECOMMENDED - Accident report, medical assessment - Silicosis/Pneumoconiosis: MANDATORY - Medical diagnosis, occupational health assessment, regulatory notification - First Aid: OPTIONAL - Clinic register entry - Near Miss: OPTIONAL - Near miss report (if formal reporting system in place) - Property Damage: RECOMMENDED - Property damage report, cost estimate - Other Clinic Visits: OPTIONAL - Clinic register log

Confidentiality: - All OHS incident data classified as CONFIDENTIAL - Individual employee names must not appear in aggregated reports (use incident numbers only) - Medical records and health-related evidence must be encrypted and access-restricted to HSE managers and authorised personnel only - Evidence attachments containing personal health information (PHI) require additional access controls beyond standard confidential classification


Environmental Reporting (GRI 301, 302, 303, 305, 306, 307)

Overview

This section defines the output format for environmental reports, including production metrics, materials consumption, energy usage, water management, air emissions, waste management, TSF (Tailings Storage Facility) operations, rehabilitation activities, and environmental incidents. These reports support compliance with GRI environmental disclosures and operational monitoring requirements.

Report Sections

G.1 Production

Output Format: Monthly production tables with totals and averages

Data Structure:

Production Metric Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total Average
Crushed Ore (tonnes) 125,000 130,000 128,000 135,000 132,000 140,000 138,000 142,000 145,000 - - - 1,215,000 135,000
Milled Ore (tonnes) 120,000 125,000 123,000 130,000 127,000 135,000 133,000 137,000 140,000 - - - 1,170,000 130,000
Gold Produced (oz) 3,200 3,350 3,280 3,450 3,380 3,600 3,540 3,650 3,720 - - - 30,170 3,352

Description: Monthly production volumes for crushed ore, milled ore, and gold produced. Total represents the sum across all months in the fiscal year, and Average is the mean monthly production.

Data Requirements: - Collection frequency: Monthly - Metrics: Crushed ore (tonnes), Milled ore (tonnes), Gold produced (oz) - Calculation: - Total = Sum of monthly values for the fiscal year - Average = Total / Number of months with data - Dimensionality: Site-level and Organisation-level - Units: Tonnes (ore), Troy ounces (gold)

CSV/XLSX Export Columns:

Production_Metric, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Average, Reporting_Period, Organisation_ID, Site_ID


G.2 Materials Consumption

Output Format: Monthly consumables table with per-tonne intensity metrics

Data Structure:

Material Unit Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total Intensity (per tonne crushed)
Activated Carbon kg 2,500 2,600 2,550 2,700 2,650 2,800 2,750 2,850 2,900 - - - 24,300 0.020
Cyanide kg 15,000 15,600 15,300 16,200 15,900 16,800 16,500 17,100 17,400 - - - 145,800 0.120
Hydrogen Peroxide L 8,000 8,300 8,150 8,600 8,450 8,900 8,750 9,050 9,200 - - - 77,400 0.064
Caustic Soda kg 12,000 12,500 12,250 13,000 12,750 13,500 13,250 13,700 14,000 - - - 117,000 0.096
Blasting Emulsion kg 45,000 46,800 45,900 48,600 47,700 50,400 49,500 51,300 52,200 - - - 437,400 0.360
Mill Balls kg 18,000 18,700 18,350 19,400 19,100 20,200 19,800 20,500 20,900 - - - 174,950 0.144

Description: Monthly consumption of materials and consumables used in mining and processing operations. Intensity metrics show consumption per tonne of crushed ore for efficiency analysis.

Data Requirements: - Collection frequency: Monthly - Materials: Activated carbon, Cyanide, Hydrogen peroxide, Caustic soda, Blasting emulsion, Mill balls - Calculation: - Total = Sum of monthly values for the fiscal year - Intensity = Total material consumed / Total crushed ore (from G.1) - Dimensionality: Site-level and Organisation-level - Units: kg (kilograms), L (litres) - Precision: Intensity to 3 decimal places

CSV/XLSX Export Columns:

Material, Unit, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Intensity_Per_Tonne_Crushed, Reporting_Period, Organisation_ID, Site_ID


G.3 Energy Usage

Output Format: Monthly energy tables with specific consumption metrics

Data Structure:

G.3.1 Electricity Consumption
Source Jan (kWh) Feb (kWh) Mar (kWh) Apr (kWh) May (kWh) Jun (kWh) Jul (kWh) Aug (kWh) Sep (kWh) Oct (kWh) Nov (kWh) Dec (kWh) Total (kWh) Specific (kWh/t)
Grid-Supplied 850,000 880,000 865,000 910,000 895,000 945,000 930,000 960,000 980,000 - - - 8,215,000 6.76
Generator-Supplied 125,000 130,000 127,500 135,000 132,500 140,000 137,500 142,500 145,000 - - - 1,215,000 1.00
G.3.2 Fuel Consumption
Fuel Type & Use Jan (L) Feb (L) Mar (L) Apr (L) May (L) Jun (L) Jul (L) Aug (L) Sep (L) Oct (L) Nov (L) Dec (L) Total (L) Specific (L/t)
Diesel - Other 45,000 46,800 45,900 48,600 47,700 50,400 49,500 51,300 52,200 - - - 437,400 0.360
Diesel - Mining/Drilling 120,000 125,000 122,500 130,000 127,500 135,000 132,500 137,500 140,000 - - - 1,170,000 0.963
Diesel - Generators 28,000 29,100 28,550 30,200 29,650 31,300 30,750 31,850 32,400 - - - 271,800 0.224
Petrol - Other 8,000 8,300 8,150 8,600 8,450 8,900 8,750 9,050 9,200 - - - 77,400 0.064
G.3.3 Generator Electric Consumption Rate
Metric Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Average
Generator Consumption Rate (L/kWh) 0.224 0.224 0.224 0.224 0.224 0.224 0.224 0.224 0.224 - - - 0.224

Description: Monthly electricity and fuel consumption for mining and processing operations. Specific consumption metrics show energy intensity per tonne of crushed ore. Generator consumption rate shows diesel fuel efficiency.

Data Requirements: - Collection frequency: Monthly - Electricity sources: Grid-supplied (kWh), Generator-supplied (kWh) - Fuel types: Diesel (other, mining/drilling, generators), Petrol (other) - Calculation: - Total = Sum of monthly values for the fiscal year - Specific consumption = Total energy consumed / Total crushed ore (from G.1) - Generator consumption rate = Total diesel for generators (L) / Total generator-supplied electricity (kWh) - Dimensionality: Site-level and Organisation-level - Units: kWh (electricity), L (litres for fuel) - Precision: Specific consumption and generator rate to 3 decimal places

CSV/XLSX Export Columns:

Energy_Type, Energy_Source_Or_Use, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Specific_Per_Tonne_Crushed, Reporting_Period, Organisation_ID, Site_ID


G.4 Water Consumption and Water Quality

Output Format: Monthly water tables and quarterly water quality monitoring

G.4.1 Water Abstraction by Source
Water Source Jan (m³) Feb (m³) Mar (m³) Apr (m³) May (m³) Jun (m³) Jul (m³) Aug (m³) Sep (m³) Oct (m³) Nov (m³) Dec (m³) Total (m³)
Fresh Groundwater 18,000 18,700 18,350 19,400 19,100 20,200 19,800 20,500 20,900 - - - 174,950
Fresh Surface Water 12,000 12,500 12,250 13,000 12,750 13,500 13,250 13,700 14,000 - - - 117,000
Low Quality Groundwater 8,000 8,300 8,150 8,600 8,450 8,900 8,750 9,050 9,200 - - - 77,400
G.4.2 Recycled Water Streams
Recycle Stream Jan (m³) Feb (m³) Mar (m³) Apr (m³) May (m³) Jun (m³) Jul (m³) Aug (m³) Sep (m³) Oct (m³) Nov (m³) Dec (m³) Total (m³)
TSF Return Water 45,000 46,800 45,900 48,600 47,700 50,400 49,500 51,300 52,200 - - - 437,400
Other Recycle Streams 15,000 15,600 15,300 16,200 15,900 16,800 16,500 17,100 17,400 - - - 145,800
G.4.3 Water Consumed by Use
Water Use Jan (m³) Feb (m³) Mar (m³) Apr (m³) May (m³) Jun (m³) Jul (m³) Aug (m³) Sep (m³) Oct (m³) Nov (m³) Dec (m³) Total (m³) Specific (m³/t)
Processing Plant 55,000 57,200 56,100 59,400 58,300 61,600 60,500 62,700 63,800 - - - 534,600 0.440
Mining Operations 18,000 18,700 18,350 19,400 19,100 20,200 19,800 20,500 20,900 - - - 174,950 0.144
Potable Water 5,000 5,200 5,100 5,400 5,300 5,600 5,500 5,700 5,800 - - - 48,600 0.040
G.4.4 Water Quality Monitoring
Sampling Point Quarter pH Turbidity (NTU) Suspended Solids (mg/L) Cyanide (mg/L) Heavy Metals (mg/L) Quality Band Non-Compliance Parameters
Upstream River Q1 2025 7.2 12 18 0.001 0.005 Green None
Downstream River Q1 2025 7.5 45 52 0.015 0.025 Amber Turbidity, Suspended Solids
TSF Seepage Point Q1 2025 8.1 85 120 0.045 0.080 Red Turbidity, Suspended Solids, Cyanide, Heavy Metals
Groundwater Borehole 1 Q1 2025 7.0 8 10 0.001 0.003 Green None

Description: Monthly water abstraction, recycling, and consumption metrics with quarterly water quality monitoring at designated sampling points. Quality bands indicate compliance with environmental standards.

Data Requirements: - Collection frequency: Monthly (abstraction, recycling, consumption), Quarterly (water quality) - Water sources: Fresh groundwater, Fresh surface water, Low quality groundwater - Recycle streams: TSF return water, Other recycle streams - Water uses: Processing plant, Mining operations, Potable water - Calculation: - Total = Sum of monthly values for the fiscal year - Specific water use = Total water consumed / Total crushed ore (from G.1) - Quality bands: Green (compliant), Amber (minor exceedance), Red (major exceedance) - Dimensionality: Site-level and Organisation-level - Units: m³ (cubic metres), NTU (turbidity), mg/L (milligrams per litre) - Precision: Specific consumption to 3 decimal places, quality parameters to 3 decimal places

CSV/XLSX Export Columns (Water Volumes):

Water_Category, Water_Source_Or_Use, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Specific_Per_Tonne_Crushed, Reporting_Period, Organisation_ID, Site_ID

CSV/XLSX Export Columns (Water Quality):

Sampling_Point, Quarter, pH, Turbidity_NTU, Suspended_Solids_mg_L, Cyanide_mg_L, Heavy_Metals_mg_L, Quality_Band, Non_Compliance_Parameters, Reporting_Period, Organisation_ID, Site_ID, Collection_Date


G.5 Air Emissions

Output Format: Quarterly air pollutant measurements by monitoring area

Data Structure:

Monitoring Area Pollutant Q1 (μg/m³) Q2 (μg/m³) Q3 (μg/m³) Q4 (μg/m³) Quality Band
Processing Plant PM10 45 48 42 46 Amber
Processing Plant SO₂ 15 18 14 16 Green
Processing Plant NO₂ 25 28 23 26 Green
Processing Plant CO 350 380 340 370 Green
Mine Site Boundary PM10 85 92 88 90 Red
Mine Site Boundary SO₂ 12 14 11 13 Green
Mine Site Boundary NO₂ 22 25 20 23 Green
Mine Site Boundary CO 280 310 270 300 Green
Residential Area PM10 32 35 30 33 Green
Residential Area SO₂ 8 10 7 9 Green
Residential Area NO₂ 18 20 16 19 Green
Residential Area CO 220 245 210 235 Green

Description: Quarterly air emissions monitoring for particulate matter (PM10), sulfur dioxide (SO₂), nitrogen dioxide (NO₂), and carbon monoxide (CO) at designated monitoring areas. Quality bands indicate compliance with air quality standards.

Data Requirements: - Collection frequency: Quarterly - Pollutants: PM10 (particulate matter ≤10 micrometers), SO₂ (sulfur dioxide), NO₂ (nitrogen dioxide), CO (carbon monoxide) - Monitoring areas: Processing plant, Mine site boundary, Residential area, Other designated areas - Quality bands: Green (compliant), Amber (minor exceedance), Red (major exceedance) - Dimensionality: Site-level and Organisation-level - Units: μg/m³ (micrograms per cubic metre) - Precision: 1 decimal place for measurements

CSV/XLSX Export Columns:

Monitoring_Area, Pollutant, Q1, Q2, Q3, Q4, Quality_Band, Reporting_Period, Organisation_ID, Site_ID, Collection_Date


G.6 Non-Mineralised Waste

Output Format: Monthly waste generation table with disposal methods

Data Structure:

Waste Type Jan (tonnes) Feb (tonnes) Mar (tonnes) Apr (tonnes) May (tonnes) Jun (tonnes) Jul (tonnes) Aug (tonnes) Sep (tonnes) Oct (tonnes) Nov (tonnes) Dec (tonnes) Total (tonnes) Specific (kg/t crushed) Disposal Method
General Waste 45 47 46 49 48 50 49 51 52 - - - 437 0.360 Landfill
Recyclables (Metal) 12 13 12 13 13 14 13 14 14 - - - 118 0.097 Recycled
Recyclables (Plastic) 8 8 8 9 9 9 9 9 9 - - - 78 0.064 Recycled
Hazardous Waste 5 5 5 5 5 6 5 6 6 - - - 48 0.040 Licensed Facility
Contaminated Soil 25 26 25 27 27 28 27 29 29 - - - 243 0.200 Treatment & Disposal

Description: Monthly non-mineralised waste generation by type with total annual volumes, specific waste per tonne of crushed ore, and disposal methods. Non-mineralised waste includes general operational waste but excludes mining waste (waste rock and tailings).

Data Requirements: - Collection frequency: Monthly - Waste types: General waste, Recyclables (metal, plastic, paper), Hazardous waste, Contaminated soil, Other non-mineralised waste - Disposal methods: Landfill, Recycled, Licensed facility, Treatment & disposal, Other - Calculation: - Total = Sum of monthly values for the fiscal year - Specific waste = (Total waste in kg) / Total crushed ore - Dimensionality: Site-level and Organisation-level - Units: Tonnes (monthly and total), kg/t (specific waste intensity) - Precision: Specific waste to 3 decimal places

CSV/XLSX Export Columns:

Waste_Type, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Specific_Per_Tonne_Crushed, Disposal_Method, Reporting_Period, Organisation_ID, Site_ID


G.7 Mineralised Waste

Output Format: Monthly mineralised waste table

Data Structure:

Waste Type Jan (tonnes) Feb (tonnes) Mar (tonnes) Apr (tonnes) May (tonnes) Jun (tonnes) Jul (tonnes) Aug (tonnes) Sep (tonnes) Oct (tonnes) Nov (tonnes) Dec (tonnes) Total (tonnes)
Waste Rock 450,000 468,000 459,000 486,000 477,000 504,000 495,000 513,000 522,000 - - - 4,374,000
Tailings 120,000 125,000 122,500 130,000 127,500 135,000 132,500 137,500 140,000 - - - 1,170,000

Description: Monthly mineralised waste generation including waste rock (overburden and non-ore bearing rock) and tailings (processed ore residue). Total represents cumulative waste generated during the fiscal year.

Data Requirements: - Collection frequency: Monthly - Waste types: Waste rock (overburden, non-ore rock), Tailings (processing residue) - Calculation: - Total = Sum of monthly values for the fiscal year - Dimensionality: Site-level and Organisation-level - Units: Tonnes - Relationship: Tailings volume should approximately correspond to milled ore volume (from G.1)

CSV/XLSX Export Columns:

Waste_Type, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Total, Reporting_Period, Organisation_ID, Site_ID


G.8 TSF Management

Output Format: Monthly TSF monitoring table

Data Structure:

TSF Metric Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Average Unit
Slurry Density 1.35 1.36 1.35 1.37 1.36 1.38 1.37 1.39 1.38 - - - 1.37 g/cm³
Freeboard 2.5 2.4 2.6 2.3 2.5 2.2 2.4 2.1 2.3 - - - 2.4 m
Surface Area 45.2 45.3 45.4 45.5 45.6 45.7 45.8 45.9 46.0 - - - 45.6 ha
Rate of Rise 0.08 0.09 0.08 0.10 0.09 0.11 0.10 0.12 0.11 - - - 0.10 m/month

Description: Monthly Tailings Storage Facility (TSF) management metrics including slurry density, freeboard (distance from tailings surface to dam crest), surface area, and rate of rise. These metrics are critical for TSF stability and environmental compliance monitoring.

Data Requirements: - Collection frequency: Monthly - Metrics: - Slurry density: Density of tailings slurry (g/cm³) - Freeboard: Vertical distance from tailings surface to dam crest (m) - Surface area: Area of tailings impoundment surface (ha) - Rate of rise: Monthly increase in tailings elevation (m/month) - Calculation: - Average = Mean of monthly values for the fiscal year - Dimensionality: Site-level (each TSF separately) and Organisation-level - Units: g/cm³ (density), m (metres), ha (hectares), m/month (rate) - Precision: Slurry density to 2 decimal places, other metrics to 2 decimal places

CSV/XLSX Export Columns:

TSF_Metric, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Average, Unit, Reporting_Period, Organisation_ID, Site_ID, TSF_Name


G.9 Rehabilitation Activities Log

Output Format: Quarterly rehabilitation activities table

Data Structure:

NO. Date Started Rehabilitation Activity Cost (USD) Status Status Date Site/Area
1 15-Jan-25 Topsoil replacement - Pit 1 North Wall 45,000 Completed 28-Feb-25 Pit 1
2 20-Feb-25 Vegetation establishment - Waste Rock Dump A 28,500 WIP 30-Jun-25 WRD-A
3 10-Mar-25 Erosion control - Haul Road Section 3 12,000 Completed 15-Apr-25 Haul Road
4 05-Apr-25 Contouring and reshaping - Old TSF Beach 85,000 WIP 31-Dec-25 TSF-1
5 12-May-25 Water diversion channel construction 35,000 WIP 30-Sep-25 Pit 2

Description: Quarterly log of rehabilitation activities undertaken at the mine site, including mine closure preparation, progressive rehabilitation, and environmental restoration work. Tracks activity status, costs, and completion dates.

Data Requirements: - Collection frequency: Quarterly (activities ongoing throughout the year) - Fields: - NO.: Sequential activity number - Date Started: Date rehabilitation work commenced - Rehabilitation Activity: Description of the activity - Cost: Estimated or actual cost in USD - Status: Current status (Planned, WIP, Completed, On Hold) - Status Date: Target or actual completion date - Site/Area: Location of rehabilitation work - Status transitions: Planned → WIP → Completed - Dimensionality: Site-level and Organisation-level - Currency: USD (or organisation default currency)

CSV/XLSX Export Columns:

NO, Date_Started, Rehabilitation_Activity, Cost_USD, Status, Status_Date, Site_Area, Reporting_Period, Organisation_ID, Site_ID


G.10 Environmental Incidents Log

Output Format: Quarterly environmental incidents table

Data Structure:

NO. Date Reported Incident Description Severity Actions Taken Status Status Date Site/Area
1 22-Jan-25 Minor diesel spill (approx. 50L) during refueling Low Spill contained, contaminated soil removed and disposed at licensed facility Closed 25-Jan-25 Generator Yard
2 15-Feb-25 TSF seepage detected at monitoring point SP-3 Medium Additional monitoring boreholes installed, seepage collection system activated WIP 30-Apr-25 TSF-1
3 08-Mar-25 Exceedance of PM10 limit at boundary monitoring station Medium Increased water spraying on haul roads, dust suppression measures implemented Closed 20-Mar-25 Mine Boundary
4 25-Apr-25 Cyanide concentration in downstream river above guideline High Process water discharge stopped, investigation ongoing, regulatory authority notified WIP 31-Jul-25 Processing Plant

Description: Quarterly log of environmental incidents including spills, permit exceedances, emissions events, and other environmental non-conformances. Tracks incident severity, response actions, and closure status.

Data Requirements: - Collection frequency: Quarterly (incidents recorded as they occur) - Fields: - NO.: Sequential incident number - Date Reported: Date incident was identified/reported - Incident Description: Description of the environmental incident - Severity: Incident severity level (Low, Medium, High, Critical) - Actions Taken: Response and corrective actions - Status: Current status (Open, WIP, Closed) - Status Date: Target or actual closure date - Site/Area: Location of incident - Severity levels: - Low: Minor, localized impact, no regulatory notification required - Medium: Moderate impact, regulatory notification required, no long-term environmental damage - High: Significant impact, regulatory notification and investigation required, potential long-term environmental damage - Critical: Major impact, regulatory enforcement, significant environmental damage, community impact - Dimensionality: Site-level and Organisation-level - Confidentiality: Environmental incidents classified as CONFIDENTIAL

CSV/XLSX Export Columns:

NO, Date_Reported, Incident_Description, Severity, Actions_Taken, Status, Status_Date, Site_Area, Reporting_Period, Organisation_ID, Site_ID


Export Templates

CSV Export Structure

File Naming Convention: {Organisation}_{ReportType}_{FiscalYear}_{ExportDate}.csv

Example: Eureka_Gold_Environment_Report_FY2025_2026-01-18.csv

Sheet Structure for XLSX: - Sheet 1: G.1 Production (monthly) - Sheet 2: G.2 Materials Consumption (monthly with intensity) - Sheet 3: G.3 Energy Usage (electricity, fuel, generator rate) - Sheet 4: G.4.1-4.3 Water Volumes (abstraction, recycling, consumption) - Sheet 5: G.4.4 Water Quality (quarterly monitoring) - Sheet 6: G.5 Air Emissions (quarterly by area) - Sheet 7: G.6 Non-Mineralised Waste (monthly with disposal methods) - Sheet 8: G.7 Mineralised Waste (monthly) - Sheet 9: G.8 TSF Management (monthly monitoring) - Sheet 10: G.9 Rehabilitation Activities (quarterly log) - Sheet 11: G.10 Environmental Incidents (quarterly log) - Sheet 12: Reference Data (material types, water sources, waste types, quality band definitions)

Column Mapping

Report Field Database Column Transform
Production Metric metric_submission.dimensions['production_metric'] Enum: Crushed Ore, Milled Ore, Gold Produced
Material metric_submission.dimensions['material'] Enum: Activated Carbon, Cyanide, etc.
Energy Source/Use metric_submission.dimensions['energy_source'] or ['fuel_use'] Enum values for electricity sources and fuel uses
Water Source/Use metric_submission.dimensions['water_source'] or ['water_use'] Enum values for abstraction sources and consumption uses
Sampling Point metric_submission.dimensions['sampling_point'] Master data: Sampling point names
Monitoring Area metric_submission.dimensions['monitoring_area'] Master data: Air monitoring area names
Pollutant metric_submission.dimensions['pollutant'] Enum: PM10, SO₂, NO₂, CO
Waste Type metric_submission.dimensions['waste_type'] Enum values for mineralised and non-mineralised waste
Disposal Method metric_submission.dimensions['disposal_method'] Enum: Landfill, Recycled, Licensed Facility, etc.
TSF Metric metric_submission.dimensions['tsf_metric'] Enum: Slurry Density, Freeboard, Surface Area, Rate of Rise
Quality Band Calculated field Green/Amber/Red based on regulatory thresholds
Jan-Dec (months) metric_submission.value WHERE month=X Direct, grouped by month
Q1-Q4 (quarters) metric_submission.value WHERE quarter=X Direct, grouped by quarter
Total Calculated field Sum of monthly or quarterly values
Average Calculated field Mean of monthly values
Intensity/Specific Calculated field Material or energy / Crushed ore

Validation Rules

G.1 Production: - All values must be non-negative - Monthly data required for each fiscal year month - Total = Sum of monthly values - Average = Total / Count of non-null months - Milled ore should be ≤ Crushed ore (processing losses acceptable)

G.2 Materials Consumption: - All values must be non-negative - Monthly data required - Total = Sum of monthly values - Intensity = Total material / Total crushed ore (from G.1) - Units must be consistent (kg or L as specified)

G.3 Energy Usage: - All values must be non-negative - Monthly data required - Total = Sum of monthly values - Specific consumption = Total energy / Total crushed ore (from G.1) - Generator consumption rate = Diesel for generators / Generator-supplied electricity - Referential check: Generator fuel consumption must align with generator electricity output

G.4 Water: - All volumes must be non-negative - Monthly data required for volumes, quarterly for quality - Total abstraction should approximately equal total consumption + recycled water (accounting for losses/evaporation) - Specific water use = Total water consumed / Total crushed ore (from G.1) - Quality bands: - Green: All parameters within regulatory limits - Amber: 1-2 parameters slightly exceed limits (≤20% exceedance) - Red: ≥3 parameters exceed limits or any parameter >20% exceedance - Non-compliance parameters: List parameters that exceed regulatory limits

G.5 Air Emissions: - All measurements must be non-negative - Quarterly data required - Quality bands based on local air quality standards - Monitoring areas must be from approved master data list

G.6 Non-Mineralised Waste: - All values must be non-negative - Monthly data required - Total = Sum of monthly values - Specific waste = (Total in kg) / Total crushed ore - Disposal method required for each waste type - Hazardous waste must have licensed facility disposal method

G.7 Mineralised Waste: - All values must be non-negative - Monthly data required - Total = Sum of monthly values - Tailings volume should approximately equal milled ore (from G.1) accounting for water content

G.8 TSF Management: - All values must be positive (except where zero is valid) - Monthly data required - Average = Mean of monthly values - Freeboard must be ≥ minimum regulatory requirement (typically ≥0.8m) - Rate of rise must be monitored against design specifications - Surface area should show gradual increase over time

G.9 Rehabilitation Activities: - Date started must be within or before the reporting period - Status transitions: Planned → WIP → Completed (no reverse transitions) - Status date must be ≥ date started - If status is Completed, status date is actual completion date - If status is WIP or Planned, status date is target completion date - Cost must be non-negative

G.10 Environmental Incidents: - Date reported must be within the reporting period - Severity classification required (Low, Medium, High, Critical) - High and Critical incidents require evidence attachment (incident report, investigation report) - Status transitions: Open → WIP → Closed (no reverse transitions) - If status is Closed, actions taken must be documented - Incidents involving regulatory notification must be flagged

Cross-Validation: - Crushed ore (G.1) used as denominator for all intensity calculations (G.2, G.3, G.4, G.6) - Milled ore (G.1) should align with tailings generation (G.7) - Generator fuel consumption (G.3) should align with generator electricity output (G.3) - Water abstracted + recycled (G.4) should balance with water consumed (G.4) + losses - TSF tailings received (G.8) should align with tailings generated (G.7)


Filters & Ordering

Available Filters: - Reporting Period: Fiscal year, quarter (for quarterly metrics), month (for monthly metrics) - Organisation: Select specific organisation or group - Site/Business Unit: Filter to specific site or across multiple sites - Production Metric: Filter G.1 by Crushed Ore, Milled Ore, Gold Produced - Material Type: Filter G.2 by specific consumables - Energy Type: Filter G.3 by electricity or fuel - Water Source/Use: Filter G.4 by abstraction sources or consumption uses - Pollutant: Filter G.5 by PM10, SO₂, NO₂, CO - Waste Type: Filter G.6/G.7 by specific waste categories - Quality Band: Filter G.4/G.5 by Green/Amber/Red compliance status - Incident Severity: Filter G.10 by Low, Medium, High, Critical - Status: Filter G.9/G.10 by Planned, WIP, Completed, Closed

Ordering: - G.1-G.8: By month (Jan → Dec) or quarter (Q1 → Q4) - G.9: By date started (ascending), then by activity number - G.10: By date reported (ascending), then by incident number

Grouping: - Optional grouping by site, production metric, material type, energy type, water source, waste type - Optional aggregation at organisation level for multi-site reporting

Handling Missing Months/Quarters: - If fiscal year is incomplete (e.g., only Jan-Sep data available), Oct-Dec columns should display "-" or "N/A" - Total/Average calculations should sum only available months/quarters - Export metadata should indicate which months/quarters are included in the report


Access Control & Evidence Requirements

Role-Based Access: - Data Collector: Can view and edit environmental metrics for their assigned sites - Environmental Manager: Can view and approve environmental metrics for their organisation - Site Manager: Can view environmental metrics for their site - Org Admin: Can view all environmental metrics across organisation - External Auditor: Read-only access to approved/locked period data

Evidence Requirements by Section: - G.1 Production: Production logs, shift reports, processing plant logs - G.2 Materials: Purchase invoices, stock cards, material consumption logs - G.3 Energy: Utility bills, fuel invoices, meter readings, generator logs - G.4 Water: Water meter readings, laboratory test reports (quality), sampling records - G.5 Air Emissions: Emissions monitoring reports, laboratory analysis certificates, calibration records - G.6 Non-Mineralised Waste: Waste manifests, disposal certificates, recycling receipts - G.7 Mineralised Waste: Tailings deposition logs, waste rock dump surveys - G.8 TSF Management: TSF inspection reports, survey data, freeboard measurements - G.9 Rehabilitation: Rehabilitation completion reports, cost invoices, photographic evidence - G.10 Incidents: MANDATORY - Incident reports, investigation reports, regulatory notifications, corrective action records

Confidentiality: - G.1-G.8: General environmental data classified as INTERNAL (may be disclosed in sustainability reports) - G.9: Rehabilitation activities classified as INTERNAL (costs may be commercially sensitive) - G.10: Environmental incidents classified as CONFIDENTIAL (regulatory and reputational sensitivity) - Evidence attachments containing regulatory correspondence or investigation reports require additional access controls


Community Investment & Development (GRI 203)

Overview

This section defines the output format for the H. Community Investment & Development report (GRI 203), specifically covering H.1 Quarterly CSR/CSIR Activities. This report tracks corporate social responsibility initiatives, budget vs. actual spend, variances, and beneficiary details.

Report Sections

H.1 Quarterly CSR/CSIR Activities

Output Format: Activity Log Table with financial totals

Data Structure:

Date Carried Out Description of Initiative Pillar Budget (USD) Actual Investment (USD) Variance (USD) Description of Stakeholder(s) Affected Comments
28-Feb-25 Muroiwa Primary School Additional Block Construction Education & Sports 37,000.00 37,000.00 0.00 Muroiwa Primary school and Ministry of Education CSIR to absorb the adhoc cost.
06-Jun-25 Community Brick Moulding Project Social Empowerment 0.00 13,000.00 13,000.00 Host Community CSIR to absorb the adhoc cost.
July - September Fuel Donations Donations & Sponsorship 24,300.00 4,518.47 19,782.00 Government Stakeholders Enabled Eureka Gold Mine and government events / activities
TOTAL 279,130.00 235,500.50 43,629.50

Description: Detailed log of community investment activities, donations, and sponsorships. Tracks financial performance against budget and identifies beneficiaries.

Data Requirements: - Collection Frequency: Quarterly (activities recorded as they occur or aggregated by quarter) - Columns: - Date Carried Out: Specific date (DD-MMM-YY) OR date range label (e.g., "July - September") if activity spans a period. - Description: Details of the initiative. - Pillar: Category of investment (e.g., Education & Sports, Social Empowerment, Community Development, Donations & Sponsorship, Other). - Budget: Planned expenditure (in report currency). Optional (can be 0.00 if unbudgeted). - Actual Investment: Actual expenditure (in report currency). - Variance: Calculated as (Budget - Actual) or (Actual - Budget) depending on financial view. Standard spec: Budget - Actual (Positive = Under Budget, Negative = Over Budget) OR Actual - Budget (Positive = Over Budget). - Note based on Source Report: Source shows Variance = Actual - Budget (e.g., Budget 0, Actual 13000 -> Variance 13000). But also shows Budget 50k, Actual 2950 -> Variance -47050. This implies Variance = Actual - Budget. - Stakeholder(s) Affected: Beneficiaries or partners. - Comments: Remarks, justifications, or internal notes. - Totals: Sum of Budget, Actual, and Variance columns at the bottom.

CSV/XLSX Export Columns:

Date_Carried_Out, Description_Of_Initiative, Pillar, Budget, Actual_Investment, Variance, Currency, Description_Of_Stakeholders_Affected, Comments, Reporting_Period, Organisation_ID, Site_ID


Export Templates

CSV Export Structure

File Naming Convention: {Organisation}_Community_Investment_{FiscalYear}_{ExportDate}.csv

Example: Eureka_Gold_Community_Investment_FY2025_2026-01-19.csv

Sheet Structure for XLSX: - Sheet 1: H.1 Quarterly CSR Activities - Sheet 2: Reference Data (Pillars, Stakeholder Categories)

Column Mapping

Report Field Database Column Transform
Date Carried Out activity.start_date, activity.end_date If start==end: DD-MMM-YY. If start!=end: "Month - Month" or "DD-MMM - DD-MMM" label based on logic.
Description of Initiative activity.description Direct
Pillar activity.pillar Enum: Education & Sports, Social Empowerment, Community Development, Donations & Sponsorship, Other
Budget activity.budget_amount Direct (Decimal)
Actual Investment activity.actual_amount Direct (Decimal)
Variance Calculated Actual - Budget
Description of Stakeholder(s) Affected activity.beneficiaries Direct
Comments activity.comments Direct
Currency activity.currency_code ISO Code (e.g., ZWD, USD). Report generation uses this to format values or convert if rate provided.

Example Output (CSV Snippet)

Date_Carried_Out,Description_Of_Initiative,Pillar,Budget,Actual_Investment,Variance,Currency,Description_Of_Stakeholders_Affected,Comments,Reporting_Period,Organisation_ID,Site_ID
28-Feb-25,"Muroiwa Primary School Additional Block Construction","Education & Sports",37000.00,37000.00,0.00,USD,"Muroiwa Primary school and Ministry of Education","CSIR to absorb the adhoc cost.","Q1 2025","ORG-001","SITE-001"
06-Jun-25,"Community Brick Moulding Project","Social Empowerment",0.00,13000.00,13000.00,USD,"Host Community","CSIR to absorb the adhoc cost.","Q2 2025","ORG-001","SITE-001"
"July - September","Fuel Donations","Donations & Sponsorship",24300.00,4518.47,-19781.53,USD,"Government Stakeholders","Enabled Eureka Gold Mine and government events / activities","Q3 2025","ORG-001","SITE-001"

Validation Rules

H.1 Community Investment: - Date Logic: Activity dates must fall within the reporting period. - Currency: All amounts in the export should ideally be normalized to a single reporting currency (e.g., USD) OR the export must explicitly state the currency per row. Source report implies mixed or single currency display. - Totals: Total rows must sum the numeric values of the column. - Variance: Must be automatically calculated to ensure arithmetic correctness. - Mandatory Fields: Description, Pillar, Actual Investment, Stakeholder Description. - Budget: Optional (defaults to 0.00 if missing).


Filters & Ordering

Available Filters: - Reporting Period: Fiscal year, quarter - Organisation: Select specific organisation or group - Site/Business Unit: Filter to specific site or across multiple sites - Pillar: Filter by investment category (Education & Sports, Social Empowerment, etc.) - Currency: Filter by currency code (e.g., ZWD, USD)

Ordering: - By Date Carried Out (ascending)

Grouping: - Optional grouping by Pillar, Site, or Quarter (if annual rollup)


Access Control & Evidence Requirements

Role-Based Access: - Data Collector: Can view and edit CSR activities for their assigned sites. - CSR Manager: Can view and approve CSR reports. - Org Admin: Can view all CSR data.

Evidence Requirements: - Financial: Invoices, receipts, proof of payment (MANDATORY for Actual > 0). - Non-Financial: Acknowledgement letters, photos of handover/event, MOUs (RECOMMENDED). - Confidentiality: Beneficiary PII (individual names) should be minimized; use group names (e.g., "Muroiwa Primary School") where possible.


Cross-References


Change Log

Version Date Author Changes
1.0 2026-01-03 Senior Product Architect Initial reporting outputs specification
1.1 2026-01-17 Ralph (Autonomous Agent) Added stakeholder engagement reporting (GRI 2-29, 2-30, Grievance Mechanism)
1.2 2026-01-17 Ralph (Autonomous Agent) Added human capital reporting (GRI 405-1, GRI 401, Employee Age) with E.1, E.2, E.3 table schemas
1.3 2026-01-18 Ralph (Autonomous Agent) Added OHS report type and sections F.1 (Quarterly Incident Statistics) and F.2 (LTI Days and LTIFR) with GRI 403-9/403-10 mapping
1.4 2026-01-18 Ralph (Autonomous Agent) Added Environment report type and sections G.1-G.10 (Production, Materials, Energy, Water, Air Emissions, Waste, TSF, Rehabilitation, Incidents) with GRI 301-307 mapping
1.5 2026-01-19 Ralph (Autonomous Agent) Added Community Investment report type and section H.1 (Quarterly CSR/CSIR Activities) with GRI 203 mapping
1.6 2026-01-21 Ralph (Autonomous Agent) Added example export and cross-references for Community Investment