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:
- metasalmon 5-Minute Quickstart
- metasalmon Publishing Data Packages
- metasalmon Post-review publication
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.txtorsemantic_suggestions.csvfiles 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
- 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
- Start from the current SPSR templates: https://spsr.dfo-mpo.gc.ca/download_sdp_templates
- Generate or align the upload CSV(s) from the same package metadata and data.
- Keep the route-scoped upload file(s) versioned with the package.
- 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
- Upload through the wizard or approved bulk route.
- Review validation output.
- Correct the package and regenerate upload files if needed.
- Resubmit until intake checks pass.
- Record accepted version, intake date, and route notes.