Scenario Overview

The Supplemental Nutrition Assistance Program (a.k.a. the Food Stamp Program) helps low-income families supplement their food needs by providing limited funds in order to buy foods necessary for staying healthy.

Using Dynamics 365 and North52's business rules engine solution, this example shows how to set up a Decision Table to evaluate if a person is entitled to Food Assistance under the requirements laid down by the US State of Idaho.

Eligibility Rules

Rule # Description

You must be a Citizen of, or legal immigrant to, the USA.


You must be a resident of the State of Idaho.


With some exceptions, you must work or participate in employment or training.


Your household income must be less than the program income limits for your household size.

These rules are documented on their website:


North52 Decision Suite Solution

The North52 Decision Suite solution works like this:

  • A Formula of type Save - Perform Action is created on the Household Resident entity
  • The Source Properties are set to Employment Status, Current Savings and Monthly Income
  • The Event is set to Create & Update
  • When the relevant fields are changed the Formula executes the Decision logic, using the data from the Household and Household Resident records and determines eligibility 


In this example, the Account entity has been renamed to Household and modified accordingly. Contacts have been renamed as Household Residents that live in that Household


Household Resident

Decision Table

The Household Income requirement states that for every resident after 8 we should add $451 to the max income allowed for 8 residents.

Therefore we use the following formula: 4430 + (451 * ({Household Residents} - 8))

As an example, for 10 residents it would evaluate to 4430 + (451*(10-8)) = $5532 dollars.

Global Calculations

The Global Calculations sheet has 5 calculations to execute as part of decision logic:

  • Resident in Idaho - Checks if the State/Provence field of the Household the Household Resident is living in is set to Idaho
  • Household Income Monthly Savings - Finds and sums up all the monthly income of the Primary Residences 
  • Household Income Monthly Savings - Finds and sums up all the current savings income of the Primary Residences 
  • Household Income Total -  Sums up both the Household Income Monthly Savings and Household  Income Current Savings
  • Household Residents -  Counts how many Household Residents live in the Household.  


Resident in Idaho

In(Upper(FindValue('account','accountid',[contact.n52demo_primaryresidence], 'address1_stateorprovince')),
          'ID', 'IDAHO')

Household Income Monthly Savings

FindSum('contact', 'n52demo_primaryresidence',
  [contact.n52demo_primaryresidence], 'n52demo_monthlyincome', 0)

Household Income Current Savings

  'n52demo_currentsavings', 0)

Household Income Total

GetVar('Household Income Monthly Savings') + GetVar('Household Income Current Savings')

Household Residents 

FindCount('contact', 'n52demo_primaryresidence', [contact.n52demo_primaryresidence], 'contactid')


To test the eligibility rules, change any of the triggering fields: Employment Status, Current Savings or Monthly Income. 

If the conditions mentioned above are met, the Food Assistance field will be set to Yes:

This example uses publicly available information on the owners website and has not been endorsed by the owner of the information.

Did you know?

Decision Tables Simplify Complex Logic

Decision Tables allow you to manage complex business logic without code.  Key features include:

  • Simple visualization in a compact table format
  • Promotes grouping of rules in a single table
  • Business logic can be controlled by domain experts

A Decision Table represents multiple related business rules by using conditions, actions and data values in a spreadsheet-style table. The Decision Table uses columns for the conditions and actions of the rules and rows to represent the associated data values.

Learn more about Decision Tables