Adaptable Data Collection for Maximum Agency Flexibility


As we started to approach Folio, we had to ask ourselves: How do we design an application that allows for the level of flexibility and adaptability that our agencies need to meet their ever-changing requirements?

Here is our answer: Break apart the investment into its component pieces and manage the data within Folio the same way it is managed within your agencies. It doesn’t make sense for a project manager to go into an investment to make monthly updates to project data; project managers should be able to access their project data directly and manage it as a component of the investment. The data the project manager enters is then aggregated up to the investment level for OMB reporting, or other purposes. This does not preclude data entry at the investment level, but rather provides an alternative mechanism for collecting it from the lower level, as shown below.

Basic data architecture of Folio that shows data flowing from the Project and System at the component level into the Investment at the aggregate level.


What is a “component”?

A component is the type of data set for which your agency wants to track and manage data. Projects and systems are examples of components, but your agency could define components for other elements, such as contracts or IT infrastructure or construction projects. Each component will have a unique template associated with it to track relevant data. In general, components will represent distinct, stand-alone data sets that can be managed on their own.

In the above diagram, there are two components defined: projects and systems. Project A is a component record within the projects component; System A is a record within systems.

What if my agency doesn’t track “systems”?

Then you can create the components that your agency does track! Folio will allow your agency to define what and how you collect the data that is important to your agency. Rather than try to tell you what you can capture, we want to give you the ability to decide for yourself. You could create components for tracking assets, contracts, or pieces of shared infrastructure that are managed separately from investments.

What is the difference between a component and an aggregate?

At the most basic level, not a lot. An aggregate is simply a component that pulls data from another component. In some cases, an aggregate may pull a lot of data from its aligned components (like with investments). In other cases, an aggregate may only pull in a small amount of data, with most of the fields being input directly at the aggregate component level (like in the case of the investment manager above).

Aggregates can have multiple component types and multiple component records aligned to it. The appropriate data from the components will be rolled up into the aggregate based on the aggregate template defined by each agency’s administrator.

How many components and aggregates can my agency define?

The long-term goal is for you and your agency to have the flexibility to define as many as you need. We don’t, however, expect this to happen overnight. A small number of components and aggregates will allow your agency to more effectively transition from eCPIC to Folio, and give you time to evaluate your component and aggregate needs moving forward.