Skip to content

Math Course Count Reconciliation

Math Course Count Reconciliation

Date checked: 2026-05-13 Updated: 2026-05-15 (refreshed against the published .dev/published/math-engineering-support artifact for the 2026-2027 catalog build)

Purpose

This note records why the current local Math-profile index count must not be described as “all Math courses offered by Waterloo” without a scope qualifier.

The current local evidence and Waterloo public claims are both real, but they do not yet count the same population.

Current Local Evidence

The current broad local candidate at .dev/math-engineering/candidate-index was built from the current Kuali catalog profile data available to the scraper.

The corresponding validation report records:

  • 352 course details for the Kuali course group named Faculty of Mathematics;
  • 69 program details for the Kuali program group named Faculty of Mathematics;
  • 789 course details for the Kuali course group named Faculty of Engineering;
  • 1,925 course details after adding Engineering and support-subject closure subjects used by Math/Engineering requirements.

The Math group fetch is internally complete for that profile:

  • search matched: 352;
  • detail planned: 352;
  • detail fetched: 352;
  • status: complete.

2026-05-15 Published Index Refresh

Direct counts from .dev/published/math-engineering-support/course-universe.sqlite (index_id: index:67e557ed6ed2fe2bd3a38956:0.1.0:3df2dfae7462, built 2026-05-15 against the 2026-2027 catalog):

MetricValueNote
Total course_listings rows1,925Math-plus-Engineering-plus-support-subject closure
Distinct course_credit_id values1,848Listing-to-credit ratio reflects cross-listings (e.g., CS 246 / CIVE 246)
Faculty-of-Math core subjects total301Sum of: CS (83) + STAT (43) + MATH (40) + CO (38) + AMATH (38) + PMATH (35) + ACTSC (24)
MATH-subject-literal only40”MATH” subject code alone, no other Faculty-of-Math subjects

These numbers refresh — but do not change the conclusion of — the Scope Mismatch section below: the published broad index has 1,925 listings but only 301 of those are Faculty-of-Math core subjects, and only 40 use the literal “MATH” subject code. Waterloo’s public “500+” / “close to 600” claims remain unreconciled against this narrower current-undergraduate Kuali scope.

Therefore the current defensible claim is:

The local candidate includes the complete current-undergraduate Kuali course group named Faculty of Mathematics, as observed by the scraper run that produced .dev/math-engineering/validation/validation-report.md.

It is not yet safe to claim:

The local candidate includes every Math course Waterloo offers across all populations, levels, histories, delivery modes, and catalogs.

Official Public Count Claims

Waterloo’s public pages make broader claims:

These are official Waterloo pages, but they are not necessarily scoped to the same population as the active current-undergraduate Kuali course-group query.

Scope Mismatch

The current scraper count is narrower in at least these likely ways:

  1. It counts active current Kuali undergraduate course details visible through the selected catalog API path.
  2. It counts the specific Kuali group label Faculty of Mathematics.
  3. It does not prove inclusion of graduate course catalogs unless those records are present in the same current Kuali group response.
  4. It does not prove inclusion of historical, inactive, special-topic, online courseware, cross-listed-only, or archived offerings.
  5. It does not prove that Waterloo’s broad public count claims are generated from the same Kuali item population.

The difference between 352 and 500-plus is therefore a release warning, not a license to inflate the index count.

Product Labeling Rule

Until a later source-backed reconciliation closes this gap, product UI and docs must use scope-qualified language:

  • OK: current Math group index;
  • OK: active Kuali Faculty of Mathematics group;
  • OK: Math plus Engineering/support-subject candidate;
  • OK: 1,925 indexed courses in the active broad candidate;
  • Not OK: all Waterloo Math courses;
  • Not OK: complete Faculty of Mathematics universe;
  • Not OK: the 500/600-course Math universe.

The Canva scope label Universe is a product metaphor for the loaded index artifact. It must not be expanded to Math universe or complete Faculty of Mathematics universe until the official institutional count scope is reconciled.

Release Gate

A release candidate may pass with approved_with_warnings if:

  1. The Kuali profile coverage rows are complete for the chosen profile.
  2. The public count-claim mismatch remains visible in validation output.
  3. Product copy does not claim broader coverage than the artifact proves.
  4. The release notes name the loaded profile and its counts.

A release candidate must not be called a complete Waterloo Math universe until one of these source-backed outcomes exists:

  1. The scraper discovers and validates the missing population that reconciles the official 500-plus or close-to-600 claims.
  2. Waterloo publishes a current source that clearly defines the 500-plus claim as a broader population than UWScrape’s v1 target.
  3. UWScrape deliberately expands its index profile to include that broader population and the validation report proves coverage.

Implementation Tasks

  1. Keep docs/qa/math-profile-count-policy.json as the machine-readable source of public count claims.
  2. Keep validation warnings for mismatched public count claims.
  3. Keep the generated release-decision.md and build-report.md profile-scope sections, which print the exact loaded profile, observed group counts, and count-claim mismatches.
  4. Add a visible System disclosure row for index profile name when the backend exposes it.
  5. Do not rename Universe to Math universe until the official count scope is reconciled.