FSAR to SPSR: End-to-End Example

This example shows one practical path from a local FSAR dataset to a package-first SPSR upload.

If you want the shortest recipe for escapement data, start here: CU/composite escapement estimates for package-first SPSR intake.

Scenario

You have a CU/composite escapement time series and supporting metadata for an FSAR update.

Goal: produce a validated salmon data package and submit through the SPSR route that matches the data grain.

The same package-first pattern also applies when the route scope is SMU or Population.

Step 1 — Start with source data, assumptions, and route scope

Record:

  • source dataset file(s)
  • temporal scope
  • CU, composite, SMU, or Population scope
  • intended SPSR route scope
  • key transformations already applied
  • known caveats

Step 2 — Map fields to canonical terms

Use GC DFO Salmon Ontology (WIDOCO) plus the metasalmon reusing-standards vignette to map core columns to canonical IRIs.

Create a simple mapping table:

source_column,standard_label,standard_term_iri
CU_code,Conservation Unit,https://w3id.org/gcdfo/salmon#ConservationUnit
BY,Brood Year,https://w3id.org/gcdfo/salmon#BroodYear
Esc,Escapement,https://w3id.org/gcdfo/salmon#Escapement

Step 3 — Create the package with metasalmon

Use the current metasalmon docs for the actual package creation and review loop:

That keeps package scaffolding, review artifacts, and package-native validation in one maintained place.

If you need the normative schema details or a manual starter scaffold, use the Salmon data package specification and the minimal starter package example.

Step 4 — Finish review and validation before upload

Run the metasalmon review loop before preparing the SPSR upload:

  • review metadata/*.csv
  • review any README-review.txt or semantic_suggestions.csv files created with the package
  • resolve placeholders or review-marked semantic values
  • run metasalmon::validate_salmon_datapackage(pkg_path, require_iris = TRUE) before deriving the upload files

The package is the authoritative source. Do not wait until the SPSR upload step to discover missing metadata or term mismatches.

Step 5 — Prepare the SPSR route-scoped upload from the package

  1. Choose the route scope that matches the table grain:
    • CU/composite for CU-level or combined CU composites
    • SMU for SMU-level rollups
    • Population for population-level rows
  2. Start from the current SPSR templates: https://spsr.dfo-mpo.gc.ca/download_sdp_templates
  3. Generate or align the upload CSV(s) from the same package metadata and data.
  4. Keep the route-scoped upload file(s) versioned with the package.
  5. If the submission is a bulk upload, use the same package-first path rather than a separate spreadsheet workflow.

SPSR resources:

Step 6 — Submit and iterate

  1. Upload through the wizard or approved bulk route.
  2. Review validation output.
  3. Correct the package and regenerate upload files if needed.
  4. Resubmit until intake checks pass.
  5. Record accepted version, intake date, and route notes.

Deliverables checklist