Food Service Extract Configuration

Tool Search: Data Extract Utilities

This guide outlines how to use the Data Extract Utilities tool to create a data extract for use with food service/Point-of-Sale systems. This extract provides student demographic, enrollment, homeroom, contact, address, and meal eligibility data so the system can match patrons and manage purchases.

Create the Food Service Extract

  1. Select the New icon.
  2. Select the Extract option and click Submit. A series of editors will appear. 
  3. Enter Admin/Vendor Provided Data. The credentials for this process must be obtained from your food service/POS system. These credentials usually include username, password, server (IP Address or server name), port number, and sometimes the path directory.
  4. Select an Extract Method of SQL
  5. In the SQL/Prism field, enter EXEC get_foodservice
    • This stored procedure accepts two parameters:
    • ParameterTypeDefaultDescription
      @dateVARCHAR(10)Today's dateDetermines homeroom resolution AND which meal eligibility record is active
      @includeSSNBIT1When 0, both student and guardian SSN fields return NULL
  6. Give it an Extract Instance Name (i.e., Food Service Extract). 
  7. Determine the Output File Name
  8. Fill out the rest of the File Information fields (as applicable). 
  9. Determine the File Extract Format. Field definitions can be found on the Data Extract Utilities article
  10. Set the Data Extract Schedule.
  11. Click the Save icon when finished. 

At this time, a user can select the appropriate buttons to test the extract, test the database connection, or run the extract. Extracts will display in a new window in the selected format. 

  • The Test Extract button generates the requested information using SQL or Ad hoc. Data is not written to the database or stored anywhere.
  • The Test Connection button checks the connection to the entered server by attempting to write a 1-byte file to the configured location. If it is successful, a success ribbon is displayed; if it is unsuccessful, a pop-up with the reason the connection failed is displayed.
  • The Run Extract button runs the extract, sends and stores the file where needed (in case of an issue with an auto-run extract).

Example executions

ExampleDescription

EXEC get_foodservice

Get today's snapshot with SSNs included (default behavior)

EXEC get_foodservice @includeSSN = 0

Get today's snapshot without SSNs (privacy-safe for sharing with food service vendor)

EXEC get_foodservice @date = '10/01/2025', @includeSSN = 1

Get a snapshot for a specific date with SSNs

EXEC get_foodservice @date = '10/01/2025', @includeSSN = 0
Get snapshot for a specific date without SSNs
EXEC get_foodservice @date = '07/01/2025'
Verify meal status for the start of a new eligibility period
EXEC get_foodservice @date = '03/15/2026', @includeSSN = 0
Check what the extract looked like on a past date (useful when a vendor says data was wrong)

How it functions

  1. Finds each student's "best" enrollment for the active school year: prioritizes Primary service type (P) over Secondary, then the most recent start date. Excludes summer school calendars and no-show enrollments.
  2. Resolves the student's primary household by selecting the household where the student is an active member, and, if available, the non-secondary household with a guardian relationship.
  3. Resolves the primary contact/guardian from the chosen household, picks the first guardian in the relatedPair table who is also a current household member.
  4. Resolves the mailing address: from the student's active household locations, prefers the primary household's mailing address, then falls back on the secondary flag.
  5. Resolves the homeroom section for @date: walks the schedule structure (roster > section > placement > period > day) to find the section the student is rostered into on the given date, prioritizing courses flagged as homeroom or homeroom sections, then by period sequence.
  6. Resolves the student's meal eligibility from the poseligibility table: finds the eligibility record for the active school year where the @date falls within the record's start/end date range. If multiple records overlap, it takes the most recent by start date. If no record exists, defaults to 'S' (standard/full pay).

Data fields

The data extracted will include the following fields in this order:

ColumnSourceMeaning
StudentDistrictIDperson.studentnumberDistrict-assigned student number
StudentSSNidentity.ssnStudent's Social Security Number
Returns NULL when @includeSSN = 0
StudentStateIDperson.stateIDState-assigned student identifier
StudentEnrollmentStatusComputed from enrollment.enddate1 = currently enrolled (end date is today or later), 0 = enrollment has ended
StudentSiteCodeschool.numberSchool's numeric code
StudentDistNumdistrict.numberDistrict's numeric code
StudentHomeroomroom.name (from resolved section)Name of the homeroom; defaults to 'NHR' if no homeroom is resolved
StudentHomeRoomTeacherLastnameidentity.lastname (teacher)Homeroom teacher's last name
StudentHomeRoomTeacherFirstnameidentity.firstname (teacher)Homeroom teacher's first name
StudentLastNameidentity.lastnameStudent's last name
StudentFirstNameidentity.firstnameStudent's first name
StudentMiddleNameidentity.middlenameStudent's middle name
StudentBirthdateidentity.birthdateFormatted MM/DD/YYYY, trimmed
StudentGenderidentity.genderGender code (typically M/F)
StudentGradeLevelenrollment.gradeGrade level from the enrollment record
StudentRaceidentity.raceEthnicityRace/ethnicity code
StudentEmailv_Contact.emailStudent's email from the contact view
StudentPrimaryContactLastNameidentity.lastname (guardian)Guardian's last name
StudentPrimaryContactFirstNameidentity.firstname (guardian)Guardian's first name
StudentPrimaryContactRelationshiprelatedPair.nameRelationship label (e.g., "Mother", "Father")
StudentPrimaryContactSSNidentity.ssn (guardian)Guardian's SSN
Returns NULL when @includeSSN = 0
StudentPrimaryContactEmailv_Contact.email (guardian)Guardian's email
StudentPrimaryWorkPhonev_Contact.workphone (guardian)Guardian's work phone
StudentPrimaryContactCountyaddress.countyCounty of the mailing address
StudentPrimaryContactStreetAddressComputed from address fieldsFull street address; handles PO Box vs. standard format (number + prefix + street + tag + dir + apt)
StudentPrimaryContactCityaddress.cityCity
StudentPrimaryContactStateaddress.stateState code
StudentPrimaryContactZipaddress.zipZIP code
StudentPrimaryContactPhoneNumberhousehold.phoneHousehold phone number (empty string if null)
StudentMealStatusposeligibility.eligibility
Meal eligibility code. Common values: 'F' = Free, 'R' = Reduced, 'S' = Standard/Full Pay (default if no record found)