PowerSchool SIS Tennessee

Student Course Transcript

Resource Overview

  • Ed-Fi endpoint: /data/v3/courseTranscripts

  • Published view/entity: Student Course Transcript

  • Purpose: The final record of a student's performance in their courses

  • Source query: CourseTranscript

  • Dependencies: studentAcademicRecords

courseTranscript

This resource is the final record of a student's performance in their courses by school year.

Primary PowerSchool Source Data

  • [StoredGrades]

  • [Students]

  • [Courses]

  • [S_TN_USR_X]

  • [S_TN_CRS_X]

Selection Criteria

Records are published if the following criteria are met:

  • The student was published in the Student category.

  • StudentUniqueId must be populated in PowerSchool.

  • The student must not be excluded from state reporting.

  • The student must be enrolled in the district during the school year for the term selected in the PowerSchool UI.

  • The school associated with the stored grades record must not be excluded from state reporting.

  • The section at the school where the grade was recorded must not be excluded from state reporting ("State_ExcludeFromReporting").

  • The stored grades record must not be excluded from transcripts ("excludefromtranscripts").

  • The course must have a valid state course code.

  • The course must not be excluded from printing ("sched_do_not_print").

  • The store code for the grade must be a final grade code for the course term where Storecode is either 'Y1' for a year grade, or matches a term record for the school where [StoredGrades]StoreCode = [Terms]Abbreviation.

  • If the stored grades SectionId is greater than 0, the record is the most recent for the section, student, and store code based on DateStored.

Resource Output

Data Element (Ed-Fi target)

Data View Column Name

Submission

[Table]Field (PowerSchool Source)

Business Rules

Comments

courseReference.educationOrganizationId

LEAOrgID

Y

Staging rule: courseTranscripts

'47'

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: LEAOrgID.

courseReference.courseCode

LocalCourseCode

Y

[Courses]DCID; [CST_PUBCRSTRANSCRIPT_TMP]course_numbe;

Transformation: CST_PUBWORKFLOW_LIB.formaLocalCourseCodeBase(p_profileid, crs.dcid, ct.course_number)

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: LocalCourseCode.

externalEducationOrganizationReference.educationOrganizationId

ExtEduOrgID

Y

[StoredGrades]Sectionid; [StoredGrades]Schoolid;

Transformation: CASE WHEN sg.Sectionid =0 AND sg.schoolid != p_schoolid THEN CST_PUBWORKFLOW.formatLEASchoolID(p_profileid, sg.schoolid) ELSE NULL END

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: ExtEduOrgID.

studentAcademicRecordReference.studentUniqueId

StudentUID

Y

[Students]DCID;

Transformation: EDFI_TN_LIB.getStudentUniqueId(p_profileid, s.dcid)

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: StudentUID.

studentAcademicRecordReference.educationOrganizationId

SubEduOrgID

Y

Staging rule: courseTranscripts

CST_PUBWORKFLOW.formatLEASchoolID(p_profileid, p_schoolid)

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: SubEduOrgID.

studentAcademicRecordReference.schoolYear

SchoolYear

Y

[CST_PUBCRSTRANSCRIPT_TMP]YEARID

Required by the production resource definition when the resource is published.

JSON type: number. Query alias: SchoolYear.

studentAcademicRecordReference.termDescriptor

Term_DX

Y

[CST_PUBCRSTRANSCRIPT_TMP]TERMDESCRIPTOR

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: Term_DX.

courseAttemptResultDescriptor

CourseAttemptResult_DX

Y

[CST_PUBCRSTRANSCRIPT_TMP]COURSEATTEMPTRESULT

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: CourseAttemptResult_DX.

attemptedCredits

AttemptedCredits

Conditional

[StoredGrades]Grade_level; [StoredGrades]Potentialcrhrs;

Transformation: case when sg.grade_level < 9 then '0' else rtrim(to_char(sg.potentialcrhrs,'FM99990.999'),'.') end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: number. Query alias: AttemptedCredits.

earnedCredits

EarnedCredits

Y

[StoredGrades]Grade_level; [StoredGrades]Earnedcrhrs;

Transformation: case when sg.grade_level < 9 then '0' else rtrim(to_char(coalesce(sg.earnedcrhrs, 0),'FM99990.999'),'.') end

Required by the production resource definition when the resource is published.

JSON type: number. Query alias: EarnedCredits.

whenTakenGradeLevelDescriptor

GradeLevel_DX

Conditional

[StoredGrades]Grade_Level; [S_TN_STU_X]TransitionalGrade;

Transformation: EDFI_TN_LIB.getGradeLevelDescriptor(p_profileid, sg.Grade_Level,xts.TransitionalGrade)

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: GradeLevel_DX.

methodCreditEarnedDescriptor

MethodCreditEarnedType_DX

Conditional

[StoredGrades]SectionId; [StoredGrades]Storecode;

Transformation: case when sg.sectionid = 0 and sg.storecode != 'SS' then 'Transfer credit' else 'Classroom credit' end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: MethodCreditEarnedType_DX.

finalLetterGradeEarned

FinalLetterGrade

Conditional

[StoredGrades]Grade;

Transformation: case when trim(sg.grade) IS NOT NULL and REGEXP_LIKE(trim(sg.grade), '^[[:digit:]]+(\.[[:digit:]]+)?$') then case when to_number(trim(sg.grade)) >= 90 then 'A' when to_number(trim(sg.grade)) >= 80 then 'B' when to_number(trim(sg.grade)) >= 70 then 'C' when to_number(trim(sg.grade)) >= 60 then 'D' else 'F' end else trim(sg.grade) end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: FinalLetterGrade.

finalNumericGradeEarned

FinalNumericGrade

Conditional

[StoredGrades]Percent; [StoredGrades]Grade; transformation: case when sg.percent > 0 then to_char(sg.percent) when sg.grade is null then '0' else null end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: number. Query alias: FinalNumericGrade.

courseTitle

CourseTitle

Conditional

[Courses]Course_name; [CST_Pubcourse]TITLE;

Transformation: nvl(trim(crs.course_name),trim(pc.TITLE))

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: CourseTitle.

alternativeCourseTitle

AlternativeCourseTitle

Conditional

[StoredGrades]Course_number; [Courses]Course_number; [Courses]Course_name; [StoredGrades]Course_name;

Transformation: case when trim(sg.course_number) != trim(crs.course_number) then crs1.course_name when trim(sg.course_name) != trim(crs.course_name) then trim(sg.course_name) else null end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: AlternativeCourseTitle.

alternativeCourseCode

AlternativeCourseCode

Conditional

[StoredGrades]Course_number; [Courses]Course_number; [Courses]DCID;

[CST_PUBCRSTRANSCRIPT_TMP]ALT_COURSE_NUMBER;

Transformation: case when trim(sg.course_number) != trim(crs.course_number) then CST_PUBWORKFLOW_LIB.formaLocalCourseCodeBase(p_profileid, crs.dcid, sg.course_number) when ct.ALT_COURSE_NUMBER != trim(crs.course_number) then ct.ALT_COURSE_NUMBER when crs.course_number != CST_PUBWORKFLOW_LIB.formaLocalCourseCodeBase(p_profileid, crs.dcid, crs.course_number) then CST_PUBWORKFLOW_LIB.formaLocalCourseCodeBase(p_profileid, crs.dcid, crs.course_number) else null end

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: AlternativeCourseCode.

externalEducationOrganizationNameOfInstitution

Externalinstitution

Conditional

[StoredGrades]SchoolName

Submit when the source alias is populated and the parent structure is applicable.

JSON type: string. Query alias: Externalinstitution.

earnedAdditionalCredits[].additionalCreditTypeDescriptor

additionalCredit_DX

Y

[S_TN_CRS_X]QualityPoints;

Transformation: CASE WHEN crx.QualityPoints is not NULL then 'Quality Points' END

Required by the production resource definition when the resource is published.

JSON type: string. Query alias: additionalCredit_DX.

earnedAdditionalCredits[].credits

credits

Y

[S_TN_CRS_X]QualityPoints; transformation: CASE WHEN crx.QualityPoints is not NULL then crx.QualityPoints END

Required by the production resource definition when the resource is published.

JSON type: number. Query alias: credits.