Overview

Request Amendment records track potential changes to grants (such as budget or end date) for review. Once changes are approved, WPP staff manually update the grant. I believe the current workflow is for internal staff to create the amendments for grantees–there's a flag on progress reports that grantees set to indicate that a grant might need an amendment.

This Fluxx page covers the Amendments process. Note that WPP uses Option 2: Full Form Modal.

There are two amendment types: 

  • Budget Revision
  • No Cost Extension (NCE)

Review Workflow

The biggest distinction between the two amendment types is the workflow. NCEs go through side-by-side technical review, like progress reports, whereas Budget Revisions go to the finance team first before advancing to program staff. Filters on the 4. Amendments Dashboard are configured to handle both situations.

Budget Revision

Nothing too fancy with this type. Note that Budget Revisions should go to the Finance Team first for approval. 

No Cost Extension (NCE)

The most important distinction about the NCE amendment type is the "due date" consideration. In late 2023, we implemented some changes to simulate a due date for NCEs. See the next section for build details.

Due dates

NCEs are always due 90 days before the grant end date. Without creating a new field or explicitly tracking due dates, we've added support for this via the following tools:

  • Liquid code to display a "due date" (calculated based on the grant end date) in three places:
    • Card view
    • Header
    • Instructions section
  • Email triggers
    • 7 days before due (to grantees)
    • Overdue notice (to WPP)
  • Dashboard filters
    • 4. Amendments Dashboard (WPP staff only)

We use a bit of liquid code to perform a calculation on the due date, which lets us display a "due date" in the record. Expand the section below for details:

Due:{% assign date = model.request.grant_closed_at | date: '%s' %} {% assign seconds = 5184000 %}{{date | date: "%s" | minus: seconds | date: "%B %d, %Y"}}


  1. {% assign date = model.request.grant_closed_at | date: '%s' %} - sets the grant end date as a variable "date"
  2. {% assign seconds = 5184000 %} - sets a variable "seconds" with 90 day offset converted to seconds
  3. {{date | date: "%s" | minus: seconds | date: "%B %d, %Y"}} - displays the date from step 1 MINUS the seconds from step 2 in Month, d, YYY format

Just as the due date we display is calculated off the grant end date, email triggers and dashboard filters use an offset of the grant end date to determine which records meet the criteria. For example, the Amendments dashboard has a card for overdue NCEs, which uses the following criteria:

  • Amendment Type = NCE
  • State = draft
  • (Cross-card filter): grant_closed_at - NEXT N DAYS - 59 (i.e. the grant end date is less than 60 days away, meaning the due date has passed)
  • No labels