How To Set Up A Program: Detailed Instructions



Programs are distinct units of an agency where clients can be referred, enrolled, and receive program-specific services. You can set up programs with their own screens, services, and eligibility requirements. Programs in Clarity Human Services correspond with projects in the HUD HMIS Data Standards, and Project Descriptor Data Elements are recorded within a Program's setup. 

Note: Only users with Manage Agency enabled in their access role may create and edit Programs.

Note that, to complete Program creation, you will need to configure several additional system components:

  • Screens: data collection for programs occurs through screens. Screens are assigned to Program Templates, which are assigned to Programs. Assessment screens can be assigned directly to programs as Program Assessments (described below). Only system administrators can configure screens. Visit the Screens section of our System Administration page for guidance on creating and editing screens. 
  • Program Template: screens are assigned to program templates, and program templates are assigned to programs. Every Program must have a Program template. These templates define the screens assigned to different data collection stages and other elements of the Program. Only system administrators can configure Program templates. See Program Templates for guidance on creating and editing templates. 
  • Services: to record a Service at the Program level, you will first need to create and assign that Service to the Program. For more information on creating and editing services, see Introduction to Services

Create or Modify a Program

To create or modify a Program, ensure that you are in the correct Agency. From the Launchpad, navigate to MANAGE > PROGRAMS > ADD NEW PROGRAM; or, if the Program exists, click the Edit icon to the left of the Program name. 

In addition to the program names, the PROGRAMS tab displays the Project Type, the Program Template currently assigned to the Program, the number of services linked to the Program, and programs with a Status of "Inactive."

Configuring the Program

After providing a name, alias (if applicable), and description (if applicable) for the Program, choose a Program Template. See Program Templates for more information.

Note: Program Name cannot contain the < symbol (e.g. "<Test Program").

Several configuration options are available when creating a program, some of which are associated with the HMIS Data Standards. The options available will depend on whether a custom program screen is associated with the selected Program Template. The options listed here are those included in the system's "HUD HMIS Project Setup" program screen, which contains the necessary fields (HMIS Project Descriptor Data Elements) for complying with the HUD HMIS Data Standards.

Operating Start and End Date: the date the Program started and ended (if applicable) (HMIS Data Elements 2.02). Before you can add an Operating End Date to the system, all clients must be exited on or before the Operating End Date.

Status: an "Active" program is available to users. An "Inactive" program is unavailable to users, but its information is still available in the system.

Funding Source: Refer to the "Assigning Funding Sources to Programs" section below.

Cross Agency Services: see Configuring Cross Agency Services.

Program Type: the type of Program (HMIS Data Element 2.02).

Program Applicability: used for reporting purposes and should match the Program Type

Continuum Project: whether the Program is in the Continuum of Care or not (HMIS Data Element 2.02).

Use Persistent Inventory Calculated Records: toggle on to use Clarity's INVENTORY function; toggle off to collect inventory directly through the Program. Refer to our Options on Collecting Inventory article for additional information.

Site Primary Location: the location of the Program. Refer to Program Setup: Sites for information on adding additional sites or selecting a different Primary location. 

Target Population: the target population of the Program (HMIS Data Elements 2.02).

Method of Tracking: the method by which the Program tracks emergency shelter utilization (Entry/Exit or Night-by-Night). This field only appears when you configure a program with "Emergency Shelter" selected as the Program Type (HMIS Data Elements 2.02).

  • Entry/Exit Method: This method is for shelters requiring an entry, a continuous stay, and an exit. The length of stay is calculated based on the number of nights between program entry and program exit and performance will include changes from program entry and program exit data collection stages. Funder preference for emergency shelter programs is the program entry/exit date method, except for programs where clients are permitted to enter and exit on an irregular basis.
  • Night-by-Night Method: shelters that allow clients to enter and exit on an irregular basis and do not require a continuous stay and must instead rely on tracking bed nights. In this method: (1) all data required to be collected at program entry is collected; (2) the Program records every discrete date or series of dates that the client utilizes a bed; (3) the system maintains historical data on the nights sheltered; (4) the duration of each stay can be accurately determined and aggregated to calculate each client's total length of stay in the Program; and (5) the client may be exited, or the system may be designed to automatically generate an exit after an extended absence. Length of stay is calculated on bed nights used in this method. Using the night-by-night method does not mean that the HMIS must identify a client in a specific bed.

Housing Type: the type of location where housing is provided (if applicable) (HMIS Data Element 2.02).

Geocode: The geocode for the primary location. Geocodes are updated annually and available on the HUD Exchange. Mobile programs (e.g., street outreach) should record the geocode based on the location of their administrative office. Scattered-site housing programs should record the geocode where most beds are located or where most beds are located as of the last inventory update (HMIS Data Elements 2.03).

HMIS Participating Project: if the Program participates in HMIS (HMIS Data Elements 2.02).

Continuum of Care: select the appropriate Continuum(s) of Care. System Administrators maintain Continuum of Care information in System Variables (HMIS Data Elements 2.03).

Public Listing: if "Public," staff members at other agencies can refer clients to the Program. If "Agency," staff members at the Agency can refer clients to the Program. If "None," no one can refer clients to the Program.  

Goals: enabling this setting will allow you to use the Default Goals section in the Program Resources sidebar to add goals for the Program. For more information, see Program Goals.

Auto Service Placement: toggle on this setting to automatically provide specified services to the client upon enrollment. For more information, see Program Auto Service Placements

Eligibility: enables or disables the ability to add criteria for program enrollment using the Program Eligibility section in the Program Resources sidebar. Please refer to Program Setup: Eligibility for more information. If you are using the Housing Inventory functionality, refer to our Inventory and Eligibility article as well.

Link from History: This allows the user to link services listed in the client record HISTORY tab to an enrollment for the Program. For more information, see Linking Service Items to Program Enrollments

Program Assessments: this setting enables the ability to conduct assessments within a Program enrollment. To assign an assessment to the Program, select Program Assessments in the Program Resources sidebar and click ADD ASSESSMENT. The ADD ASSESSMENT pop-up will display a list of assessments that have been enabled, regardless of whether an agency otherwise has access to create that assessment. Make a selection and click ADD.

Agency managers may add an assessment to the Program, but only system administrators may configure the Assessment Screen.  

Program Notes: This allows the user to document client notes within the Program enrollment and share them according to Sharing Settings and Access Roles.

Program Files: This allows the user to upload, view, and manage files within the program enrollment.

Program Charts: provides a visual tracking system of specified variables over time. If this setting is enabled, the Chart Fields section will display when the Program is saved. For more information, see Program Chart Fields.

Aging into Adulthood Notification: This allows System Administrators and Agency Managers to select the timeframe for how soon before a client's 18th birthday the user will see a banner, email, and inbox notification that a client is about to age into adulthood. To make this selection, set the Aging into Adulthood toggle to ON, then select the timeframe from the "Threshold of" picklist.

 Auto Exit Due to Inactivity: provides the ability to automatically record a Program exit for an enrollment when no services or Program-level assessments have been recorded within the client record during a specified timeframe. For more information on the Auto Exit settings, see Program Setup: Automatic Exits

Cascade Enrollment Data: allows client data entered in the Program's enrollment screen to pre-fill other screens in the client record, as long as the enrollment was created within a designated number of days from the current date. After you toggle on this setting, a Threshold of picklist will appear for you to select the number of days. 

  • Data only cascades between matching fields.
  • In cases where multiple assessments or Program enrollments exist, data will cascade from the most recent.

Cascade Assessment Data: allows client data entered in the Program's assessment screen to pre-fill other screens in the client record, as long as the enrollment was created within a designated number of days from the current date. After you toggle on this setting, a "Threshold of" picklist will appear for you to select the number of days. 

  • To cascade data from the assessment screen, you should add the data to the Cascade Assessment section of the Program.
  • Enabling Cascading Assessment Data will result in data cascading between Program enrollments and assessments, based on whichever was created first. If a user creates an assessment first, data from the assessment will cascade into the program enrollment form the next time a new program enrollment is created. If the program enrollment is created first, data will cascade into the assessment the next time a new assessment screen is opened.

In cases where both enrollment data and assessment data are enabled to cascade, and both program and assessment data are eligible to cascade, data will cascade as follows:

  • Program Enrollment is first cascaded.
  • If there is an assessment AFTER the cascaded enrollment that is being cascaded, that assessment will be reviewed for more recent data and will update those specific fields.

Close Services Upon Exit: the system will add an end date to services associated with an enrollment at exit. 

Enrollment Age Warning: This feature is intended to reduce the number of individual enrollments for clients under a certain age. When this setting is enabled, a warning will display when a user attempts to save an individual enrollment for a client whose age is lower than the age threshold.  

Enable All Client Forms: For information on enabling forms, see Enabling Forms for Agencies and Programs

Bed & Unit Inventory: If the Persistent Inventory Calculated Records option (described earlier) is toggled off, a section for bed and unit inventory will be available after you save a residential program. This section, accessed by selecting Bed and Unit Inventory Information from the Program Resources sidebar, contains the following fields:

  • Inventory Start Date: date the inventory first became available.
  • Inventory End Date: date the availability ended. It may be left null.
  • Continuum of Care: the CoC where the beds are located.
  • Household Type: the household type this bed inventory will serve
  • Bed Type: facility-based, voucher-based, other.
  • Availability: year-round, seasonal, etc. 
  • Youth-Veterans: number of beds dedicated to youth-veterans.
  • Any Other Veteran: number of beds dedicated to any other veteran.
  • Any Other Youth: number of beds dedicated to any other youth.
  • Non-Dedicated Beds: number of non-dedicated beds.
  • Total Bed Inventory: calculated number based on dedicated and non-dedicated beds.
  • Total Unit Inventory: number of rooms/apartments/units where the beds are located.

You may add multiple bed inventories as long as the inventories with the same CoC, Household Type, and Availability do not have overlapping dates.

If you change the project type for a Program that has Bed & Unit Inventory, you will see a pop-up notification that the current date will be applied as the end date for all active inventory records associated with that Program. Recommended practice is to create a new Program if the project type changes. However, this update will mitigate inventory issues when a project type is modified for an existing Program.

To better understand the connection between program/bed inventory set up and HMIS Federal reporting, refer to HMIS Bed Inventories, Occupancy, and Reporting.

At the bottom of the screen, links to the Enrollment Screen, Status Screen, Exit Screen, Follow-up Screen, and Program Setup Screen are displayed to allow System Administrators to quickly open the screens being used by the current Program Template. These links are only visible to users with the default System Administrator Access Role.


Documentation Requirements: after you save a Program, the Documentation Requirements section will appear in the Program Resources sidebar. For more information, see Program Documentation Requirements.

Assigning Responsible Staff Members

The system will send certain notifications to staff members assigned as Responsible Staff Members to a program.

To assign a staff member as a Responsible Staff Member:

  • Select Responsible Staff Members from the Program Resources sidebar.
  • Click ADD STAFF.
  • Type the staff member's name, username, or email in the search area. A list of applicable staff members will appear.
  • Choose the appropriate staff member.
  • Click ADD


Assigning Funding Sources to Programs

There are two ways to assign funding sources to a program:

  • Creating a new funding source when creating a new Program.
  • Assigning a previously created funding source within the Program's configuration.

When creating a new Program, select an initial funding source from the Funding Source field picklist. If the existing funding sources do not apply, navigate to the bottom of the picklist options and select the Create New Funding Source option. 

This option allows you to create a new funding source from within the program configuration page. Selecting this option displays a CREATE A NEW FUNDING SOURCE pop-up. After you click ADD, the system creates the new funding source and applies it to the Program. 


To complete the funding source record after creating the Program, navigate to the FUNDING tab, locate the funding source, and complete the data entry. 

To add an already created funding source, select it from the drop-down menu at Program creation or add it to the Funding Sources section after saving. 

Once you have saved a Program, you can add existing funding sources through the Funding Sources section of the Program Resources sidebar.

Adding a Community Queue to a Program

Adding a Queue(s) to a Program allows switching between added Queues within SEARCH > REFERRALS > Availability.

To add a Community Queue to a Program, navigate to MANAGE > PROGRAMS. Select a Program to edit, then select Community Queues in the sidebar and click ADD COMMUNITY QUEUE.


  • All Newly Created Programs will have a Queue connected; most often, the Queue is named Default.
  • You will not be able to add an inactive Community Queue to a Program.

Note: If a Program is connected to all available Queues, the ADD COMMUNITY QUEUE option will no longer be visible.

To delete a Queue from a Program, click MANAGE > PROGRAMS. Select a Program to edit, then select Community Queues in the sidebar and click on the trash can icon next to the Queue you want to delete.


For more information about the Availablity tab, please read Referrals: The Availability Tab.


Restoring Deleted Programs

You can restore deleted Programs using Recover deleted data.


Toggle on the Program (s) you would like to restore and click RESTORE.