Learn how to create a Direct Cash Flow Statement by utilizing the Custom Table and Drivers solution within Jirav
The default Cash Flow Statement available under Jirav's Report Section is automatically calculated using the indirect method. While the Indirect Cash Flow Statement emphasizes the relationship between Net Income and cash generated from operations, investing and financial activities making it easier for analysts to understand how cash flow correlates with earnings, the Direct Cash Flow Statement provides detailed information about cash transactions and is generally considered clearer for understanding cash flows by focusing on Cash inflows and outflows directly.
Learn more about the Indirect Cash Flow Statement.
This article provides a guide on how to build the Direct Cash Flow using the Custom Table and Drivers in Jirav by including the following model assumptions:
- Direct Cash Flow is built to present forecasted Cash inflows and Outflows, not Actuals
- Direct Cash Flow is created for the SaaS company where Revenue (MRR) is planned based on forecasted New Business Bookings coming from the Sales Quota Model and Salesforce Pipeline
- Accounts Receivable are increased by total Billings which equals Total Bookings
- Accounts Receivable are paid according to the below A/R payment delay assumptions:
- 80% of A/R is collected with Net 30 days delay
- 20% of A/R is collected with Net 60 days delay
- Deferred Revenue is increased by Total Billings which equals Accounts Receivable Increase
- Deferred Revenue is decreased by Total Revenue Recognized
Additional Resources:
To finalize the Direct Cash Flow developed within the Custom table and present it in the Reports section, the following steps must be undertaken:
- Step 1: Define the Direct Cash Custom Table to hold the Cash Inflows and Outflows
- Step 2: Add Drivers to the Direct Cash Custom Table
- Step 3: Confirm that Cash Check equals $0
- Step 4: Add a Custom Report type to present the Direct Cash Flow
Step 1: Define the Direct Cash Custom Table to hold the Cash Inflows and Outflows
Click on the icon next to Sections or navigate to Settings ⚙️ > Custom Tables > Select the icon to add a new Custom Table and name it "Direct Cash".
Then select Add Line to create a Section with the corresponding New Lines as shown below.
The Cash Inflows Section should include main Cash arrivals like Accounts Receivable Collection, Loan Draw, and Equity inflows.
The Cash Outflows Sections should maintain major Cash Spend values such as Cost of Sales, Operating Expenses, purchases of Fixed Assets and Loan Payments.
Other Cash Section will include all the remaining Balance Sheet movements which are not so meaningful for Cash presentation. That Section can be also treated as a "plug-in" as all the Cash Inflows & Outflows not included under the two first Sections will be presented here.
The Cash Section should house Cash, Beginning of Period, Change in Cash and Cash, End of Period Lines.
Step 2: Add Drivers to the Direct Cash Custom Table
Navigate to the Plan area by clicking on the . Go to the newly created Direct Cash Custom table and click on the . . . next to the first Custom line to add a Plan Driver.
As mentioned under Assumptions listed under this Direct Cash consideration, the calculations are applied to the Forecasted Period, hence Cash Inflows, Cash Outflows and Other Cash planning should be based on Plan Drivers, not Global.
Learn more about the differences between Global Drivers vs. Plan Drivers.
Include below formulas under Plan Drivers for each Custom Line:
Cash Inflows
- AR Collection
- Driver AR billings:
Input 1 = Category: Assets $ | Account: Accounts Receivable | Line Type: Driver Increase | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver AR payments:
Input 1 = Category: Assets $ | Account: Accounts Receivable | Line Type: Driver Decrease | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1 - Driver Deferred Revenue decrease:
Input 1 = Category: Liabilities $ | Account: Deferred Revenue | Line Type: Driver Decrease | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1 - Driver Deferred Revenue increase:
Input 1 = Category: Liabilities $ | Account: Deferred Revenue | Line Type: Driver Increase | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver Revenue:
Input 1 = Category: Revenue $ | Department: All | Account: All | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1
- Driver AR billings:
- Loan Draw
- Driver Notes Payable increase:
Input 1 = Category: Liabilities $ | Account: Notes Payable - Non Current | Line Type: Driver Increase | Range: This Month | Reduction: Sum (use the right Account from your Chart of Accounts that is used for Loan Draw recognition)
fx = x
Input 2 = Constant 1
- Driver Notes Payable increase:
- Series C
- Driver Series C increase:
Input 1 = Category: Equity $ | Account: Series C | Line Type: Driver Increase | Range: This Month | Reduction: Sum (use the right Account from your Chart of Accounts that is used for Inflow from Equity)
fx = x
Input 2 = Constant 1
- Driver Series C increase:
- Other
- Driver All Other Income:
Input 1 = Category: Other Income & Expense $ | Department: All | Account: All Other Income | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1
- Driver All Other Income:
Cash Outflows
- Cost of Sales
- Driver CoS x (-1):
Input 1 = Category: Cost of Sales $ | Department: All | Account: All | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1
- Driver CoS x (-1):
- OpEx
- Driver Change in Accounts Payable:
Input 1 = Category: Liabilities $ | Account: Accounts Payable | Line Type: Subtotal | Range: This Month | Reduction: Sum
fx = -
Input 2 = Category: Liabilities $ | Account: Accounts Payable | Line Type: Subtotal | Range: Last Month | Reduction: Sum - Driver Change in Accrued Bonus:
Input 1 = Category: Liabilities $ | Account: Accrued Bonus | Line Type: Subtotal | Range: This Month | Reduction: Sum
fx = -
Input 2 = Category: Liabilities $ | Account: Accrued Bonus | Line Type: Subtotal | Range: Last Month | Reduction: Sum - Driver Change in Accrued Commission:
Input 1 = Category: Liabilities $ | Account: Accrued Commission | Line Type: Subtotal | Range: This Month | Reduction: Sum
fx = -
Input 2 = Category: Liabilities $ | Account: Accrued Commission | Line Type: Subtotal | Range: Last Month | Reduction: Sum - Driver Change in Prepayments:
Input 1 = Category: Assets $ | Account: Prepaid Expenses | Line Type: Subtotal | Range: Last Month | Reduction: Sum
fx = -
Input 1 = Category: Assets $ | Account: Prepaid Expenses | Line Type: Subtotal | Range: This Month | Reduction: Sum - Driver OpEx x (-1):
Input 1 = Category: OpEx $ | Department: All | Account: All | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1
- Driver Change in Accounts Payable:
- Fixed Assets Purchases
- Driver Computer Equipment increase:
Input 1 = Category: Assets $ | Account: Computer Equipment | Line Type: Driver Increase | Range: This Month | Reduction: Sum (use the right Account from your Chart of Accounts that shows Fixed Assets purchase(es))
fx = x
Input 2 = Constant -1
- Driver Computer Equipment increase:
- Loan Payment
- Driver Notes Payable decrease:
Input 1 = Category: Liabilities $ | Account: Notes Payable - Non Current | Line Type: Driver Decrease | Range: This Month | Reduction: Sum (choose the right Account from your Chart of Accounts that presents Loan payments)
fx = x
Input 2 = Constant -1
- Driver Notes Payable decrease:
- Other Expenses
- Driver All Other Expense:
Input 1 = Category: Other Income & Expense $ | Department: All | Account: All Other Expense | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1
- Driver All Other Expense:
Other Cash
Other BS Adjustments Line aggregates all remaining movements in the Balance Sheet that may not significantly impact cash presentation. This Custom line can also be considered a "plug-in," as it will capture all cash inflows and outflows not accounted for in the first two sections.
Other Cash Section is built using Global Drivers as all below Driver calculations remain consistent across all the Plans.
Other BS Adjustments Line is based on 3 Global Drivers where:
- Driver [GL] + Cash Outflow:
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Cash Outflow | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver [GL] - Cash Inflows:
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Cash Inflows | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver [GL] System Change in Cash:
Input 1 = Category: KPI Library | Group: Cash | KPI: Change in Cash | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1
Cash
Cash Section is built based on Global Drivers as all below lines remain consistent across all plans and coming from the System calculations.
- Cash, Beginning of Period
- Driver [GL] LM Cash, End of Period
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Cash, End of Period | Range: Last Month | Reduction: Sum
fx = x
Input 2 = Constant 1
- Driver [GL] LM Cash, End of Period
- Change in Cash
- Driver [GL] System Change in Cash:
Input 1 = Category: KPI Library | Group: Cash | KPI: Change in Cash | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1
- Driver [GL] System Change in Cash:
- Cash, End of Period
- Driver [GL] from BS
Input 1 = Category: Assets $ | Account: Bank Accounts | Line Type: Subtotal | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1
Start Date Type = Min Date (note that all Drivers are by default added starting from the Cutover Date which is the Forecast Start Date for your Plan)
End Date Type = Max Date
- Driver [GL] from BS
Check
The last Section includes the Check calculation which can be treated as an audit verification. Cash Check | Should = 0 is based on the below Global Drivers:
- Driver [GL] + Cash Outflow:
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Cash Outflow | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver [GL] - Cash Inflows:
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Cash Inflows | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver [GL] - Other Cash:
Input 1 = Category: Custom Tables | Table Name: Direct Cash | Line: Other Cash | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant -1 - Driver [GL] System Change in Cash:
Input 1 = Category: KPI Library | Group: Cash | KPI: Change in Cash | Range: This Month | Reduction: Sum
fx = x
Input 2 = Constant 1
Step 3: Confirm that Cash Check equals $0
Upon incorporating all the drivers detailed in Step #2, it is essential to ensure that the Cash Check | Should = 0 line consistently equals $0.
This verification step should be conducted every time changes are made to the forecast period, including the addition of new Balance Sheet drivers or General Ledger accounts.
Step 4: Add a Custom Report type to present the Direct Cash Flow
The last step of this Article explains how to present Direct Cash Flow created through the Custom table under Reports.
To add a Direct Cash Flow Report add a Section to a Template by selecting the to the right of Sections. Name the New Section as "Direct Cash Flow", choose a section type as "Custom", and select Add.
Learn more about how to customize the rows displayed on the Custom Report type.
Then, open the Direct Cash Flow Report and select Edit Rows. Add a new Section to the rows by selecting + Add Section:
Add 4 below Sections:
- Cash Inflows
- Cash Inflows based on Series: Direct Cash Custom Table and Line: Cash Inflows. Choose Depth as Children Up to 1st level and Hide Subtotal
- Add Separator
- Total Cash Inflows based on Series: Direct Cash Custom Table and Line: Cash Inflows. Choose Depth as Subtotal Only
- Cash Inflows based on Series: Direct Cash Custom Table and Line: Cash Inflows. Choose Depth as Children Up to 1st level and Hide Subtotal
- Cash Outflows
- Cash Outflows based on Series: Direct Cash Custom Table and Line: Cash Outflows. Choose Depth as Children Up to 1st level and Hide Subtotal
- Add Separator
- Total Cash Outflows based on Series: Direct Cash Custom Table and Line: Cash Outflows. Choose Depth as Subtotal Only
- Other Cash
- Other BS Adjustments should be based on Series: Direct Cash Custom Table and Line: Other BS Adjustments. Choose Depth as Subtotal Only
- Cash
- Cash should be linked to Series: Direct Cash Custom Table and Line: Cash. Choose Depth as Children Up to 1st level and Hide Subtotal
After customizing Report Rows, click on the Edit Columns icon from the left Navigation Panel to adjust Sources, Date Rage and Show Dates By:
Check the Editing Reports Help Center article to learn more about how to set up your Reports to display the Periods, Data, and Format desired.
Upon completing all outlined steps, the Direct Cash Flow should appear as follows: