feat(tableau): add is_completion_row to ddi_dashboard#3576
feat(tableau): add is_completion_row to ddi_dashboard#3576anthonygwalters wants to merge 2 commits intomainfrom
Conversation
Adds a boolean flag that is TRUE for the single deduplication row per student-assessment: response_type = 'overall' for completed assessments, or NULL response_type for assigned-but-incomplete assessments. Filtering on is_completion_row = TRUE instead of response_type = 'overall' exposes incomplete assessments to Tableau, enabling a simple SUM(is_complete) / COUNT(is_complete) completion rate that responds naturally to any dimension filter (subgroup, school, grade, etc.) without requiring LOD expressions.
|
Claude finished @anthonygwalters's task in 1m 44s —— View job Code Review
SummaryThis is a clean, additive change. The logic is sound and the documentation is well-written. A few observations below. SQL —
|
|
Claude finished @anthonygwalters's task in 3m 0s —— View job Code Review
SummaryClean, purposeful change. The logic is correct and the description is excellent. One fix requested before merge. SQL —
|
|
Claude finished @cbini's task in 2m 0s —— View job Code Review
SummaryThis is the fix requested in the previous review — the change itself is correct. One outstanding item remains before merge. SQL — correct ✓
YAML — fix applied locally, push blockedThe previous review correctly flagged that Please apply this fix manually — move the - name: is_qbl
data_type: boolean
- name: is_completion_row # ← move here
data_type: boolean
description: >-
True for the single deduplication row per student-assessment: the
response_type = 'overall' row for completed assessments, or the null
response_type row for assigned-but-incomplete assessments. Filter on
this field instead of response_type = 'overall' when computing
completion rates so that incomplete assessments are included in the
denominator.
- name: is_passed_iready_2plus_reading_int
data_type: int64And remove it from the end of the file (after AssessmentOne fix before merge — YAML column ordering. Everything else is correct and the implementation logic is solid. |
Adds a boolean flag that is TRUE for the single deduplication row per student-assessment: response_type = 'overall' for completed assessments, or NULL response_type for assigned-but-incomplete assessments.
Filtering on is_completion_row = TRUE instead of response_type = 'overall' exposes incomplete assessments to Tableau, enabling a simple SUM(is_complete) / COUNT(is_complete) completion rate that responds naturally to any dimension filter (subgroup, school, grade, etc.) without requiring LOD expressions.
Pull Request
Summary & Motivation
AI Assistance
Self-review
General
TEAMster Asana Project
feedback; dismiss false positives with a brief reply explaining why.
(Claude is advisory — use your judgement, but don't ignore it.)
Dagster (skip if no Dagster changes)
uv run dagster definitions validatefor any modified code locationuv run pytest tests/test_dagster_definitions.pyfor any modifiedcode location
Library + Config pattern
with the correct asset key format and IO manager
dbt (skip if no dbt changes)
[model_name].ymlproperties file for all new models — seedbt Conventions
exposure
for all models consumed by a dashboard, analysis, or application
(
stg_,rpt_, mart) will break downstream exposures. Coordinate withaffected teams before merging and document your rollback plan in the
summary above.
stage_external_sourcesbeforebuilding — see
SQL conventions
Docs (skip if no schedule, sensor, or integration changes)
catalog:
uv run scripts/gen-automations-doc.pyCLAUDE.mdby running/claude-md-management:revise-claude-mdCI checks
trunk checkandtrunk fmtlocally, fix any issues, and push again.
expand Invoke
dbt build ...→ Debug Logs. Or tag Claude onthe PR with the error details.
change and the PR is not a draft). If it fails: check the Actions tab
for the workflow run logs. Re-run failed jobs if the failure looks
transient; otherwise check the Dagster Cloud branch deployment for
error details. Or tag Claude on the PR for help.
Troubleshooting