Ultralytics YOLO27: Join the waitlist.
Get Started
Build with Ultralytics Platform·Why Platform·Lesson 1/10
Lessonintermediate

Plan and Budget a Platform Project

Map each lifecycle stage of your project to Platform or your own stack, and estimate its monthly cost before you spend a credit.

Aerial logistics yard with trucks, containers, forklifts and a crane annotated in Ultralytics Platform

Vision projects rarely fail on the model. They fail at the handoffs: a label fix that never reaches the training copy, a checkpoint nobody can trace to its data, an always-on endpoint that quietly burns $150 a month. Ultralytics Platform connects those handoffs in one workspace, and this lesson has you decide, before uploading anything, which stages it will own for your project and what they will cost.

Outcome

You can produce a one-page plan for your project: which lifecycle stages run on Platform, which stay in your stack, who owns each, and a monthly budget computed from real Platform rates.

Fast Track
If you already know your way around, here's the short version.
  1. Pick your data region at signup with care; only support can change it.

  2. Map seven stages (data, annotate, curate, train, compare, deploy, monitor) to Platform or your own tools.

  3. Budget: training runs × the dialog estimate, Batch Annotation at $1 per 1,000 images, and endpoint uptime.

  4. The default endpoint size is free; an always-on custom size costs roughly $90–150 a month.

  5. Switch new datasets and projects to Private; Free and Pro default them to Public.

Hands-on

The Loop Platform Connects#

Ultralytics Platform overview graphic linking three stages: Annotate with SAM smart annotation, Train on cloud GPUs, and Deploy to global regions, above a row of integration partner logos

Every production vision system runs the same loop, and the expensive part is the arrow between two boxes, not the box itself:

Platform's value is that each stage records what the next one needs. Use this table as your map; the last column is the lesson that teaches the stage:

StageOn Ultralytics PlatformWhat it hands the next stageLesson
DataUpload images, video, archives (YOLO, COCO, NDJSON); import a URL; read Google Cloud Storage, Amazon S3, or Azure Blob Storage in place (Pro); On Premise (Enterprise)A dataset with a task type and splits2
AnnotateManual tools for every YOLO task except depth (imported as paired maps), SAM, YOLO and class-prompted smart annotation, Batch AnnotationLabels, plus a version saved before each batch run3
CurateClustering, Find similar images, class merge, split tools, numbered versionsAn immutable dataset version4
Train26 cloud GPU types with a cost estimate, or local runs streamed to a projectA model linked to its dataset version, cost, and command5
CompareProject charts, Table view with Diff, Validation insightsThe run worth shipping6
DeployDedicated endpoints in 42 regions; Replace model on the same URLAn endpoint URL linked to its model7
MonitorRequest, error, and P95 latency metrics, logs, prediction statistics, Save to datasetProduction images back in a dataset8

Two tools span the loop. Agents builds visual workflows, such as collecting uncertain detections into a review dataset, and Ask AI can train, compare, annotate, export, and deploy from a conversation using the same ul cloud commands you can run yourself.

Decide What You Still Own#

Platform stops at a few deliberate boundaries. Give each one a named owner in your plan:

  • Getting frames out of proprietary systems (DICOM archives, OEM cameras, plant historians): your code lands them in a bucket or an upload.
  • Paging. Platform shows endpoint metrics and posts job events to Slack, but it doesn't alert on latency or error thresholds. You'll build that check in lesson 8.
  • Accuracy over time. A labeled holdout and its history are yours (lesson 8).
  • Application logic. Counting, tracking, and zone rules live in your service; Ultralytics Solutions and the Ultralytics YOLO in Production course cover them.
  • Traffic routing. Endpoints have generated URLs and no custom domains, so canaries, multi-region routing, and branded hostnames need your own gateway.

Platform is not a separate framework. A Platform model downloads as a normal best.pt that YOLO("best.pt") loads, validates, and exports, and a local model.train(..., project="username/my-project") streams into Platform with an API key set. Moving between the two never means converting anything.

Worked Example: Budget the Project Before You Start#

Three things cost credits: cloud training (GPU rate × time used), Batch Annotation and whole-dataset face blurring ($1.00 per 1,000 images), and custom-size endpoints (billed per hour of uptime). Everything else in this course is free. This calculator uses Platform's real rates for a small detection project:

# Monthly Platform budget for a small detection project (rates from the billing and deployment docs)
TRAIN_RUNS = 8  # experiments per month
COST_PER_RUN = 0.23  # dialog estimate: ~1,000 images, YOLO26n, 100 epochs, RTX PRO 6000 ($2.09/h)
BATCH_ANNOTATION_IMAGES = 3_000  # $1.00 per 1,000 images
HOURS_PER_MONTH = 730

# Custom endpoint sizes keep one warm instance; us-central1 rates are $0.000024/vCPU-s and $0.0000025/GiB-s
warm_endpoint_hourly = (2 * 0.000024 + 4 * 0.0000025) * 3600  # 2 vCPU, 4 GiB

lines = {
    "cloud training": TRAIN_RUNS * COST_PER_RUN,
    "batch annotation": BATCH_ANNOTATION_IMAGES / 1000 * 1.00,
    "default endpoint (1 vCPU, 2 GiB, scales to zero)": 0.0,
    "warm endpoint (2 vCPU, 4 GiB, always on)": warm_endpoint_hourly * HOURS_PER_MONTH,
}
for item, usd in lines.items():
    print(f"{item:<50} ${usd:>7.2f}")
print(f"{'total with a warm endpoint':<50} ${sum(lines.values()):>7.2f}")
cloud training                                     $   1.84
batch annotation                                   $   3.00
default endpoint (1 vCPU, 2 GiB, scales to zero)   $   0.00
warm endpoint (2 vCPU, 4 GiB, always on)           $ 152.42
total with a warm endpoint                         $ 157.26

How to read it:

  • COST_PER_RUN comes from the training dialog's estimate, which accounts for dataset size, model, epochs, image size, and GPU. Replace it with the estimate for your own dataset (lesson 5); 5,000 images × YOLO26s × 100 epochs on an H100 SXM is about $1.56.
  • The endpoint line dominates. Training and labeling a small project costs a few dollars; keeping an instance warm 730 hours a month costs about $150 in Iowa (rates vary by region, and the deployment dialog shows the exact hourly price).
  • Decision rule: start every endpoint at the free default size. Move to a custom size only when users can't tolerate a cold start of up to a minute and traffic is steady enough to justify the uptime bill.

Plans#

Ultralytics Platform Settings Plans tab comparing the Free, Pro at $29 per seat per month, and Enterprise plans with their included storage, models, deployments, and GPU types

FreePro ($29/seat/month)Enterprise
Credits$5 signup, $25 with a verified company email$30/seat/month, no rolloverCustom
Storage / single upload100 GB / 10 GB500 GB / 20 GBUnlimited / 50 GB
Models / concurrent trainings100 / 3500 / 10Unlimited
Dedicated deployments310Unlimited
Cloud GPU types2426 (adds B200, B300)26
Cloud storage datasets, teams—Yes, up to 5 membersYes, custom size
On Premise, SSO, Enterprise License——Yes

Decision rule: stay on Free while you learn; move to Pro when you need connected cloud storage, a team, more than three endpoints, or more than three concurrent trainings. Pro's $30 monthly credit covers the training and labeling lines of the budget above. The billing docs list every rate.

Pitfalls#

Uploading to a Public dataset by default

Symptom: a dataset with customer images shows up on Explore, and strangers can clone it. Fix: on Free and Pro, new datasets and projects default to Public. Flip the visibility switch in the New Dataset and New Project dialogs every time; making a dataset private later doesn't remove clones that already exist.

Choosing the data region casually

Symptom: an EU customer asks for EU data residency and your workspace stores data in the US. Fix: the data region (US, EU, or AP) is chosen at onboarding and only support can change it. Decide from your contracts before you sign up (lesson 9).

Leaving a warm endpoint running

Symptom: credits drain by about $5 a day with no traffic. Fix: custom sizes bill for uptime, idle or not. Stop endpoints you aren't using, or return them to the default size, which scales to zero for free.

Try It

Write your project plan: copy the stage table, and for each of the seven stages write Platform or your own tool, the plan feature it needs, and an owner's name. Then edit budget.py with your own experiment count, labeling volume, and endpoint choice, and run it. Finally, create your Platform account in the data region your data rules require.

Done When
You've finished the lesson when all of these are true.
  • Every one of the seven stages has a tool and a named owner in your plan.

  • Your edited budget.py prints a monthly total, and you've written down whether you need a warm endpoint and why.

  • Your Platform account exists, and you know its data region and plan.

Show solution

Worked plan for a pill-inspection line camera. Data: Platform upload of nightly frame dumps (owner: Ana). Annotate: Batch Annotation with the latest fine-tune, then review (Ana). Curate, Train, Compare: Platform (Ravi). Deploy: one default-size endpoint in europe-west1, because the line PLC calls it every 30 seconds, so it rarely sits idle long enough to scale to zero (Ravi). Monitor: Platform dashboards plus a cron health check and weekly holdout job in the team's CI (on-call). Budget: 10 runs × $0.23 + 2,000 images × $0.001 = about $4.30 a month on a free endpoint, covered by Pro's $30 credit. Data region EU, because the plant is in Germany; every dataset Private.

What's next

Next you'll get raw images and video into a Platform dataset that reaches Ready on the first try.