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.

School-District-Migration-Kit.xlsx

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
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.