---
id: object/table/1950
type: object
title: Table 1950 "LP Machine Learning Setup"
summary: Table 1950 "LP Machine Learning Setup" in LatePaymentPredictor (Microsoft.Finance.Latepayment). 16 fields, 14 public procedures. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - table
  - latepaymentpredictor
versions:
  introduced: "29"
  last_changed: null
  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: 23598d82755896ca82eff34c790dd25fdbacbe19eaf5753a67c7defb11542dd9
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/LatePaymentPredictor/app/src/LPMachineLearningSetup.Table.al
    title: src/Apps/W1/LatePaymentPredictor/app/src/LPMachineLearningSetup.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/ui-extensions-late-payment-prediction
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/finance/manage-receivables
    - topic/business-central/development-and-administration/customize-business-central/customize-with-extensions
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 1950
name: LP Machine Learning Setup
namespace: Microsoft.Finance.Latepayment
app: LatePaymentPredictor
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 16
  procedures: 14
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 1
  extended_by: 0
  event_subscribers: 1
  calls: 2
  called_by: 0
  implements: 0
---

# Table 1950 "LP Machine Learning Setup"

> Table 1950 "LP Machine Learning Setup" in LatePaymentPredictor (Microsoft.Finance.Latepayment). 16 fields, 14 public procedures. Introduced in BC29, still in BC30.

LatePaymentPredictor · Microsoft.Finance.Latepayment · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/LatePaymentPredictor/app/src/LPMachineLearningSetup.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 1950 "LP Machine Learning Setup"](../page/1950.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| DataClassification | CustomerContent |
| Permissions | TableData "LP Machine Learning Setup" = I |

## 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 | Primary Key | Code[10] | — |  |
| 2 | Make Predictions | Boolean | Specifies whether to use the Late Payment Prediction extension to predict if an invoice will be paid on time. <small>via [Page 1950 "LP Machine Learning Setup"](../page/1950.md)</small> |  |
| 3 | My Model | Blob | — |  |
| 4 | Selected Model | Option | Specifies the predictive model to use. This can be the standard model that we provide, or your own custom model if you have created one by using the Create My Model action. <small>via [Page 1950 "LP Machine Learning Setup"](../page/1950.md)</small> | OptionCaption: Standard, My Model |
| 5 | My Model Quality | Decimal | — | not editable |
| 6 | Standard Model Quality | Decimal | — | not editable |
| 7 | Model Quality Threshold | Decimal | Specifies the minimum model quality you require. The value is a percentage between zero and one, and indicates how accurate predictions will be. Typically, this field is useful when you create a custom model. If the quality of a model is below this threshold, it will not be used. <small>via [Page 1950 "LP Machine Learning Setup"](../page/1950.md)</small> |  |
| 8 | Use My Model Credentials | Boolean | Specifies that you use a model that you created, rather than the standard model that we provide. To use your model, you must provide your API URI and API Key. You must also choose My Model in the Selected Model field in the Late Payment Prediction Setup window. <small>via [Page 1950 "LP Machine Learning Setup"](../page/1950.md)</small> |  |
| 9 | Custom API Uri | Text[250] | — | not editable; NotBlank |
| 10 | Custom API Key | Text[200] | — | not editable; NotBlank |
| 12 | OverestimatedInvNo OnLastReset | Integer | — | not editable |
| 13 | Last Feature Table Reset | DateTime | — | not editable |
| 14 | Last Background Analysis | DateTime | — | not editable |
| 15 | Standard Model Pdf | Blob | — |  |
| 16 | My Model Pdf | Blob | — |  |
| 17 | Posting Date OnLastML | Date | — | not editable |

## Keys

- PK: Primary Key (clustered)

## Trigger event subscribers

- OnAfterModifyEvent: [Codeunit 1952 "LP Subscribers"](../codeunit/1952.md) SendTraceTagOnLatePaymentPredictionStateChanged

## Procedures

- `GetSingleInstance()`
- `GetModelAsText(ForModel: Option): Text`
- `SetModel(ModelAsText: Text)`
- `GetModelQuality(): Decimal`
- `CheckModelQuality()`
- `CheckSelectedModelExists()`
- `MyModelExists(): Boolean`
- `StandardModelExists(): Boolean`
- `LastFeatureTableResetWasTooLongAgo(): Boolean`
- `LastBackgroundAnalysIsRecentEnough(): Boolean`
- `SaveApiUri(ApiUriText: Text[250])`
- `GetApiUri(): Text[250]`
- `SaveApiKey(ApiKeyText: SecretText)`
- `GetApiKeyAsSecret(): SecretText`

## Pages and codeunits on this table

- [Page 1950 "LP Machine Learning Setup"](../page/1950.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.

- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (2 calls: `GetModelAsText → CreateInStream`, `GetModelAsText → FromRecord`)
- [Codeunit 1951 "LP Model Management"](../codeunit/1951.md) (1 call: `GetSingleInstance → GetDefaultModelQualityThreshold`)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

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: "LP Machine Learning Setup")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
