Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/participating student #247

Open
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

coryamanda
Copy link
Collaborator

Description

These models implement the 2030 goals for participating students that we have decided on with Karim. The logic is nuanced, so it's described in the header to each model. Essentially - 5 days of activity in a single course or unit for HS, 1 day for MS/ES. We also need a view that shows daily YOY numbers for each grade band so curriculum can easily see where they are in comparison to previous years.

Definitions: https://docs.google.com/spreadsheets/d/1gZR8yADB-kFoS_Bm6-yRb-SYl7KiNqwNxMvKNKNMeBM/edit?gid=300482234#gid=300482234

Testing story

Links

Jira ticket(s):

Testing story

https://docs.google.com/spreadsheets/d/1M6WplzPxHIVqfMJjA2XozwF_Kz1rlWbQDSm8GRWBrj8/edit?gid=0#gid=0

There have been several versions of this previously but nothing was actually released, so I'm not directly testing an existing source.

QC Check 1: Annual metrics for this measure based on the new course structure compared to the version I gave him based on the old course structure. All metrics 2019-2024 are changed <0.1%. There are some expected changes due to reallocation of some curriculum to the correct grade bands. There are also very small changes (<.05%) in the total # of students that I don't have an explanation for but am not worried about.
https://docs.google.com/spreadsheets/d/1M6WplzPxHIVqfMJjA2XozwF_Kz1rlWbQDSm8GRWBrj8/edit?gid=0#gid=0

QC Check 2:
Please make sure that all of these are valid courses or standalone units. Looks right to me but I am less practiced at this.

select course_or_unit, grade_band, count(*) from {{ref('int_participating_students')}}
group by course_or_unit, grade_band
order by count desc

course_or_unit | grade_band | count
csf | ES | 40999924
csd | MS | 5770887
csp | HS | 1234135
csc k-5 | ES | 398240
csa | HS | 43727
how-ai-works | MS | 34811
csppostap | HS | 16274
csc 6-8 | MS | 6814
foundations of cs | HS | 3082
coding-with-ai | HS | 181
exploring-gen-ai2 | HS | 99
computer-vision | HS | 84
foundations-gen-ai | HS | 68
gen-ai-customizing-pilot-v1 | HS | 66
csa-postap-se-and-computer-vision | HS | 50
exploring-gen-ai1 | HS | 32
computer-vision-pilot | HS | 11
gen-ai-customizing-pilot-v2 | HS | 8
blockchain | HS | 8
gen-ai-humanities | HS | 4

  • Does your change include appropriate tests on key columns?
    eg.
    - not_null
    - unique
    - `dbt_utils.unique_combination_of_columns: , ["value","value","value"...]

Note: when submitting a new model for review please make sure the following have been tested:

  1. The model compiles (dbt build -m 'your_model')
    or: has the dbt Cloud job succeeded?
  2. The model runs (dbt run -m 'your_model')
  3. The model produces accessible data in the DW (select 1 from 'your_model')

Privacy

  • 1. Does this change involve the collection, use, or sharing of new Personal Data? No
  • 2. Do these data exist in the appropriate schema(s)?
  • 3. Does this change involve a new or changed use or sharing of existing Personal Data?
  • 4. Consider: will this data be visible on Tableau? will this data be surfaced in a report exported from Trevor?
  • 5. If yes to any of the above, please list the models, columns, and justification below:
    i.
    ii.
    iii.

PR Checklist:

--> Note: if these are not all checked, the PR will be sent back.

  • Tests provide adequate coverage
  • Privacy and Security impacts have been assessed
  • Code adheres to style guide👀 and is DRY
  • Code is well-commented (**please do not leave extraneous commentary in model code, if it is for the purpose of documentation, please relocate accordingly)
  • Appropriate documentation has been provided (see .yml., did dbt docs generate succeed?)
  • New features are translatable or updates will not break up/downstream models
  • Relevant documentation has been added or updated (i.e. dbt docs has been updated successfully on Github Pages
  • Pull Request is labeled appropriately (eg. chore/, feature/, fix/)
  • Follow-up work items (including potential tech debt) are tracked and linked (if applicable)

- includes changes to course-structure to map to appropriate content areas
- creates 2 reporting tables. TBD if these should be views rather than fct tables
Copy link
Contributor

@nataliazm99 nataliazm99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some comments mostly in the base models, about grouping modular content.
Everything else looks good.

Date: 11/30/24
Purpose: Used for establishing 2030 participating student goals
Description:
This dim file creates a row for each student, grade band, course_or_module and then the qualifying date (1 day for ES, 5 days for HS)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One row by school year?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, one for each school year - will correct that

Purpose: Used for establishing 2030 participating student goals
Description:
This dim file creates a row for each student, grade band, course_or_module and then the qualifying date (1 day for ES, 5 days for HS)
NOTE: int_participating_students can have multiple rows for a given student, school_year, and grade band. This file cannot - we show only their first qualifying date
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First qualifying date for a student by grade band and school year? So, a student can have one record each for different school year-grade band combinations

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I will clarify that

Edit log:

Description
- Unique US students with 1+ touchpoint of ES curriculum + 40% uplift
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does the 40% uplift mean? Is this for this model or for the goals calculation?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

40% is Karim's expectation of how many new students we'll get at the elementary level when we can bring in anonymous students. It's imperfect and will be replaced with actual numbers we get user-reconciled data from statsig. But in the meantime, that 40% bump is baked into both the 2024 numbers and the 2030 numbers, so I want the tables to reflect it so there's less confusion.

when dssla.content_area = 'curriculum_9_12' then 'HS'
else NULL
end grade_band
, case when dssla.course_name like '%special topics' then unit_name
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of the standalone units are different units of the same topic, for example, under the general topic of Exploring Gen AI there are two units, under four scripts:
Unit 1 = foundations-gen-ai and exploring-gen-ai1
Unit 2 = customizing-llms and exploring-gen-ai2
So I would treat all special topics as one course, or classify each of them by grouping the units. Otherwise, you only count students who do five days of each specific unit.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good callout - thank you! Will work on this.

…e and simply making it 5 days of activity within the special topics for that grade band
Copy link
Contributor

@nataliazm99 nataliazm99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good, I left some suggestions for formatting and to add the week number and day of the week to enable easier comparisons

coryamanda and others added 9 commits December 10, 2024 22:06
…ipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…ipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…ipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
…cipating_students.sql

Co-authored-by: Natalia Zacipa Mejia <[email protected]>
Copy link
Contributor

@nataliazm99 nataliazm99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants