Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.
Calculating a Training cost estimate is free. Starting a Training Run places a hold on the team balance, and the Training Run settles its final charge when training ends.For the balance shared by Data Labeling and Train, see Billing.
toloka training cost <training> prepares and validates the selected rows from the Training’s frozen slice.
A ready estimate reports the Maximum charge.
Starting a Training Run places a hold for that maximum charge.
The platform measures billable GPU seconds during training.
The Training Run charges the settled amount, never more than the maximum charge, and returns the unused hold.
A ready estimate expires 24 hours after you request it. A Training can have at most three open estimates, and each estimate starts at most one Training Run. Editing the Training invalidates a saved estimate.
The estimate calculates training work from tokens and settings:
SFT counts training tokens once per epoch and validation tokens once.
Gisting counts training tokens twice per epoch and validation tokens once.
The maximum charge grows with training tokens, epochs, and validation data.
LoRA rank, gist token count, learning rate, batch size, and maximum sequence length do not directly change the maximum charge.
The estimate reports estimated GPU usage, maximum training time, and the maximum charge. Maximum GPU seconds equal maximum wall time multiplied by the Base model’s GPU count. The monetary amount is rounded up to the cent.The maximum quote and any nonzero settled charge have a minimum of $1 per GPU. That is a $1 floor on a one-GPU Training Run and an $8 floor on an eight-GPU Training Run. The ready estimate shows the authoritative amount before you start.Gisting supports only the one-GPU qwen3-4b and qwen3-8b Base models. SFT can also use the eight-GPU qwen3-32b and qwen3-235b models. The estimate allows an eight-GPU SFT model about eight times the token workload within the six-hour limit. For a fixed token workload and settings, its maximum charge is about the same as a one-GPU SFT model’s, except where the per-GPU minimum applies.See Base models for GPU counts and Training settings for the settings that affect work.
toloka training cost trg.YOUR_TRAINING_ID --json > estimate.json
Open estimate.json, require status: "ready", and review the selected training rows and tokens, maximum GPU seconds, maximumCharge, and fingerprint. The fingerprint identifies the exact frozen inputs and configuration. Keep the file to start a run with this same estimate.A blocked estimate exits with code 1 and prints:
Training cannot run with these inputs:- <message>
Fix every issue and calculate again. Common causes include invalid examples, empty selections, too many rows, examples over maxSequenceLength, too few rows in the selected train parts to fill a batch after any fallback validation holdout, and estimated training longer than six hours. See Training errors.
Starting a Training Run places a hold for the saved estimate’s maximum charge on the team balance. Do not run the command until you accept that amount.
Use the saved estimate you reviewed:
toloka training run trg.YOUR_TRAINING_ID --estimate-file estimate.json
Without --estimate-file, the CLI calculates a fresh estimate and immediately creates the run; it does not reuse the amount you previously reviewed. If the saved estimate is rejected or expires, calculate and review a new one before retrying.A Training Run that lasts longer than its estimate remains capped at the approved maximum charge. It can continue training and publish its Model Version.
Completed Training Runs and Training Runs canceled after training starts are charged for billable GPU seconds, subject to the per-GPU minimum and the approved maximum. The unused hold returns to the team balance.Nothing is charged when:
The Training Run stops before training starts.
The platform fails the Training Run.
The trained files fail the platform’s output checks.
The payment window expires.
A platform failure can still leave measured GPU seconds visible in Training Run status. Those seconds are not charged when the failure is attributable to the platform.Canceling while training publishes no Model Version. Cancellation is unavailable after output validation begins and while final payment is blocked.
If the initial hold cannot be placed, status is blocked with reason funds. Add funds, then run:
toloka training resume trn.YOUR_RUN_ID
You can instead cancel while blocked on the initial hold.If training finished but the final charge cannot be collected, status is blocked with reason payment. Add funds and resume before the payment deadline. Cancellation is unavailable in this state.The payment window is seven days. When it expires, the Training Run fails with payment_window_expired, cannot resume, and is not charged.If status is blocked with reason billing_review, Toloka staff must resolve it. Resume and cancel are unavailable.Use Manage your team and balance to add funds.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Toloka Platform","description":"Label your data, train a model, and build a repeatable workflow on Toloka Platform.","colors":{"primary":"#18181B","light":"#F4F4F5","dark":"#6E56CF"},"logo":{"light":"https://mintcdn.com/toloka-platform/fjh9GDGXaqVVguLv/logo/light.svg?fit=max\u0026auto=format\u0026n=fjh9GDGXaqVVguLv\u0026q=85\u0026s=9416e21160a0887c5e444512177d135c","dark":"https://mintcdn.com/toloka-platform/fjh9GDGXaqVVguLv/logo/dark.svg?fit=max\u0026auto=format\u0026n=fjh9GDGXaqVVguLv\u0026q=85\u0026s=649d79e1ccbcf9daf8320b1c0fd85de2"},"favicon":"https://mintcdn.com/toloka-platform/vXmp7okJgVEfMccw/favicon.svg?fit=max\u0026auto=format\u0026n=vXmp7okJgVEfMccw\u0026q=85\u0026s=821d83f2a395922abca12417944389eb","api":{"playground":{"display":"interactive","proxy":false},"examples":{"defaults":"required","languages":["typescript","bash","python"],"autogenerate":true}},"navbar":{"links":[{"href":"https://toloka.ai/talk-to-us","label":"Talk to us"}],"primary":{"type":"button","label":"Open platform","href":"https://platform.toloka.ai/"}},"footer":{"socials":{"website":"https://toloka.ai"},"links":[{"header":"Platform","items":[{"label":"Open platform","href":"https://platform.toloka.ai/"},{"label":"API reference","href":"/api-reference"}]},{"header":"Company","items":[{"label":"About Toloka","href":"https://toloka.ai/about"},{"label":"Blog","href":"https://toloka.ai/blog"},{"label":"Careers","href":"https://toloka.ai/careers"}]},{"header":"Legal","items":[{"label":"Terms","href":"https://toloka.ai/legal/terms"},{"label":"Privacy notice","href":"https://toloka.ai/legal/privacy-notice"},{"label":"Security","href":"https://toloka.ai/security"}]}]},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"toloka-platform","hasAudioNarration":false,"actualSubdomain":"toloka-platform","customDomains":[],"gitSource":{"type":"github","owner":"toloka-dev","repo":"potato","deployBranch":"main","contentDirectory":"docs/mintlify","isPrivate":true,"mountPath":"","label":"","_id":"6aeaf5259649d32714ca2223"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1c9e5f9312b54bbd32862","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Reference","count":329},{"language":"default","tag":"TypeScript SDK","count":118},{"language":"default","tag":"CLI","count":112},{"language":"default","tag":"HTTP API","count":104},{"language":"default","tag":"Guides","count":40},{"language":"default","tag":"Datasets","count":34},{"language":"default","tag":"Trainings","count":30},{"language":"default","tag":"Data Labeling","count":25},{"language":"default","tag":"Pipelines","count":20},{"language":"default","tag":"Projects","count":18}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--tlk-ink: #18181b;--tlk-on-ink: #ffffff;--tlk-muted: #52525b;--tlk-line: rgb(24 24 27 / 0.08);--tlk-line-strong: rgb(24 24 27 / 0.16);--tlk-selected: rgb(24 24 27 / 0.04);--tlk-surface: #f5f5f6;--tlk-gradient-hover: linear-gradient(120deg, #f1edfc 0%, #f4f3f7 55%, #eef7ea 100%);--tlk-gradient-icon: linear-gradient(135deg, #d6c9f7 0%, #e0dcf3 50%, #d1ebc4 100%);--tlk-underline: linear-gradient(90deg, #a996ec, #8fca7c);--tlk-hero:\n radial-gradient(60% 90% at 50% 65%, #dbd1f5 0%, rgb(219 209 245 / 0) 70%),\n radial-gradient(45% 80% at 0% 0%, #e1f1d9 0%, rgb(225 241 217 / 0) 70%),\n radial-gradient(45% 80% at 100% 0%, #e1f1d9 0%, rgb(225 241 217 / 0) 70%),\n linear-gradient(180deg, #e9ebee 0%, #f3effb 100%)}.dark{--tlk-ink: #f4f4f5;--tlk-on-ink: #18181b;--tlk-muted: #a1a1aa;--tlk-line: rgb(255 255 255 / 0.08);--tlk-line-strong: rgb(255 255 255 / 0.16);--tlk-selected: rgb(255 255 255 / 0.06);--tlk-surface: #141418;--tlk-gradient-hover: linear-gradient(120deg, #1e1a2b 0%, #18181c 55%, #18211b 100%);--tlk-gradient-icon: linear-gradient(135deg, #3a3060 0%, #2a2836 50%, #26392b 100%);--tlk-hero:\n radial-gradient(60% 90% at 50% 65%, #2b2447 0%, rgb(43 36 71 / 0) 70%),\n radial-gradient(45% 80% at 0% 0%, #1c2a20 0%, rgb(28 42 32 / 0) 70%),\n radial-gradient(45% 80% at 100% 0%, #1c2a20 0%, rgb(28 42 32 / 0) 70%),\n linear-gradient(180deg, #121216 0%, #17141f 100%)}img.nav-logo{height:1.25rem!important;width:auto!important}#topbar-cta-button a span.absolute{background-color:var(--tlk-ink);border-radius:9999px}#topbar-cta-button a{border-radius:9999px}#topbar-cta-button a .text-white,#topbar-cta-button a svg{color:var(--tlk-on-ink)}.navbar-link a{border-radius:9999px}li[data-active-nav-item]>a[aria-current=\"page\"]{background-color:var(--tlk-selected);background-image:linear-gradient(180deg, #b6a3f0, #96cc84);background-position:0.375rem center;background-repeat:no-repeat;background-size:2px 1rem;color:var(--tlk-ink);font-weight:500}.eyebrow{color:var(--tlk-muted)!important}#content-area h1,#content-area h2,#content-area h3{font-weight:500;letter-spacing:-0.015em}#page-title{font-size:2.25rem;line-height:1.15}#content :where(a.link):not(:where(.not-prose,.not-prose *)){border-bottom:0;background-image:var(--tlk-underline);background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px}#content :where(a.link:hover):not(:where(.not-prose,.not-prose *)){background-image:linear-gradient(var(--tlk-ink), var(--tlk-ink))}#content :where(a.link):has(>code:only-child):not(:where(.not-prose,.not-prose *)){background-image:none}#content :where(a.link):has(>code:only-child):not(:where(.not-prose,.not-prose *))>code{transition:background-color 150ms,\n box-shadow 150ms}#content :where(a.link:hover):has(>code:only-child):not(:where(.not-prose,.not-prose *))>code{background-color:var(--tlk-selected);box-shadow:inset 0 0 0 1px var(--tlk-line-strong)}#content img:not([data-component-part]){border:1px solid var(--tlk-line);border-radius:0.75rem}#content .card{background-color:var(--tlk-surface);border-color:transparent;transition:background-color 150ms ease, border-color 150ms ease}#content .card[role=\"link\"]:hover,#content a.card[href]:hover{background-image:var(--tlk-gradient-hover);border-color:var(--tlk-line-strong)!important}#content .card [data-component-part=\"card-icon\"]{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:0.625rem;background-image:var(--tlk-gradient-icon)}#content .card [data-component-part=\"card-icon\"] svg{width:1.125rem;height:1.125rem;background-color:var(--tlk-ink)!important}#content .card [data-component-part=\"card-title\"]{color:var(--tlk-ink);font-weight:500}.tlk-home{max-width:64rem;margin:0 auto;padding:2rem 0 4rem}.tlk-hero{padding:3.5rem 3rem;border-radius:1.5rem;background:var(--tlk-hero)}.tlk-hero-eyebrow{margin:0 0 1.25rem;color:var(--tlk-muted);font-size:0.8125rem;font-weight:500;letter-spacing:0.01em}.tlk-hero-title{margin:0;color:var(--tlk-ink);font-size:clamp(2.5rem, 4.6vw, 3.75rem);font-weight:500;line-height:1.04;letter-spacing:-0.035em}.tlk-hero-lead{max-width:36rem;margin:1.25rem 0 2rem;color:var(--tlk-muted);font-size:1.125rem;line-height:1.6}.tlk-hero-actions{display:flex;flex-wrap:wrap;gap:0.75rem}.tlk-home a.tlk-button{display:inline-flex;align-items:center;gap:0.375rem;height:2.5rem;padding:0 1.25rem;border:1px solid transparent;border-radius:9999px;font-size:0.9375rem;font-weight:500;text-decoration:none;transition:opacity 150ms ease, background-color 150ms ease}.tlk-home a.tlk-button-primary{background-color:var(--tlk-ink);color:var(--tlk-on-ink)}.tlk-home a.tlk-button-primary:hover{opacity:0.85}.tlk-home a.tlk-button-secondary{border-color:var(--tlk-line-strong);background-color:rgb(255 255 255 / 0.55);color:var(--tlk-ink)}.dark .tlk-home a.tlk-button-secondary{background-color:rgb(255 255 255 / 0.04)}.tlk-home a.tlk-button-secondary:hover{background-color:rgb(255 255 255 / 0.85)}.dark .tlk-home a.tlk-button-secondary:hover{background-color:rgb(255 255 255 / 0.1)}.tlk-home a.tlk-button:focus-visible,#content .tlk-reference a:focus-visible{outline:2px solid var(--tlk-ink);outline-offset:3px}.tlk-home .tlk-section-title{margin:3.5rem 0 1rem;color:var(--tlk-ink);font-size:1.5rem;font-weight:500;letter-spacing:-0.02em}.tlk-reference{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:2rem}.tlk-reference-title{margin:0 0 0.25rem;color:var(--tlk-muted);font-size:0.8125rem;font-weight:500}#content .tlk-reference a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.75rem 0;border-bottom:1px solid var(--tlk-line);color:var(--tlk-ink);font-size:0.9375rem;text-decoration:none}#content .tlk-reference a::after{content:\"→\";color:var(--tlk-muted);transition:transform 150ms ease}#content .tlk-reference a[href^=\"http\"]::after{content:\"↗\"}#content .tlk-reference a:hover::after{transform:translateX(3px);color:var(--tlk-ink)}@media (min-width: 1024px){#content-container{padding-left:2.25rem;padding-right:2.25rem}}@media (max-width: 1023px){.tlk-home{padding-inline:1.25rem}}@media (max-width: 767px){.tlk-home{padding-top:1rem;padding-inline:1rem}.tlk-hero{padding:2rem 1.25rem;border-radius:1.25rem}.tlk-hero-title{font-size:2.125rem}.tlk-hero-lead{font-size:1rem}.tlk-home a.tlk-button{padding:0 1rem}.tlk-reference{grid-template-columns:minmax(0, 1fr);gap:1.5rem}}@media (prefers-reduced-motion: reduce){.tlk-home a.tlk-button,#content .tlk-reference a::after,#content .card{transition:none}}div:has(>.method-pill)>[data-component-part=\"scroll-area\"] [data-component-part=\"scroll-area-content\"]{min-width:0!important}div:has(>.method-pill)>[data-component-part=\"scroll-area\"] [data-component-part=\"scroll-area-content\"]>div{flex-wrap:wrap;row-gap:0.125rem}"}],"page":{"pagePath":"train/concepts/cost","slug":"/train/concepts/cost","pageMetadata":{"title":"Training cost","description":"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.","type":"explanation","status":"verified","summary":"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.","sources":[{"code":"app/src/backend/queuert/processors/training-run.ts#stateAfterSettlement"},{"code":"app/src/backend/env/schema.ts#EnvSchema"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/inputs.ts#collectCapabilityIssues"},{"code":"app/src/backend/entities/implementations/training/configuration.ts#applyTrainingRows"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingBudget"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingMaximumCharge"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingCharge"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/entity.ts#createTrainingCostEstimateEntity"},{"code":"app/src/backend/entities/implementations/training-run/lifecycle.ts#createLifecycleMethods"},{"code":"app/src/backend/entities/implementations/training-run/user-actions.ts#stateAfterResume"},{"code":"app/src/backend/services/training-execution/service.ts#collectTrainingCharge"},{"code":"app/src/shared/schema/training-run.ts#TRAINING_HOLD_MAXIMUM_SECONDS"},{"code":"packages/sdk/src/cli/trainings.ts#estimateTrainingCost"}],"ownerSignoff":{"name":null,"date":null},"statusReasons":["The original Training cost section was verified against the cited calculator, Training Run lifecycle, and settlement service.","Not verified by an end-to-end paid Training Run.","The current training-v2 calculator has a $1 minimum per GPU for a maximum quote and a nonzero settled charge. No static per-GPU-hour price is published here; the ready estimate is authoritative."],"suggestedReviewers":[{"name":"Grigory Zaripov","lastTouched":"2026-09-08T00:00:00.000Z"}],"href":"/train/concepts/cost"},"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: \"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\"\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`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Calculating a Training cost estimate is free. Starting a Training Run places a hold on the team balance, and the Training Run settles its final charge when training ends.`}),`\n`,_jsxs(_components.p,{children:[`For the balance shared by Data Labeling and Train, see `,_jsx(_components.a,{href:`/core/billing`,children:`Billing`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`from-estimate-to-settlement`,children:`From estimate to settlement`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`toloka training cost \u003ctraining>`}),` prepares and validates the selected rows from the Training’s frozen slice.`]}),`\n`,_jsxs(_components.li,{children:[`A ready estimate reports the `,_jsx(_components.strong,{children:`Maximum charge`}),`.`]}),`\n`,_jsx(_components.li,{children:`Starting a Training Run places a hold for that maximum charge.`}),`\n`,_jsx(_components.li,{children:`The platform measures billable GPU seconds during training.`}),`\n`,_jsx(_components.li,{children:`The Training Run charges the settled amount, never more than the maximum charge, and returns the unused hold.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A ready estimate expires 24 hours after you request it. A Training can have at most three open estimates, and each estimate starts at most one Training Run. Editing the Training invalidates a saved estimate.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-the-maximum-charge-is-calculated`,children:`How the maximum charge is calculated`}),`\n`,_jsx(_components.p,{children:`The estimate calculates training work from tokens and settings:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`SFT counts training tokens once per epoch and validation tokens once.`}),`\n`,_jsx(_components.li,{children:`Gisting counts training tokens twice per epoch and validation tokens once.`}),`\n`,_jsx(_components.li,{children:`The maximum charge grows with training tokens, epochs, and validation data.`}),`\n`,_jsx(_components.li,{children:`LoRA rank, gist token count, learning rate, batch size, and maximum sequence length do not directly change the maximum charge.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The estimate reports estimated GPU usage, maximum training time, and the maximum charge. Maximum GPU seconds equal maximum wall time multiplied by the Base model’s GPU count. The monetary amount is rounded up to the cent.`}),`\n`,_jsxs(_components.p,{children:[`The maximum quote and any nonzero settled charge have a minimum of `,`$1 per GPU. That is a $`,`1 floor on a one-GPU Training Run and an $8 floor on an eight-GPU Training Run. The ready estimate shows the authoritative amount before you start.`]}),`\n`,_jsxs(_components.p,{children:[`Gisting supports only the one-GPU `,_jsx(_components.code,{children:`qwen3-4b`}),` and `,_jsx(_components.code,{children:`qwen3-8b`}),` Base models. SFT can also use the eight-GPU `,_jsx(_components.code,{children:`qwen3-32b`}),` and `,_jsx(_components.code,{children:`qwen3-235b`}),` models. The estimate allows an eight-GPU SFT model about eight times the token workload within the six-hour limit. For a fixed token workload and settings, its maximum charge is about the same as a one-GPU SFT model’s, except where the per-GPU minimum applies.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/train/reference/base-models`,children:`Base models`}),` for GPU counts and `,_jsx(_components.a,{href:`/train/reference/settings`,children:`Training settings`}),` for the settings that affect work.`]}),`\n`,_jsx(Heading,{level:`2`,id:`review-an-estimate`,children:`Review an estimate`}),`\n`,_jsx(_components.p,{children:`Run:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`toloka`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` training`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cost`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trg.YOUR_TRAINING_ID`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` estimate.json`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.code,{children:`estimate.json`}),`, require `,_jsx(_components.code,{children:`status: \"ready\"`}),`, and review the selected training rows and tokens, maximum GPU seconds, `,_jsx(_components.code,{children:`maximumCharge`}),`, and fingerprint. The fingerprint identifies the exact frozen inputs and configuration. Keep the file to start a run with this same estimate.`]}),`\n`,_jsx(_components.p,{children:`A blocked estimate exits with code 1 and prints:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Training cannot run with these inputs:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- \u003cmessage>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Fix every issue and calculate again. Common causes include invalid examples, empty selections, too many rows, examples over `,_jsx(_components.code,{children:`maxSequenceLength`}),`, too few rows in the selected train parts to fill a batch after any fallback validation holdout, and estimated training longer than six hours. See `,_jsx(_components.a,{href:`/train/reference/errors`,children:`Training errors`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`start-only-after-approving-the-hold`,children:`Start only after approving the hold`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Starting a Training Run places a hold for the saved estimate’s maximum charge on the team balance. Do not run the command until you accept that amount.`})}),`\n`,_jsx(_components.p,{children:`Use the saved estimate you reviewed:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`toloka`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` training`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trg.YOUR_TRAINING_ID`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --estimate-file`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` estimate.json`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Without `,_jsx(_components.code,{children:`--estimate-file`}),`, the CLI calculates a fresh estimate and immediately creates the run; it does not reuse the amount you previously reviewed. If the saved estimate is rejected or expires, calculate and review a new one before retrying.`]}),`\n`,_jsx(_components.p,{children:`A Training Run that lasts longer than its estimate remains capped at the approved maximum charge. It can continue training and publish its Model Version.`}),`\n`,_jsx(Heading,{level:`2`,id:`final-charge-and-returned-hold`,children:`Final charge and returned hold`}),`\n`,_jsx(_components.p,{children:`Completed Training Runs and Training Runs canceled after training starts are charged for billable GPU seconds, subject to the per-GPU minimum and the approved maximum. The unused hold returns to the team balance.`}),`\n`,_jsx(_components.p,{children:`Nothing is charged when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The Training Run stops before training starts.`}),`\n`,_jsx(_components.li,{children:`The platform fails the Training Run.`}),`\n`,_jsx(_components.li,{children:`The trained files fail the platform’s output checks.`}),`\n`,_jsx(_components.li,{children:`The payment window expires.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A platform failure can still leave measured GPU seconds visible in Training Run status. Those seconds are not charged when the failure is attributable to the platform.`}),`\n`,_jsx(_components.p,{children:`Canceling while training publishes no Model Version. Cancellation is unavailable after output validation begins and while final payment is blocked.`}),`\n`,_jsx(Heading,{level:`2`,id:`insufficient-funds-and-payment-failures`,children:`Insufficient funds and payment failures`}),`\n`,_jsxs(_components.p,{children:[`If the initial hold cannot be placed, status is `,_jsx(_components.code,{children:`blocked`}),` with reason `,_jsx(_components.code,{children:`funds`}),`. Add funds, then run:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`toloka`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` training`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` resume`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trn.YOUR_RUN_ID`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can instead cancel while blocked on the initial hold.`}),`\n`,_jsxs(_components.p,{children:[`If training finished but the final charge cannot be collected, status is `,_jsx(_components.code,{children:`blocked`}),` with reason `,_jsx(_components.code,{children:`payment`}),`. Add funds and resume before the payment deadline. Cancellation is unavailable in this state.`]}),`\n`,_jsxs(_components.p,{children:[`The payment window is seven days. When it expires, the Training Run fails with `,_jsx(_components.code,{children:`payment_window_expired`}),`, cannot resume, and is not charged.`]}),`\n`,_jsxs(_components.p,{children:[`If status is `,_jsx(_components.code,{children:`blocked`}),` with reason `,_jsx(_components.code,{children:`billing_review`}),`, Toloka staff must resolve it. Resume and cancel are unavailable.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`/core/teams-and-balance#top-up`,children:`Manage your team and balance`}),` to add funds.`]})]})}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":"Training cost","description":"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.","type":"explanation","status":"verified","summary":"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.","sources":[{"code":"app/src/backend/queuert/processors/training-run.ts#stateAfterSettlement"},{"code":"app/src/backend/env/schema.ts#EnvSchema"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/inputs.ts#collectCapabilityIssues"},{"code":"app/src/backend/entities/implementations/training/configuration.ts#applyTrainingRows"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingBudget"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingMaximumCharge"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/calculator.ts#calculateTrainingCharge"},{"code":"app/src/backend/entities/implementations/training-cost-estimate/entity.ts#createTrainingCostEstimateEntity"},{"code":"app/src/backend/entities/implementations/training-run/lifecycle.ts#createLifecycleMethods"},{"code":"app/src/backend/entities/implementations/training-run/user-actions.ts#stateAfterResume"},{"code":"app/src/backend/services/training-execution/service.ts#collectTrainingCharge"},{"code":"app/src/shared/schema/training-run.ts#TRAINING_HOLD_MAXIMUM_SECONDS"},{"code":"packages/sdk/src/cli/trainings.ts#estimateTrainingCost"}],"ownerSignoff":{"name":null,"date":null},"statusReasons":["The original Training cost section was verified against the cited calculator, Training Run lifecycle, and settlement service.","Not verified by an end-to-end paid Training Run.","The current training-v2 calculator has a $1 minimum per GPU for a maximum quote and a nonzero settled charge. No static per-GPU-hour price is published here; the ready estimate is authoritative."],"suggestedReviewers":[{"name":"Grigory Zaripov","lastTouched":"2026-09-08T00:00:00.000Z"}],"href":"/train/concepts/cost"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"From estimate to settlement","slug":"from-estimate-to-settlement","depth":2,"children":[]},{"title":"How the maximum charge is calculated","slug":"how-the-maximum-charge-is-calculated","depth":2,"children":[]},{"title":"Review an estimate","slug":"review-an-estimate","depth":2,"children":[]},{"title":"Start only after approving the hold","slug":"start-only-after-approving-the-hold","depth":2,"children":[]},{"title":"Final charge and returned hold","slug":"final-charge-and-returned-hold","depth":2,"children":[]},{"title":"Insufficient funds and payment failures","slug":"insufficient-funds-and-payment-failures","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/toloka-platform/de8aa1b19d1c608c/platform-links.js"],"subdomain":"toloka-platform","siteName":"Toloka Platform","title":"Training cost - Toloka Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T16:24:04.371Z","originalFileLocation":"train/concepts/cost.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=\"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Toloka Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_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=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Training cost - Toloka Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Toloka Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://toloka-platform.mintlify.site/docs/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Training+cost\u0026amp;description=Understand+Training+cost+estimates%2C+maximum+charges%2C+balance+holds%2C+settlement%2C+and+no-charge+cases.\u0026amp;theme=4f0acd7e5281f22bad8ad665\u0026amp;signature=b41103321ae483165aeae87427d82eaad3c3e3c6155cdadeb04d3eb4fa5bc097\">\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=\"Training cost - Toloka Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://toloka-platform.mintlify.site/docs/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Training+cost\u0026amp;description=Understand+Training+cost+estimates%2C+maximum+charges%2C+balance+holds%2C+settlement%2C+and+no-charge+cases.\u0026amp;theme=4f0acd7e5281f22bad8ad665\u0026amp;signature=b41103321ae483165aeae87427d82eaad3c3e3c6155cdadeb04d3eb4fa5bc097\">\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=\"/docs/mintlify-assets/_mintlify/favicons/toloka-platform/DF8VYWTGOtIk-J7s/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Toloka Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#18181B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/train/concepts/cost.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://toloka-platform.mintlify.dev/#organization\",\"name\":\"Toloka Platform\",\"url\":\"https://toloka-platform.mintlify.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/toloka-platform/fjh9GDGXaqVVguLv/logo/light.svg?fit=max\u0026auto=format\u0026n=fjh9GDGXaqVVguLv\u0026q=85\u0026s=9416e21160a0887c5e444512177d135c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://toloka-platform.mintlify.dev/docs#website\",\"name\":\"Toloka Platform\",\"url\":\"https://toloka-platform.mintlify.dev/docs\",\"publisher\":{\"@id\":\"https://toloka-platform.mintlify.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost#webpage\",\"url\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost\",\"name\":\"Training cost\",\"description\":\"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\",\"dateModified\":\"2026-11-03T16:24:04.371Z\",\"isPartOf\":{\"@id\":\"https://toloka-platform.mintlify.dev/docs#website\"},\"breadcrumb\":{\"@id\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Train\",\"item\":\"https://toloka-platform.mintlify.dev/docs/train/get-started/choose-method\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Concepts\",\"item\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/how-training-works\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Training cost\",\"item\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost#article\",\"headline\":\"Training cost\",\"name\":\"Training cost\",\"description\":\"Understand Training cost estimates, maximum charges, balance holds, settlement, and no-charge cases.\",\"url\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost\",\"mainEntityOfPage\":{\"@id\":\"https://toloka-platform.mintlify.dev/docs/train/concepts/cost#webpage\"},\"dateModified\":\"2026-11-03T16:24:04.371Z\",\"publisher\":{\"@id\":\"https://toloka-platform.mintlify.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://toloka-platform.mintlify.dev/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Toloka Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Toloka Platform","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","groups":[{"group":"Start","icon":"flag","pages":[{"title":"Get started with Toloka Platform","sidebarTitle":"Introduction","mode":"frame","href":""},{"title":"How the platform works","href":"/start/how-it-works"},{"title":"Glossary","href":"/start/glossary"}]},{"group":"Data Labeling","icon":"tags","pages":[{"title":"Get your first labeled dataset","href":"/data/get-started/first-labeled-dataset"},{"title":"How data labeling works","href":"/data/concepts/overview"},{"title":"Projects","href":"/core/projects"},{"title":"Create and manage datasets","sidebarTitle":"Datasets","href":"/core/datasets"},{"group":"Concepts","pages":[{"title":"Pipelines","href":"/data/concepts/pipelines"},{"title":"Fields and data","href":"/data/concepts/fields-and-data"},{"title":"Quality control","href":"/data/concepts/quality-control"},{"title":"Self-check","href":"/data/concepts/self-check"},{"title":"Pipeline pricing","href":"/data/concepts/pricing"}]},{"group":"How-to guides","pages":[{"title":"Review the labeling interface","href":"/data/guides/review-labeling-interface"},{"title":"Label a large dataset in batches","href":"/data/guides/label-at-volume"},{"title":"Label with an LLM instead of experts","href":"/data/guides/synthetic-labeling"},{"title":"Export your labeled results","href":"/data/guides/export-results"},{"title":"Resume or cancel a pipeline run","href":"/data/guides/pause-resume-cancel"}]},{"group":"Recipes","pages":[{"title":"Start a project from a template","href":"/data/recipes/preset-project"},{"title":"Have the agent build your project","href":"/data/recipes/agentic-project"}]},{"group":"Pipeline nodes","pages":[{"title":"Pipeline nodes","href":"/data/reference/nodes/index"},{"title":"Start and End nodes","href":"/data/reference/nodes/start-and-end"},{"title":"Generation node","href":"/data/reference/nodes/generation"},{"title":"Quorum node","href":"/data/reference/nodes/quorum"},{"title":"Code node","href":"/data/reference/nodes/code"},{"title":"Match node","href":"/data/reference/nodes/match"}]},{"title":"Export format","href":"/data/reference/export-format"}]},{"group":"Train","icon":"brain","pages":[{"title":"Choose a training method","href":"/train/get-started/choose-method"},{"title":"Train your first model","href":"/train/get-started/first-trained-model"},{"group":"Concepts","pages":[{"title":"How Training works","description":"Understand Training methods, data, lifecycle, run states, outputs, and supported product surfaces.","href":"/train/concepts/how-training-works"},{"title":"Training cost","href":"/train/concepts/cost"}]},{"group":"How-to guides","pages":[{"title":"Prepare training data from labels","description":"Convert a Data Labeling export into chat training rows while keeping a deterministic evaluation set out of Training.","href":"/train/guides/prepare-training-data"},{"title":"Fine-tune a model","href":"/train/guides/fine-tune"},{"title":"Compress a prompt with gisting","href":"/train/guides/gist"}]},{"group":"Models and settings","pages":[{"title":"Base models","href":"/train/reference/base-models"},{"title":"Training settings","href":"/train/reference/settings"},{"title":"Training limits","href":"/train/reference/limits"}]}]},{"group":"Workflows","icon":"workflow","pages":[{"title":"Label, train, and evaluate","href":"/workflows/label-train-evaluate"}]},{"group":"Admin","icon":"shield","pages":[{"title":"Teams, access, and balance","href":"/core/teams-and-balance"},{"title":"Billing","href":"/core/billing"},{"title":"Security and privacy","href":"/core/security"}]}]},{"tab":"SDKs","icon":"boxes","pages":[{"title":"SDKs","href":"/sdk"}]},{"tab":"Reference","icon":"code","pages":[{"title":"Reference","href":"/reference"}]},{"tab":"Troubleshooting","icon":"wrench","pages":[{"title":"Troubleshooting","href":"/data/guides/troubleshoot"}]}]},"basePath":"","title":"Training cost - Toloka Platform","buildId":"dpl_6dVqRXFR2Go5vF5RLvAdHuv189oT","deploymentId":"dpl_6dVqRXFR2Go5vF5RLvAdHuv189oT","dynamics":[],"chunks":[]}