Skip to content

User Guide

This guide walks through how to create, configure, test, and publish an eligibility screener using Benefit Decision Toolkit (BDT).


After signing in, you will land on the Screeners view. This page displays all of your existing screener projects and serves as your starting point for creating and managing screeners.

Benefit Decision Toolkit homepage featuring a welcome message and an option to create a new screener. The page includes a navigation bar with options for 'Screeners' and 'Eligibility checks'. There is also a card labeled 'Food & Heating Assistance' with a menu option indicated by three dots.

From here, you can:

  • View all of your existing screeners
  • Open and edit a screener
  • Create a new screener project

Creating a new screener:

Select Create New Screener and provide a name for your screener. The name should clearly reflect the benefit or set of benefits being screened (for example, “Philadelphia Senior Benefits” or “Housing Assistance Eligibility”).

After the screener is created, you are automatically taken to the Screener Dashboard.


When you open a screener project, you are taken to the Screener Dashboard — the central workspace for building and managing your screener.

At the top of the page, the navigation bar contains four tabs representing the main stages of screener development:

  • Manage Benefits — define the eligibility logic for each benefit your screener evaluates
  • Form Editor — build the user-facing form that collects applicant information
  • Preview — test the screener end-to-end before publishing
  • Publish — deploy your screener to a public URL

Work through these tabs in order when building a screener for the first time. The eligibility logic you define in Manage Benefits informs what inputs the Form Editor needs to collect, and both must be complete before Preview and Publish are meaningful.


3. Defining Eligibility Logic (Manage Benefits)

Section titled “3. Defining Eligibility Logic (Manage Benefits)”

The Manage Benefits tab is where you define the eligibility logic used by your screener.

In BDT, a Benefit is a named configuration that evaluates whether a user qualifies for a specific program. When a user submits the screener form:

  1. BDT collects the user’s inputs from the form.
  2. Each configured Benefit evaluates those inputs against its eligibility rules.
  3. Each Benefit returns an eligibility result.
  4. The results are displayed to the user on the form’s results screen.

A single screener can evaluate eligibility for one or multiple benefits. Each benefit’s logic is defined independently, which allows a screener to assess users for several related programs while keeping the eligibility rules for each benefit separate and manageable.

The Manage Benefits tab displays all benefits configured for your screener as a list of cards.

Manage Benefits page of the Benefit Decision Toolkit. The page allows users to define and organize benefits available in their screener, with each benefit having associated eligibility checks. There is a 'Create New Benefit' button at the top. Two benefits are listed: Food Assistance, described as 'Help with affording groceries,' and Heating Assistance, described as 'Discount on PGW bill.' Each benefit has 'Edit' and 'Remove' buttons for managing the entries. The navigation bar at the top includes links to Food & Heating Assistance, Manage Benefits, Form Editor, Preview, and Publish.

From this view, you can:

  • Create a new benefit by selecting Create New Benefit and providing a name and description
  • Edit a benefit by selecting Edit on its card, which opens the Configure Benefit page
  • Remove a benefit by selecting Remove on its card

The Configure Benefit page is where you define the rules that determine whether a user qualifies for a specific benefit. You access it by selecting Edit on any benefit card.

Configure Benefit: Food Assistance page of the Benefit Decision Toolkit. The page allows users to browse and select pre-built eligibility checks to add to the Food Assistance benefit. The interface includes tabs for 'Public checks' and 'Your checks.' The table lists several checks with columns for 'Add,' 'Check Name,' 'Description,' and 'Version.' The checks listed are 'Someone-min-age,' 'Person-min-age,' 'Person-max-age,' 'Owner-occupant,' and 'Person-enrolled-in-benefit,' all with version 0.6.0. There is a 'Back' button in the upper right corner, and the navigation bar at the top includes links to 'Food & Heating Assistance,' 'Manage Benefits,' 'Form Editor,' 'Preview,' and 'Publish.

Each benefit contains one or more Eligibility Checks.

A user is considered eligible for the benefit only if every eligibility check evaluates to True.

An Eligibility Check is a reusable rule component that:

  • Accepts one or more inputs (from the screener form or from configured parameters)
  • Evaluates a defined condition
  • Returns a boolean result (True or False)

By adding multiple eligibility checks to a benefit, you define the complete set of criteria a user must meet to qualify.

Example:

Suppose a benefit requires that applicants be at least 65 years old and live in the state of Pennsylvania. You could configure:

  • A Minimum Age check with a minimum age parameter of 65
  • A State of Residence check with a state parameter of Pennsylvania

If both checks return True, the user is eligible for the benefit. If either check returns False, the user is not eligible.

The left side of the Configure Benefit page displays the list of available eligibility checks. Checks are organized into two categories:

  • Public Checks — prebuilt checks available to all BDT users
  • Your Checks — custom checks that you have created and published

Each row in the list shows the check name, a brief description, and its version. Select Add on any row to add that check to the benefit.

Once added, the check appears as a card in the right panel under the benefit’s configured checks.

A user interface for selecting eligibility checks related to food assistance, featuring a list of available criteria such as person enrolled in benefit, person not enrolled in benefit, lives in Philadelphia Pennsylvania, no ten year tax abatement, and ten year tax abatement. Below this list, the section titled selected eligibility checks for food assistance shows two criteria already chosen: lives in Philadelphia Pennsylvania, and person minimum age with parameters including person ID as applicant, as of date February 28 2026, and minimum age of 18.

Many eligibility checks have parameters — configurable values that control how the check evaluates eligibility. Parameters allow the same check logic to be reused across multiple benefits with different thresholds.

Example: A Household Income Limit check might have a maximumIncome parameter. You set it to 20000 for one benefit and 35000 for another. The underlying rule is the same; only the threshold differs.

To configure the parameters for an added check, click on its card in the right panel. A modal will open showing a form with all of that check’s configurable parameters.

Fill in the value for each parameter and select Confirm to save. Required parameters are marked with a red asterisk (*).

Configure Check: Person-min-age dialog box in the Benefit Decision Toolkit. The dialog box allows users to set parameters for the Person-min-age check. The parameters include PersonId set to 'applicant', AsOfDate set to '02/28/2026', and MinAge set to '18'. The dialog box has Cancel and Confirm buttons at the bottom. The background shows a list of eligibility checks with options to add more checks such as Person-not-enrolled-in-benefit, Lives-in-philadelphia, and Person-min-age with their respective parameters.

To remove an eligibility check from a benefit, select the X button in the top-right corner of that check’s card in the right panel.


The Form Editor tab is where you build the user-facing form that collects the information needed to evaluate eligibility.

The editor provides a visual drag-and-drop canvas powered by Form-JS. You can add, arrange, and configure form fields without writing any code.

Screenshot of the Benefit Decision Toolkit interface showing the Form Editor for a food assistance form. The image highlights the 'Checkbox group' component in the 'Selection' section, indicated by a red circle and an arrow pointing to the 'Checkbox group' option. The form includes fields such as 'Do you live in Philly?', 'Enter your birthday', 'Do you own your house?', and a checkbox for 'Select benefit you are enrolled in'. The interface includes tabs for 'Food & Heating Assistance', 'Manage Benefits', 'Form Editor', 'Preview', and 'Publish'. There is also a 'Save' button and an option to 'Validate Form Outputs'.

Saving your work:

Select Save to persist your form. The save button turns yellow when there are unsaved changes, so you can tell at a glance whether your current edits have been saved.

5.1 Connecting Form Fields to Eligibility Checks

Section titled “5.1 Connecting Form Fields to Eligibility Checks”

For the screener to evaluate eligibility correctly, the form must collect all of the inputs that the configured eligibility checks require. Each form field has a key that identifies the data it collects — this key must match the input name expected by the corresponding eligibility check.

Screenshot of the Benefit Decision Toolkit's Form Editor interface. The form includes a 'Yes/No' component asking 'Do you live in Philly?' with options for 'Yes' and 'No'. The component settings on the right side show the 'Key' field populated with 'simpleChecks.livesInPhiladelphia' and the 'Field label' field populated with 'Do you live in Philly?'. The form also includes fields for entering a birthday, a question about home ownership, and a checkbox for selecting a benefit. The interface includes various input, selection, and presentation components on the left side for building the form. There is a 'Save' button at the top right and a 'Validate Form Outputs' button at the bottom right.

The Validate Form Outputs drawer (accessible via a button at the bottom-right of the editor) helps you verify that your form covers all required inputs. It shows:

  • Form Outputs — a list of all fields currently defined in the form and the data they will collect
  • Missing Inputs — inputs required by your eligibility checks that the form does not yet provide (shown in red)
  • Satisfied Inputs — required inputs that are already covered by form fields (shown in green)

Use this drawer to identify gaps between your form and your eligibility logic, and resolve any missing inputs before moving to the Preview step.

A form outputs section that lists the form outputs such as simpleChecks livesInPhiladelphiaPa, people applicant dateOfBirth, simpleChecks ownerOccupant, and people applicant enrollments. Below that, the missing inputs section indicates all required inputs are satisfied. The satisfied inputs section lists and confirms the inputs including people applicant dateOfBirth, people applicant enrollments, simpleChecks livesInPhiladelphiaPa, and simpleChecks ownerOccupant with their respective data types.


The Preview tab provides a live test environment where you can interact with your screener exactly as an end user would, and verify that the eligibility logic produces the correct results.

The preview screen is divided into two sections:

Form section:

Displays your screener form as it will appear to end users. Fill in the fields and select Submit to run the eligibility evaluation.

Screenshot of the Benefit Decision Toolkit's form preview interface. The form includes several questions: 'Do you live in Philly?' with 'Yes' selected, a field to 'Enter your birthday' with the date '02 01 1990' filled in, 'Do you own your house?' with 'Yes' selected, and a checkbox to 'Select benefit you are enrolled in' with 'Food Assistance' selected. Below the form, the 'Results' section shows the 'Inputs'.

Results section:

After submitting, the results section displays the outcome for each benefit:

  • Eligible (green) — all eligibility checks for the benefit returned True
  • Ineligible (red) — one or more eligibility checks returned False
  • Need more information (yellow) — one or more checks could not determine eligibility from the inputs provided

Results section of a benefits eligibility tool. The Inputs section shows the following data: simpleChecks: { "livesInPhiladelphiaPa": true, "ownerOccupant": true }, people: { "applicant": { "dateOfBirth": "1990-02-01", "enrollments": [ "Food Assistance" ] } }. The Benefits section shows the following eligibility results: Food Assistance: Eligible, lives-in-philadelphia-pa (residence v0.6.0), person-in-phil-age (age v0.6.0), minAge=18, personId=applicant, asOfDate=2026-02-28. Heating Assistance: Eligible, person-enrolled-in-benefit (enrollment v0.6.0), personId=applicant, benefit=Food Assistance, person-min-age (age v0.6.0), minAge=18, personId=applicant, asOfDate=2026-02-28, owner-occupant (residence v0.6.0).

Each benefit’s result also shows a breakdown of how each individual eligibility check evaluated, including whether it passed, failed, or was unable to determine, and what parameter values were used. This detail is useful for debugging eligibility logic during development.

Use the Preview tab iteratively as you build your screener to confirm that each benefit evaluates correctly across a range of test inputs.


The Publish tab is where you deploy your screener to a publicly accessible URL that you can share with end users.

To publish your screener:

Select Deploy Screener. BDT will package your current form and eligibility logic and make them available at a public URL. The URL is displayed on the Publish tab after the first deployment.

The Publish tab shows:

  • Screener URL — the public link where end users can access and submit the screener
  • Last Published Date — the date and time of the most recent deployment

Deploying your screener publishes a snapshot of the current form and benefit configuration. Subsequent edits to the form or eligibility logic are not reflected at the public URL until you deploy again.

If you update your screener after publishing, return to the Publish tab and select Deploy Screener again to push the updated version to the public URL.

The image shows a form and eligibility results for Food & Heating Assistance. The form asks if the user lives in Philly, with "Yes" selected, and prompts the user to enter their birthday, which is filled in as 2/18/1990. It also asks if the user owns their house, with "No" selected, and allows the user to select the benefit they are enrolled in, with "Food Assistance" chosen. The eligibility results section indicates that the user is eligible for Food Assistance, meeting criteria such as residence in Philadelphia and being at least 18 years old. However, the user is ineligible for Heating Assistance because, although they meet age and enrollment criteria, they do not meet the owner-occupant residence requirement.