Define a prediction, prepare suitable data, and turn training into a repeatable workflow.
Dawn can help you build and run modelling pipelines. Your most important input is a clear definition of what to predict, when the prediction will be made, and how you will decide whether it is useful.
Prepare time-aware features and validation; consider a suitable custom model.
Start with a straightforward baseline before a more complex model. A complex model is useful only if its measured performance and operating cost justify it.
For a customer churn example, specify the observation date, what counts as churn, and the future period in which churn is measured. Decide how each prediction will be used.
Help me design a customer churn model. We want to predict at the end of eachmonth which customers will make no purchase in the next 60 days. Define thetraining row, target, eligible population, and information available at theprediction date. Identify missing data before building anything.
Expected result: a prediction definition you can explain without referring to a particular algorithm.
Use a data engineering pipeline to produce one row per training example. Include the target and features available at prediction time.Exclude information from the future, such as cancellation outcomes that occur after the observation date. This is data leakage: it can make test results look strong while producing poor predictions in use.Check missing values, repeated entities, class balance, and the period covered. Keep an identifier for reconciling predictions, but assess whether it should be a model feature.
Ask Dawn to explain the split before training. Random splitting can be inappropriate for time-based predictions or repeated records from the same customer.For a future-facing prediction, consider training on earlier periods and evaluating on later ones. If records for the same entity must stay together, make that requirement explicit in the data preparation. Do not assume a default split enforces time or entity boundaries.
Attach the prepared dataset and ask for a suitable classification or regression training step, a named model output, and evaluation outputs.
Build a baseline classification pipeline for this prepared dataset. Show thefeature columns, target, split approach, algorithm, and evaluation metrics.Exclude identifiers and any fields unavailable at prediction time. Let mereview the configuration before running training.
Dawn provides tabular modelling steps and custom Python model workflows. Start with a supported tabular training step unless your problem needs custom code. Open the training step and inspect Input Features and Target Column in its Configuration. Review Advanced Settings where needed. Check the selected features rather than accepting every column as an input.
Run the pipeline. Inspect the model output, training logs, and evaluation results. Compare performance with a simple baseline and review errors in groups that matter to your use case.For classification, inspect precision and recall at the threshold you intend to use. For regression, inspect error size in the target’s units and compare it with the business tolerance. See evaluating and using models.
Add an inference step using the trained model and a prepared dataset of records to score. Match the training features and types. Inspect the actual output columns and join predictions back to their source identifiers.Start with batch predictions into a dataset. Add a dashboard or report once you understand the result. For API-based serving, confirm the model’s supported deployment workflow and test its input contract before integrating a consuming application.
Record the training period, target definition, feature logic, model version, and evaluation results. Re-evaluate as new outcomes become available or source data changes. Retraining is a separate operation from refreshing predictions with an existing model.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Dawn Documentation","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/truestate/CdSskgdTwIRBwsJf/logo/light.svg?fit=max\u0026auto=format\u0026n=CdSskgdTwIRBwsJf\u0026q=85\u0026s=07947a0255623245ae776195689aaa9f","dark":"https://mintcdn.com/truestate/CdSskgdTwIRBwsJf/logo/dark.svg?fit=max\u0026auto=format\u0026n=CdSskgdTwIRBwsJf\u0026q=85\u0026s=2c009029706ecf188347544789d062d1"},"favicon":"https://mintcdn.com/truestate/CdSskgdTwIRBwsJf/favicon.ico?fit=max\u0026auto=format\u0026n=CdSskgdTwIRBwsJf\u0026q=85\u0026s=37d988e172473f36a46889d8bb87d93a","navbar":{"links":[{"href":"mailto:support@truestate.io","label":"Support"}],"primary":{"type":"button","label":"Platform","href":"https://platform.truestate.io"}},"footer":{"socials":{"x":"https://x.com/truestate_ai","linkedin":"https://linkedin.com/company/truestate-analytics"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"truestate","hasAudioNarration":false,"actualSubdomain":"truestate","customDomains":["docs.truestate.io"],"gitSource":{"type":"github","owner":"truestate-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ab36c53331ea758fa5a9a5c","collectionId":"44ebac69-66dc-4cf7-8501-214bce086570","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ab36c53331ea758fa5a9a5c"},"entitlements":{},"buildId":"6ab36c53331ea758fa5a9a5c","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":396},{"language":"default","tag":"filesystem","count":25},{"language":"default","tag":"organisations","count":24},{"language":"default","tag":"Guides","count":22},{"language":"default","tag":"workspaces","count":20},{"language":"default","tag":"pipelines","count":19},{"language":"default","tag":"client-access","count":15},{"language":"default","tag":"deployments","count":15},{"language":"default","tag":"dashboards","count":14},{"language":"default","tag":"datasets","count":13}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:'NBInternationalPro';src:url('https://www.truestate.io/fonts/NBInternationalProRegularWeb/nbinternationalpro-regular-webfont.woff2') format('woff2');font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:'PerfectlyNineties';src:url('https://www.truestate.io/fonts/PerfectlyNineties/PerfectlyNineties-Regular.woff') format('woff');font-weight:normal;font-style:normal}body{font-family:'NBInternationalPro', sans-serif}h1,h2,h3{font-family:'NBInternationalPro', sans-serif;font-weight:400}.bold-text{font-weight:700}.semibold-text{font-weight:600}.regular-text{font-weight:400}"}],"page":{"pagePath":"data-science/modelling","slug":"/data-science/modelling","pageMetadata":{"title":"Build your first predictive model","description":"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.","sidebarTitle":"Build a model","href":"/data-science/modelling"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Dawn can help you build and run modelling pipelines. Your most important input is a clear definition of what to predict, when the prediction will be made, and how you will decide whether it is useful.`}),`\n`,_jsx(Heading,{level:`2`,id:`choose-a-modelling-task`,children:`Choose a modelling task`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Task`}),_jsx(_components.th,{children:`Example`}),_jsx(_components.th,{children:`Typical approach`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Classification`}),_jsx(_components.td,{children:`Which customers are likely to stop buying?`}),_jsx(_components.td,{children:`Predict a category or its probability.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Regression`}),_jsx(_components.td,{children:`What will an order’s delivery time be?`}),_jsx(_components.td,{children:`Predict a numeric value.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Clustering`}),_jsx(_components.td,{children:`Which customers have similar behaviour?`}),_jsx(_components.td,{children:`Group similar records without a target label.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Time-dependent prediction`}),_jsx(_components.td,{children:`What will demand be next month?`}),_jsx(_components.td,{children:`Prepare time-aware features and validation; consider a suitable custom model.`})]})]})]}),`\n`,_jsx(_components.p,{children:`Start with a straightforward baseline before a more complex model. A complex model is useful only if its measured performance and operating cost justify it.`}),`\n`,_jsx(Heading,{level:`2`,id:`1-define-the-prediction`,children:`1. Define the prediction`}),`\n`,_jsx(_components.p,{children:`For a customer churn example, specify the observation date, what counts as churn, and the future period in which churn is measured. Decide how each prediction will be used.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Help me design a customer churn model. We want to predict at the end of each`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`month which customers will make no purchase in the next 60 days. Define the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`training row, target, eligible population, and information available at the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`prediction date. Identify missing data before building anything.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Expected result:`}),` a prediction definition you can explain without referring to a particular algorithm.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-prepare-the-training-data`,children:`2. Prepare the training data`}),`\n`,_jsxs(_components.p,{children:[`Use a `,_jsx(_components.a,{href:`/guides/data-engineering`,children:`data engineering pipeline`}),` to produce one row per training example. Include the target and features available at prediction time.`]}),`\n`,_jsx(_components.p,{children:`Exclude information from the future, such as cancellation outcomes that occur after the observation date. This is data leakage: it can make test results look strong while producing poor predictions in use.`}),`\n`,_jsx(_components.p,{children:`Check missing values, repeated entities, class balance, and the period covered. Keep an identifier for reconciling predictions, but assess whether it should be a model feature.`}),`\n`,_jsx(Heading,{level:`2`,id:`3-agree-on-a-validation-design`,children:`3. Agree on a validation design`}),`\n`,_jsx(_components.p,{children:`Ask Dawn to explain the split before training. Random splitting can be inappropriate for time-based predictions or repeated records from the same customer.`}),`\n`,_jsx(_components.p,{children:`For a future-facing prediction, consider training on earlier periods and evaluating on later ones. If records for the same entity must stay together, make that requirement explicit in the data preparation. Do not assume a default split enforces time or entity boundaries.`}),`\n`,_jsx(Heading,{level:`2`,id:`4-build-and-review-the-training-pipeline`,children:`4. Build and review the training pipeline`}),`\n`,_jsx(_components.p,{children:`Attach the prepared dataset and ask for a suitable classification or regression training step, a named model output, and evaluation outputs.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Build a baseline classification pipeline for this prepared dataset. Show the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`feature columns, target, split approach, algorithm, and evaluation metrics.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Exclude identifiers and any fields unavailable at prediction time. Let me`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`review the configuration before running training.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Dawn provides tabular modelling steps and custom Python model workflows. Start with a supported tabular training step unless your problem needs custom code. Open the training step and inspect `,_jsx(_components.strong,{children:`Input Features`}),` and `,_jsx(_components.strong,{children:`Target Column`}),` in its Configuration. Review `,_jsx(_components.strong,{children:`Advanced Settings`}),` where needed. Check the selected features rather than accepting every column as an input.`]}),`\n`,_jsx(Heading,{level:`2`,id:`5-train-and-evaluate`,children:`5. Train and evaluate`}),`\n`,_jsx(_components.p,{children:`Run the pipeline. Inspect the model output, training logs, and evaluation results. Compare performance with a simple baseline and review errors in groups that matter to your use case.`}),`\n`,_jsxs(_components.p,{children:[`For classification, inspect precision and recall at the threshold you intend to use. For regression, inspect error size in the target’s units and compare it with the business tolerance. See `,_jsx(_components.a,{href:`/data-science/evaluation`,children:`evaluating and using models`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`6-generate-predictions`,children:`6. Generate predictions`}),`\n`,_jsx(_components.p,{children:`Add an inference step using the trained model and a prepared dataset of records to score. Match the training features and types. Inspect the actual output columns and join predictions back to their source identifiers.`}),`\n`,_jsx(_components.p,{children:`Start with batch predictions into a dataset. Add a dashboard or report once you understand the result. For API-based serving, confirm the model’s supported deployment workflow and test its input contract before integrating a consuming application.`}),`\n`,_jsx(Heading,{level:`2`,id:`maintain-the-model`,children:`Maintain the model`}),`\n`,_jsx(_components.p,{children:`Record the training period, target definition, feature logic, model version, and evaluation results. Re-evaluate as new outcomes become available or source data changes. Retraining is a separate operation from refreshing predictions with an existing model.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Build your first predictive model","description":"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.","sidebarTitle":"Build a model","href":"/data-science/modelling"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Choose a modelling task","slug":"choose-a-modelling-task","depth":2,"children":[]},{"title":"1. Define the prediction","slug":"1-define-the-prediction","depth":2,"children":[]},{"title":"2. Prepare the training data","slug":"2-prepare-the-training-data","depth":2,"children":[]},{"title":"3. Agree on a validation design","slug":"3-agree-on-a-validation-design","depth":2,"children":[]},{"title":"4. Build and review the training pipeline","slug":"4-build-and-review-the-training-pipeline","depth":2,"children":[]},{"title":"5. Train and evaluate","slug":"5-train-and-evaluate","depth":2,"children":[]},{"title":"6. Generate predictions","slug":"6-generate-predictions","depth":2,"children":[]},{"title":"Maintain the model","slug":"maintain-the-model","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"truestate","siteName":"Dawn Documentation","title":"Build your first predictive model - Dawn Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T04:25:47.865Z","originalFileLocation":"data-science/modelling.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dawn Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Build your first predictive model - Dawn Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dawn Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.truestate.io/data-science/modelling\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://truestate.mintlify.site/_mintlify/api/og/v2?division=Data+science\u0026amp;title=Build+your+first+predictive+model\u0026amp;description=Define+a+prediction%2C+prepare+suitable+data%2C+and+turn+training+into+a+repeatable+workflow.\u0026amp;theme=30a34895daa718ed2715cf00\u0026amp;signature=497dd8c235b56f88dd329cbc87458a44015ede9c052eb94192bfe6293619961f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Build your first predictive model - Dawn Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://truestate.mintlify.site/_mintlify/api/og/v2?division=Data+science\u0026amp;title=Build+your+first+predictive+model\u0026amp;description=Define+a+prediction%2C+prepare+suitable+data%2C+and+turn+training+into+a+repeatable+workflow.\u0026amp;theme=30a34895daa718ed2715cf00\u0026amp;signature=497dd8c235b56f88dd329cbc87458a44015ede9c052eb94192bfe6293619961f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/truestate/aUEV9koubVzDmX_d/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dawn Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.truestate.io/data-science/modelling\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/data-science/modelling.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.truestate.io/#organization\",\"name\":\"Dawn Documentation\",\"url\":\"https://docs.truestate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/truestate/CdSskgdTwIRBwsJf/logo/light.svg?fit=max\u0026auto=format\u0026n=CdSskgdTwIRBwsJf\u0026q=85\u0026s=07947a0255623245ae776195689aaa9f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.truestate.io#website\",\"name\":\"Dawn Documentation\",\"url\":\"https://docs.truestate.io\",\"publisher\":{\"@id\":\"https://docs.truestate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.truestate.io/data-science/modelling#webpage\",\"url\":\"https://docs.truestate.io/data-science/modelling\",\"name\":\"Build your first predictive model\",\"description\":\"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\",\"dateModified\":\"2026-09-23T04:25:47.865Z\",\"isPartOf\":{\"@id\":\"https://docs.truestate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.truestate.io/data-science/modelling#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.truestate.io/data-science/modelling#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build with Dawn\",\"item\":\"https://docs.truestate.io/guides/datasets\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build your first predictive model\",\"item\":\"https://docs.truestate.io/data-science/modelling\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.truestate.io/data-science/modelling#article\",\"headline\":\"Build your first predictive model\",\"name\":\"Build your first predictive model\",\"description\":\"Define a prediction, prepare suitable data, and turn training into a repeatable workflow.\",\"url\":\"https://docs.truestate.io/data-science/modelling\",\"mainEntityOfPage\":{\"@id\":\"https://docs.truestate.io/data-science/modelling#webpage\"},\"dateModified\":\"2026-09-23T04:25:47.865Z\",\"publisher\":{\"@id\":\"https://docs.truestate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.truestate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dawn Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Dawn Documentation","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":[{"title":"Welcome to Dawn","sidebarTitle":"Overview","href":"/getting_started/introduction"},{"title":"Your first analysis","sidebarTitle":"Quickstart","href":"/getting_started/quickstart"},{"title":"Loading data","href":"/getting_started/loading-data"},{"title":"Work with the agent","sidebarTitle":"Working with Dawn","href":"/guides/chat"}]},{"group":"Build with Dawn","pages":[{"group":"Data engineering","icon":"database","expanded":false,"pages":[{"title":"Datasets","href":"/guides/datasets"},{"title":"Data engineering with Dawn","sidebarTitle":"Prepare and transform data","href":"/guides/data-engineering"},{"title":"Pipelines","description":"Create, run, and maintain repeatable data and modelling workflows.","href":"/guides/pipelines"}]},{"group":"Data science","icon":"chart-line","expanded":false,"pages":[{"title":"Build your first predictive model","sidebarTitle":"Build a model","href":"/data-science/modelling"},{"title":"Evaluate and use models","description":"Check whether a model is useful before relying on its predictions.","sidebarTitle":"Evaluate a model","href":"/data-science/evaluation"}]},{"group":"Dashboards and reports","icon":"chart-pie","expanded":false,"pages":[{"title":"Dashboards","href":"/guides/dashboards"},{"title":"Reports","href":"/guides/reports"}]},{"title":"Jobs and recurring work","sidebarTitle":"Jobs and schedules","href":"/guides/jobs"}]},{"group":"Manage Dawn","pages":[{"group":"Context and agents","icon":"brain","expanded":false,"pages":[{"title":"Understand context","sidebarTitle":"Understand context","href":"/context/overview"},{"title":"Maintain and review context","sidebarTitle":"Maintain context","href":"/context/maintaining-context"},{"title":"Conventions","href":"/guides/conventions"},{"title":"Custom assistants","href":"/guides/custom-assistants"}]},{"group":"Workspace","icon":"folder","expanded":false,"pages":[{"title":"Clean up a workspace","sidebarTitle":"Clean up assets","href":"/workspace/cleanup"},{"title":"Bin and recovery","href":"/workspace/bin"}]},{"group":"Administration","icon":"gear","expanded":false,"pages":[{"title":"Teams and access","href":"/guides/organisations-and-users"},{"title":"API keys","href":"/guides/api-keys"},{"title":"Plans and usage","href":"/getting_started/pricing"},{"title":"Billing","href":"/guides/billing"}]}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/actuator-runs/get-active-run"}]}]},"basePath":"","title":"Build your first predictive model - Dawn Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}