Purpose
Campsul uses BC's Foundational Skills Assessment (FSA) to represent academic performance in a
consistent way across schools, years, and grades. Because government FSA results can appear on
different numeric scales, Campsul standardizes them and converts them into a simple 0 to 100 score.
Data Source
We use the official FSA dataset published by the Government of British Columbia and import it as a raw source.
We focus on:
- SUB_POPULATION:
All Students
- DATA_LEVEL:
School Level
The raw dataset includes:
- School identifiers (district, school number, school name)
- School year and grade
- Skill or subject (Literacy, Numeracy, Reading, Writing)
- Writer and participation fields (expected writers, writers)
- Performance level counts (Emerging / On Track / Extending), where provided
- Average score (the main numeric score used in conversion)
Step 1 - Raw Ingestion
We first load the government dataset into a raw table, keeping original values for traceability.
At this stage, the key numeric field is the government's AVG_SCORE per
school, year, grade, and skill.
Step 2 - Standardizing Different Score Scales to a Common 200 to 800 Scale
2A) Subjects already on 200 to 800
When a subject is already reported on the 200 to 800 scale (commonly Numeracy, and often
Reading or Literacy depending on year), we keep it as-is.
2B) Converting Writing to 200 to 800 (when Writing is rubric-based)
When Writing is reported on a rubric scale (for example, 0 to 4), Campsul applies a linear mapping:
Where:
writing_raw = government's Writing score
writing_max = maximum rubric score (typically 4.0 for a 0 to 4 rubric)
This mapping ensures 0 -> 200 and 4 -> 800.
Step 3 - Creating a Continuous Literacy Series (Year-to-Year Consistency)
3A) If Literacy is reported
We use the published Literacy score directly (on the 200 to 800 scale).
3B) If Literacy is not reported (backcasting)
For earlier years where Literacy is not a single published value, Campsul computes Literacy as an
equal-weight average of Reading and normalized Writing:
This gives one comparable Literacy series across years.
Step 4 - Converting 200 to 800 Scores to a 0 to 100 Score
Once Literacy and Numeracy are on the 200 to 800 scale, Campsul converts them to 0 to 100 using:
We clip results to the range 0 to 100:
- Values below 0 become 0
- Values above 100 become 100
This produces:
- Literacy (0 to 100)
- Numeracy (0 to 100)
Example
If literacy_200_800 = 560:
So Literacy becomes 60/100.
Optional Display Scale (0 to 10)
For some UI components, Campsul may display the same score on 0 to 10:
This is only a display transformation; the underlying value remains the 0 to 100 version.
Assumptions
- Writing rubric maximum is known and fixed. If the government changes rubric limits, conversion constants must be updated.
- Linear mapping for Writing. The rubric-to-200 to 800 conversion assumes equal distance between rubric steps.
- Literacy backcasting uses equal weights. When Literacy is not directly reported, Campsul uses a 50/50 blend of Reading and normalized Writing.
Primary field shown on Campsul school cards: composite_raw_0_100