Upgrading to School District Profile V4
Introduction
ATTOM is pleased to announce a significant enhancement to the school district data available via ATTOM API brought about by switching to a new source already being used by other ATTOM products. Because we are making what we consider a breaking change to the endpoints, they are being deployed as a new version.
- We have moved to a new source for school district data that increases the amount and quality of data we can make available in ATTOM API.
- New geocodes used to reference the school districts have been updated to adopt the new geocode standard (geoIdV4)
New Data
School District Profile
The new version of the school profile endpoint adds 155 new fields, including:
- A dissection of various sources of revenue from local, state, and federal government programs
- A categorization of capital expenditure
- A dissection of operating expenses into various categories
Endpoints Affected
The following endpoint is impacted by this change
Name | Original Endpoint | New Endpoint |
School District Details | /propertyapi/v1.0.0/school/districtdetail | /v4/school/district |
Example
The following call requests school profile data for Albertville City School District (geoIdV4: 8370d93a17ba7fb07f115392bd1225d9)
https://api.gateway.attomdata.com/v4/school/district?geoIdV4=8370d93a17ba7fb07f115392bd1225d9
{ "status": { "version": "4", "code": 0, "msg": "SuccessWithResult", "total": 1, "page": 1, "pageSize": 1, "transactionID": "d0165859a4b9952f47a107863195f794" }, "district": { "location": { "geoIdV4": "8370d93a17ba7fb07f115392bd1225d9", "latitude": 34.268289, "longitude": -86.209263, "addressLine1": "107 W Main St", "city": "Albertville", "stateCode": "AL", "zipCode": "35950", "stateFIPs": "01", "countyFIPs": "095", "countyName": "Marshall" }, "detail": { "ncesSchoolDistrictId": "0100005", "stateSchoolDistrictId": "AL-101", "schoolDistrictName": "Albertville City School District", "phone": "2568911183", "schoolDistrictUrl": "http://www.albertk12.org", "mailAddressLine1": "107 W Main St", "mailCity": "Albertville", "mailStateCode": "AL", "mailZipCode": "35950", "status": "Operational", "sourceType": "Regular", "supervisoryType": "Regular public school district that is not a component of a supervisory union", "functionalStatus": "Active government providing special-purpose functions", "level": "Unified", "gradeSpanLow": "PK", "gradeSpanHigh": "12", "charterDesc": "None", "schoolCnt": 6, "teacherCntFte": 301.5, "studentCnt": 5842, "gradedStudentCnt": 5842, "ungradedStudentCnt": 0, "urbanCentricLocaleType": "Town - Distant", "urbanCentricCommunityType": "Town", "pkTeacherCntFte": 3, "kgTeacherCntFte": 27, "elementaryTeacherCntFte": 147.5, "secondaryTeacherCntFte": 124, "ungradedTeacherCntFte": 0, "teachersAideCntFte": 15.4, "coordinatorSupervisorCntFte": 0, "elementaryCounselorCntFte": 7, "secondaryCounselorCntFte": 6, "otherCounselorCntFte": 0, "totalCounselorCntFte": 13, "librarianMediaSpecCntFte": 6, "libraryMediaSupportCntFte": 3, "districtAdminCntFte": 7, "districtAdminSupportCntFte": 22, "schoolAdminCntFte": 29, "schoolAdminSupportCntFte": 13, "studentSupportCntFte": 9, "otherSupportCntFte": 47, "totalPerPupilExpenditureAmt": 8510, "perPupilExpInstrPct": 57.6, "perPupilExpSuptSvcsPct": 10.2, "perPupilExpAdminPct": 10, "perPupilExpOtherPct": 22.2, "totalRevenueAmt": 60116000, "totalFederalRevenueAmt": 7939000, "fedRevStTitleIAmt": 2439000, "fedRevStCwdiAmt": 1134000, "fedRevStMathSciTchQltyAmt": 240000, "fedRevStDrugFreeSchoolsAmt": 0, "fedRevStVocTechEdAmt": 101000, "fedRevStBilingualEdAmt": 103000, "fedRevStOtherAmt": 412000, "fedRevStChildNutrActAmt": 3467000, "fedRevNonspecAmt": 0, "fedRevDirectImpactAidAmt": 0, "fedRevDirectIndianEdAmt": 0, "fedRevDirectOtherAmt": 43000, "totalStateRevenueAmt": 36177000, "stRevGeneralFormulaAssistAmt": 29411000, "stRevStaffImprovementProgAmt": 78000, "stRevSpecialEdProgAmt": 0, "stRevBasicSkillsProgAmt": 293000, "stRevBilingualEdProgAmt": 97000, "stRevGiftedTalentedProgAmt": 0, "stRevVocEdProgAmt": 0, "stRevSchoolLunchProgAmt": 0, "stRevCapOutDebtSvcsProgAmt": 1555000, "stRevTransProgAmt": 2275000, "stRevOtherProgAmt": 2468000, "stRevNonspecAmt": 0, "stRevObEmpBenefitsAmt": 0, "stRevObNotEmpBenefitsAmt": 0, "totalLocalRevenueAmt": 16000000, "locRevPropertyTaxAmt": 5787000, "locRevGeneralSalesTaxAmt": 0, "locRevPublicUtilityTaxAmt": 0, "locRevIndivCorpIncomeTaxAmt": 0, "locRevOtherTaxAmt": 430000, "locRevOtherSchSystemsAmt": 17000, "locRevFromCitiesCountiesAmt": 5400000, "locRevTuitionFeeAmt": 93000, "locRevTransportationFeeAmt": 0, "locRevSchoolLunchAmt": 232000, "locRevTextbookSalesRentalsAmt": 0, "locRevDistActivityReceiptsAmt": 1631000, "locRevStudentFeesNonspecAmt": 0, "locRevOtherSalesSvcsAmt": 366000, "locRevRentsRoyaltiesAmt": 122000, "locRevPropertySaleAmt": 78000, "locRevInterestEarningsAmt": 345000, "locRevFineForfeitAmt": 2000, "locRevPrivContribAmt": 131000, "locRevMiscAmt": 1366000, "totalExpenditureAmt": 55237000, "totalCurExpElemScdyEdAmt": 49715000, "totalCurExpInstrAmt": 28612000, "curExpInstrAmt": 28612000, "paymentsToPrivateSchoolsAmt": 0, "paymentsToPublicSchoolsAmt": 0, "totalCurExpSuptSvcsAmt": 17262000, "curExpSuptSvcsPupilsAmt": 3619000, "curExpSuptSvcsInstrStaffAmt": 1453000, "curExpSuptSvcsGenAdminAmt": 1470000, "curExpSuptSvcsSchAdminAmt": 2652000, "curExpSuptSvcsPlantOpsAmt": 4401000, "curExpStudentTransAmt": 2796000, "curExpBusCentralOtherAmt": 871000, "curExpSuptSvcsNonspecAmt": 0, "totalCurExpOtherElemScdyAmt": 3841000, "curExpFoodSvcsAmt": 3841000, "curExpEnterpriseOpsAmt": 0, "curExpOtherElemScdyAmt": 0, "totalNonElemScdyExpAmt": 949000, "nonElemScdyExpCommSvcsAmt": 150000, "nonElemScdyExpAdultEdAmt": 198000, "nonElemScdyExpOtherAmt": 601000, "totalCapOutlayExpAmt": 2750000, "capOutConstructionAmt": 2351000, "capOutLandExistingStructsAmt": 0, "capOutInstrEquipAmt": 120000, "capOutOtherEquipAmt": 279000, "capOutNonspecEquipAmt": 0, "paymentsToStGovtAmt": 0, "paymentsToLocGovtAmt": 0, "paymentsToOtherSchSystemsAmt": 86000, "interestOnDebtAmt": 1737000, "totalSalariesAmt": 26349000, "salariesInstructionAmt": 16897000, "teacherSalRegEdAmt": 13210000, "teacherSalSpecEdAmt": 838000, "teacherSalVocEdAmt": 1089000, "teacherSalOtherEdAmt": 505000, "salSuptSvcsPupilsAmt": 2091000, "salSuptSvcsInstrStaffAmt": 794000, "salSuptSvcsGenAdminAmt": 752000, "salSuptSvcsSchAdminAmt": 1842000, "salSuptSvcsPlantOpsAmt": 1014000, "salSuptSvcsStudTransAmt": 1308000, "salSuptSvcsBusOtherAmt": 530000, "salFoodSvcsAmt": 929000, "totalEmpBenefitsAmt": 10588000, "empBenInstructionAmt": 6508000, "empBenSuptSvcsPupilsAmt": 780000, "empBenSuptSvcsInstrStaffAmt": 293000, "empBenSuptSvcsGenAdminAmt": 219000, "empBenSuptSvcsSchAdminAmt": 686000, "empBenSuptSvcsPlantOpsAmt": 458000, "empBenSuptSvcsStudTransAmt": 878000, "empBenSuptSvcsBusOtherAmt": 163000, "empBenFoodSvcsAmt": 555000, "empBenEnterpriseOpsAmt": 0, "textbooksAmt": 395000, "longTermDebtFyStartAmt": 28876000, "longTermDebtIssuedFyAmt": 2017000, "longTermDebtRetiredFyAmt": 2634000, "longTermDebtFyEndAmt": 28259000, "shortTermDebtFyStartAmt": 0, "shortTermDebtFyEndAmt": 0, "assetsSinkingFundAmt": 9516000, "assetsBondFundAmt": 738000, "assetsOtherFundsAmt": 8987000, "blueRibbon2003CurrentCnt": 0, "charterSchoolCnt": 0, "magnetSchoolCnt": 0, "vocationalEducationSchoolCnt": 0, "enrollPk": 113, "enrollKg": 443, "enrollG01": 480, "enrollG02": 493, "enrollG03": 435, "enrollG04": 473, "enrollG05": 439, "enrollG06": 452, "enrollG07": 469, "enrollG08": 439, "enrollG09": 421, "enrollG10": 427, "enrollG11": 384, "enrollG12": 374, "enrollUngraded": 0, "priorYearStudentCnt": 5824, "studentYearlyChangeCnt": 18, "studentYearlyChangePct": 0.3, "vocationalEducationInd": "Y", "specialEducationInd": "Y", "adultEducationInd": "Y", "bilingualEducationInd": "Y", "popAge5_17BelowPovertyLevelPct": 22.05, "schoolDistrictRating": "B-", "updatedate": "2022-07-04T11:05:59.133" }, "testScores": [ { "year": 2019, "subject": "Reading", "grade": "03", "score": 39.6, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "HS", "score": 38.8, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "08", "score": 50.49, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "07", "score": 43.07, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "05", "score": 40.77, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "06", "score": 41.67, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "03", "score": 61.16, "institutionType": "District" }, { "year": 2019, "subject": "Math", "grade": "04", "score": 41.61, "institutionType": "District" }, { "year": 2019, "subject": "Science", "grade": "05", "score": 31.66, "institutionType": "District" }, { "year": 2019, "subject": "Science", "grade": "07", "score": 35.41, "institutionType": "District" }, { "year": 2019, "subject": "Science", "grade": "HS", "score": 37.22, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "04", "score": 40.9, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "05", "score": 38.78, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "08", "score": 37.65, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "HS", "score": 31.23, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "06", "score": 39.14, "institutionType": "District" }, { "year": 2019, "subject": "Reading", "grade": "07", "score": 35.56, "institutionType": "District" } ] } }
Migration Process
The following outlines the series of steps necessary to upgrade applications from the previous version of Property Detail with Schools to V4. It is important these changes be made as soon as possible as the older versions are being deprecated. It is likely that the older versions of Property API endpoints will stop working after June 30, 2023.
Note: There is no V2 or V3 for this endpoint. We adopted V4 for all changes being made across the ATTOM API.
The following are suggestions for migrating existing projects that use ATTOM's School District Detail endpoint from V1 to V4.
- 1
-
Identify calls to Property Detail with Schools
Identify all the places in your code in which a call is made to the Property Detail with Schools V1 endpoint
- /propertyapi/v1.0.0/school/districtdetail
- 2
-
Change endpoint path
The endpoint paths should be changed to v4 (or higher) and the endpoint name should be mapped to the new name
Original Endpoint V4 Endpoint /propertyapi/v1.0.0/school/districtdetail /v4/school/district - 3
-
Change logic for geocodes
If your applications make use of the geocodes returned for either the school or school district, make changes to use the new geoIdv4 that is now being returned. New versions of school and school district endpoints will only support the use of these new geocodes.
- 4
-
Make changes to business logic
Check the attached spreadsheet to determine if any of the fields returned are listed as having changed in some way. If they are, you will need to adjust the application's business logic to reflect the nature of the change.
The following is a summary of the options provided in the above spreadsheet for each field
Category | Action | Number of Fields |
Name Change Only | Change logic to extract value from the endpoint using the new field name | 38 |
Field Value Change | Change logic and/or display to match the new format of the data | 8 |
Removed Field | No equivalent is available. Evaluate the option of removing data from display or calculations | 44 |
New field | Decide if you wish to take advantage (at this time) of the many new fields added. | 155 |