Note · This applies to the v4x series. Click here for overall docs →


Integrating Models

Hooks is a key feature to the Standard Model that makes the Bring Your Own Model functionality work. Here's how it works to make the process of integrating Foresight modules, custom revenue models, and non-Foresight models as easy as possible.

Note, this sheet was deprecated in v5 of the Standard Model base.

Hooks, or formerly known as Modelhooks, is part of the functionality that powers the modularity of the Standard Model, allowing you to bring your own model ("BYOM") or build your own revenue and expense forecasts into the model with a minimum of integration effort. [1]

In Standard Model v3 versions, the sheet is called Modelhooks, in v4 and above, it is called Hooks. In v4, some of the links from Modelhooks were moved to Forecast for a better and more flexible user experience, and Hooks was expanded to cover core model calculations as well as importing Actuals and external data.

Why does this sheet exist?

The problem with financial model templates has always been that they do some things you need, but not everything, and it can be incredibly hard to modify them to do what you want. One of the reasons for that is because modeling the revenues for a business - the sales methodologies, the growth engine, what is sold and how it's sold, etc. - can be incredibly specific to each business, and it's very hard to build a model that can work for a wide variety of businesses.

That's why I've worked to build a modular model - a standardized financial core with an easy methodology to integrate with any revenue forecast - to help solve the problem with financial model templates, and to make it as easy as possible for you to use a template and minimize the amount of time you have to spend to make it work for you.

How to use

The Hooks sheet performs three key tasks in linking the two components together:

  1. Exposes key integration points into the financial model that allows you to feed custom calculations into the model without having to figure out all the integration points, making that typically hours-long process simple and efficient,
  2. Providing inputs for operating metrics and actual financial results, so that the model can store and report on any operating metric and create rolling forecasts, respectively,
  3. Provide a single source for many calculations that link the components together, creating a single source of reference for many items that need to be reused in the model across sheets and across the two components.

The Hooks sheet can be safely hidden once the model is setup, but should not be deleted.

Pulling in Historical Financials

Hooks is also used to pull in actual financial and operational metrics to create either a) rolling forecasts that combine the forecast and the actuals (prebuilt), or b) budget variances comparing the actuals with the forecast (custom). For details on that, visit Actuals and Rolling Forecasts ›

In practice, I use the Hooks sheet whenever I build a custom revenue model or pull in actual financials, and then once it's setup, I hide the sheet until I need to use it again, as it is more of a data integration tool than a reporting tool.

How it works

The sections are organized into sections for financial metrics, operating metrics, a number of optional financial calculation hooks, and the actuals reporting inputs. All inputs are labeled by the usual formatting system - blue text, grey background - and link into other parts of the model.

If you are adding a custom calculation that will link into Hooks, the standard methodology is to create those calculations on another sheet of the model, and then link them into the relevant lines on the Hooks sheet.


There are extensive opportunities for inputs on this sheet, but all are optional, and mostly used for cases where you want to build new logic feeding into specific balance sheet accounts.

Common Modifications

There are few modifications to this sheet, but there is often extensive use of it during setup to set the operating metrics, and ongoing use to input the actual financial results.

One of the few modifications of the structure is when people add additional revenue or expense categoris to the Forecast sheet, they will most often want to make a matching edit to add in the same lines into the actuals section on the Hooks sheet, so that each expense that is forecasted on the Forecast sheet has a matching "actual" input on the Hooks sheet. If you insert rows on the Forecast sheet, insert the same number of rows in the same place on Hooks, and copy the formulas from an adjacent row into the new rows, and you should be set; be sure to check the formulas to make sure the row references are correct.

  1. Not to be outdone, the Starter Model also allows you to integrate Foresight add-ons, custom revenue models and non-Foresight models into the costs and financial statements. It's not as apparent or as simple as the Hooks or Modelhooks functionality built into the Standard, but the simplicity of the revenue projections in the Starter make it very easy for you to add in new sheets - or copy sheets from external models - and feed your revenue projections into the revenue lines on the Forecast sheet. Additional integration may be necessary, perhaps for businesses with inventories, or subscription revenue models with deferred revenue liabilities, or other revenue models with balance sheet impacts, but if you can handle the accounting, it's still a fairly easy process. The Hooks/Modelhooks sheet in the Standard makes the integration process very easy (and automatic if you're using a Foresight model), and thus most of the documentation centers on the Standard, but it's still possible to build modular models with the Starter Model as a base. And yes, the term "modelhooks" is heavily inspired by webhooks and the broader concept of hooks and computer programming. ↩︎