---
id: object/table/840
type: object
title: Table 840 "Cash Flow Forecast"
summary: Table 840 "Cash Flow Forecast" in Base Application (Microsoft.CashFlow.Forecast). 23 fields, 18 public procedures, 2 events. Present since at least BC23, still in BC30, changed in BC24, BC27.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "27"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: c7e668e44be57d198d6986ebbe82299215017ce3f3f2b21a25b2eb158d9a1157
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CashFlow/Forecast/CashFlowForecast.Table.al
    title: src/Layers/W1/BaseApp/CashFlow/Forecast/CashFlowForecast.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-analyze-cash-flow
    - https://learn.microsoft.com/dynamics365/business-central/finance-cash-flow-overview
    - https://learn.microsoft.com/dynamics365/business-central/finance-setup-cash-flow-analyses
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/financial-analytics/built-in-finance-analysis-tools
    - topic/business-central/business-functionality/finance/manage-cash-flow
    - topic/business-central/business-functionality/set-up-business-central/set-up-finance
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 840
name: Cash Flow Forecast
namespace: Microsoft.CashFlow.Forecast
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "27"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 23
  procedures: 20
  events: 2
  subscribers: 0
relations:
  out: 6
  referenced_by: 8
  pages: 5
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 0
  implements: 0
---

# Table 840 "Cash Flow Forecast"

> Table 840 "Cash Flow Forecast" in Base Application (Microsoft.CashFlow.Forecast). 23 fields, 18 public procedures, 2 events. Present since at least BC23, still in BC30, changed in BC24, BC27.

Base Application · Microsoft.CashFlow.Forecast · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CashFlow/Forecast/CashFlowForecast.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 849 "Cash Flow Forecast List"](../page/849.md) (3 Learn pages), [Page 847 "Cash Flow Forecast Card"](../page/847.md) (2), [Page 840 "CF Forecast Statistics FactBox"](../page/840.md) (1), [Page 867 "CF Availability by Periods"](../page/867.md) (1), [Page 868 "Cash Flow Forecast Statistics"](../page/868.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Cash Flow Forecast |
| DataClassification | CustomerContent |
| Permissions | TableData "Cash Flow Account Comment" = rimd, TableData "Cash Flow Forecast Entry" = rimd |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 2 | Search Name | Code[100] | Specifies an alternate name that you can use to search for the record in question when you cannot remember the value in the Name field. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 3 | Description | Text[100] | Specifies a description of the cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 4 | Description 2 | Text[50] | Specifies an additional description of a forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 5 | Consider Discount | Boolean | Specifies if you want to include the cash discounts that are assigned in entries and documents in cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 6 | Creation Date | Date | Specifies the date that the forecast was created. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 7 | Created By | Code[50] | Specifies the user who created the forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> | DataClassification EndUserIdentifiableInformation |
| 8 | Manual Payments To | Date | Specifies a starting date to which manual revenue/expenses should be included in cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 9 | Comment | Boolean | Specifies the comment for the record. <small>via [Page 849 "Cash Flow Forecast List"](../page/849.md)</small> | FlowField: exist("Cash Flow Account Comment" where("Table Name" = const("Cash Flow Forecast"), "No." = field("No."))) |
| 10 | No. Series | Code[20] | Specifies the number series from which entry or record numbers are assigned to new entries or records. <small>via [Page 849 "Cash Flow Forecast List"](../page/849.md)</small> | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series); not editable |
| 11 | Manual Payments From | Date | Specifies a starting date from which manual revenue/expenses should be included in cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 12 | G/L Budget From | Date | Specifies the starting date from which you want to use the budget values from the general ledger in the cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 13 | G/L Budget To | Date | Specifies the last date to which you want to use the budget values from the general ledger in the cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 14 | Consider CF Payment Terms | Boolean | Specifies if you want to use cash flow payment terms for cash flow forecast. Cash flow payment terms overrule the standard payment terms that you have defined for customers, vendors, and orders. They also overrule the payment terms that you have manually entered on entries or documents. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 15 | Consider Pmt. Disc. Tol. Date | Boolean | Specifies if the payment discount tolerance date is considered when the cash flow date is calculated. If the check box is cleared, the due date or payment discount date from the customer and vendor ledger entries and the sales order or purchase order are used. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 16 | Consider Pmt. Tol. Amount | Boolean | Specifies if the payment tolerance amounts from the posted customer and vendor ledger entries are used in the cash flow forecast. If the check box is cleared, the amount without any payment tolerance amount from the customer and vendor ledger entries are used. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 17 | Account No. Filter | Code[20] | — | FlowFilter |
| 18 | Source Type Filter | Enum "Cash Flow Source Type" | — | FlowFilter; enum [Enum 847 "Cash Flow Source Type"](../enum/847.md) |
| 19 | Cash Flow Date Filter | Date | — | FlowFilter |
| 20 | Amount (LCY) | Decimal | — | FlowField: sum("Cash Flow Forecast Entry"."Amount (LCY)" where("Cash Flow Forecast No." = field("No."), "Cash Flow Date" = field("Cash Flow Date Filter"), "Source Type" = field("Source Type Filter"), "Cash Flow Account No." = field("Account No. Filter"), Positive = field("Positive Filter"))) |
| 21 | Positive Filter | Boolean | — | FlowFilter |
| 22 | Overdue CF Dates to Work Date | Boolean | Specifies if you want to change overdue dates to the current work date for the cash flow forecast. Choose the field if this forecast is shown in the forecast chart. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> |  |
| 23 | Default G/L Budget Name | Code[10] | Specifies the general ledger budget to be used when recalculating the cash flow forecast. <small>via [Page 847 "Cash Flow Forecast Card"](../page/847.md)</small> | TableRelation [Table 95 "G/L Budget Name"](../table/95.md) (G/L Budget Name) |

## Keys

- Key1: No. (clustered)

## Events published

- `OnAfterCalculateAllAmounts(FromDate: Date; ToDate: Date; var TotalAmount: Decimal)` (integration)
- `OnBeforeCalcAmount(var CashFlowForecast: Record "Cash Flow Forecast")` (integration)

## Procedures

- `AssistEdit(OldCashFlowForecast: Record "Cash Flow Forecast"): Boolean`
- `DrillDown()`
- `CalcAmountForPosNeg(PositiveAmount: Boolean): Decimal`
- `DrillDownPosNegEntries(PositiveAmount: Boolean)`
- `CalcAmountForAccountNo(AccountNo: Code[20]): Decimal`
- `SetAccountNoFilter(AccountNo: Code[20])`
- `DrillDownEntriesForAccNo(AccountNo: Code[20])`
- `CalcSourceTypeAmount(SourceType: Enum "Cash Flow Source Type"): Decimal`
- `SetSourceTypeEntriesFilter(SourceType: Enum "Cash Flow Source Type")`
- `DrillDownSourceTypeEntries(SourceType: Enum "Cash Flow Source Type")`
- `CalcAmount(): Decimal`
- `SetCashFlowDateFilter(FromDate: Date; ToDate: Date)`
- `PrintRecords()`
- `LookupCashFlowFilter(var Text: Text): Boolean`
- `CalculateAllAmounts(FromDate: Date; ToDate: Date; var Amounts: array[14] of Decimal; var TotalAmount: Decimal)`
- `ValidateShowInChart(ShowInChart: Boolean): Boolean`
- `GetShowInChart(): Boolean`
- `GetEntryDate(Which: Option First,Last): Date`

## Triggers

OnDelete, OnInsert

## Relations

- drill-down page [Page 849 "Cash Flow Forecast List"](../page/849.md)
- lookup page [Page 849 "Cash Flow Forecast List"](../page/849.md)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Comment: CalcFormula [Table 842 "Cash Flow Account Comment"](../table/842.md)
- Amount (LCY): CalcFormula [Table 847 "Cash Flow Forecast Entry"](../table/847.md)
- Default G/L Budget Name: TableRelation [Table 95 "G/L Budget Name"](../table/95.md)

## Referenced by

8 fields in 8 objects relate to this table (TableRelation or CalcFormula).

- [Table 365 "Analysis View Entry"](../table/365.md): Cash Flow Forecast No.
- [Table 368 "Dimension Selection Buffer"](../table/368.md): Dimension Value Filter
- [Table 376 "G/L Account (Analysis View)"](../table/376.md): Cash Flow Forecast Filter
- [Table 841 "Cash Flow Account"](../table/841.md): Cash Flow Forecast Filter
- [Table 842 "Cash Flow Account Comment"](../table/842.md): No.
- [Table 846 "Cash Flow Worksheet Line"](../table/846.md): Cash Flow Forecast No.
- [Table 847 "Cash Flow Forecast Entry"](../table/847.md): Cash Flow Forecast No.
- [Table 85 "Acc. Schedule Line"](../table/85.md): Cash Flow Forecast Filter

## Pages and codeunits on this table

- [Page 840 "CF Forecast Statistics FactBox"](../page/840.md) (source table)
- [Page 847 "Cash Flow Forecast Card"](../page/847.md) (source table)
- [Page 849 "Cash Flow Forecast List"](../page/849.md) (source table)
- [Page 867 "CF Availability by Periods"](../page/867.md) (source table)
- [Page 868 "Cash Flow Forecast Statistics"](../page/868.md) (source table)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Page 456 "No. Series"](../page/456.md) (2 calls: `AssistEdit → (object)`, `OnInsert → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC27

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Cash Flow Forecast")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
