Pricing
- Billed by tileset processing and tileset hosting
- See rates and discounts per tileset processing and tileset hosting in the pricing page's Tilesets section
Tilesets pricing is billed monthly based on the number of processing jobs and hosted tilesets in your account. For processing jobs, you are billed for the processing resources each job consumes, including processed file size (in megabytes) and processed compute units (CUs).
Tilesets processing
Tileset processing is a one-time cost incurred when you publish an MTS job or create an upload with the Uploads API. You are only billed for successfully published tilesets or successfully created uploads.
Each tilesets processing job is billed in two ways: file size and compute units (or CUs).
File size
For each processing job, you are billed for the file size of your processed data, which is measured in megabytes (MB). Processed MB will appear on your invoice as Tilesets Processing File Size.
For MTS jobs, this is the file size of the tileset source of your job. For the Uploads API, this is the file size of the uploaded source file.
For MTS, uploading data to a tileset source is free. You are not billed for processing until you publish a job for a tileset.
Compute units (CUs)
Compute units (also called CUs) represent the processing resources a tilesets processing job from MTS or the Uploads API consumes on Mapbox infrastructure. For example, a tileset that uses 4.50 CUs consumes roughly three times more compute than a 1.50 CU tileset. Processed CUs will appear on your invoice as Tilesets Processing CU.
Most vector tileset processing jobs range from 0.3 CUs to 5 CUs. Large complex tilesets require more CUs than small simple tilesets. For example, a zoom level 0-16 tileset covering a large country with thousands of large polygon features and a 50 GB tileset source uses more CUs than a zoom level 10-11 tileset covering a single city with a hundred point features and a 10 MB source file size.
Tilesets hosting
Unlike tileset processing, tileset hosting is a recurring charge. You are billed on a monthly basis for the number of tilesets hosted in your account. Each day that you host a tileset counts as a tileset hosting day. For example, 3 tilesets hosted for 15 days is 45 tileset hosting days (3 tilesets * 15 days). Tileset hosting charges will appear on your invoice as Tileset Hosting Days.
The file size of hosted tilesets does not contribute to any hosting costs. You are only billed for the number of tileset hosting days per month. Tilesets created before October 1, 2020, are exempt from tileset hosting billing.
The table below shows how average monthly hosted tilesets convert to tileset hosting days. This table assumes a 30-day month. It also assumes you did not create or delete any additional tilesets during the 30-day period.
Average monthly hosted tilesets | Tileset hosting days |
---|---|
5 | 150 |
10 | 300 |
50 | 1,500 |
100 | 3,000 |
1,000 | 30,000 |
5,000 | 150,000 |
10,000 | 300,000 |
100,000 | 3,000,000 |
Viewing usage in the Tileset Explorer
You can view the processing billing metrics (CUs and file size) for your successfully published or processed tilesets in the Tileset Explorer. To access the Tileset Explorer, go to your Mapbox Studio Tilesets page and click on a tileset's name.
Once the Explorer has opened, the Billing metrics graph will appear in the bottom left corner of the page. This graph shows the CUs and file size of the latest processing event for the tileset.
For MTS jobs, you can also view the past CU and file size values for previous MTS jobs in the job history panel. To open the job history panel, click on Job history in the top right-hand corner when viewing a tileset in the Tileset Explorer.
Tracking usage in Statistics
You can track your tilesets usage in your account's Statistics page. There are three products for tilesets usage on the Statistics page: Tileset Processing CU, Tileset Processing File Size, and Tileset Hosting Days. For Tileset Hosting Days, the number of tileset hosting days for a given day is the same as the number of tilesets hosted in your account for that day. For example, this account hosted 21 tilesets on July 2.
Understanding your invoice
If you submitted tileset processing jobs that month, you should see three line items for tilesets usage on your monthly invoice:
- Tilesets Processing File Size
- Tilesets Processing CU
- Tileset Hosting Days
If you did not submit any tileset processing jobs that month but are still hosting tilesets, your invoice will only have a single line item for Tileset Hosting Days.
Estimating costs
Estimating processing costs
Your number of monthly processing jobs (job frequency) has the largest impact on processing costs. To estimate your processing costs, first determine how many tilesets you need to create each month and the number of monthly updates (job frequency) for each tileset. Second, multiply the number of monthly jobs by the estimated file size in MB per job and estimated compute units (CUs) per job.
For example, one tileset with 5,000 jobs per month at 0.5 MB and 1.5 CUs is 2,500 MB and 7,500 CUs per month. 5,000 jobs times 0.5 MB per job is 2,500 total MB. 5,000 jobs times 1.5 CUs per job is 7,500 CUs.
To calculate processing costs, enter the number of monthly MB and CUs into the calculator for tileset processing on the pricing page.
Estimating job frequency
The table below converts common job frequencies (e.g., updates every 5 minutes, every hour, etc.) to monthly jobs. This table assumes a 30-day month.
Job frequency | Monthly jobs |
---|---|
1 minute | 43,200 |
5 minutes | 8,640 |
15 minutes | 2,880 |
30 minutes | 1,440 |
1 hour | 720 |
3 hours | 240 |
6 hours | 120 |
12 hours | 60 |
1 day | 30 |
1 week | 4 |
1 month | 1 |
Estimating file size
For MTS jobs, you can check the file size for a tileset source using the view-source
command of the Tilesets CLI or the Retrieve tileset source information endpoint of the MTS API.
For the Uploads API jobs, use the file size of the uploaded source file.
Estimating compute units
The most accurate method to estimate CUs is to submit a single test job for a new tileset workload and review the CU values for that job. You can also review CUs for existing or previous similar jobs in your account. If you cannot submit a new test job or do not have previous tilesets jobs, you can use average CU values.
99% of tileset jobs, whether on MTS or the Uploads API, are 5 CUs or less. The average CU value for all tileset jobs on the Mapbox platform ranges from 0.90 to 1.00 CUs. On average, raster tileset jobs use twice as many CUs as vector tileset jobs. 1 CU per vector job and 2 CUs per raster job are good average CU values for estimating monthly processing CUs.
File size and zoom levels have the largest impact on CUs, with MTS recipe features having only a small impact. The larger the file size and the more zoom levels you tile, the more CUs a job will use. Jobs that use high zoom levels (11+) will generally use more CUs than jobs that use low zoom levels (10 or less).
The tables below show how file size and maximum zoom level typically affect CU values for jobs. These tables do not guarantee CU values, and your results may differ.
Maximum zoom level 10 or less
File size | CU range |
---|---|
< 1 GB | < 5 |
1 - 5 GB | 5 - 30 |
> 5 GB | 30+ |
Maximum zoom level 11 or greater
File size | CU range |
---|---|
< 200 MB | < 5 |
200 MB - 5 GB | 5 - 30 |
> 5 GB | 30+ |
Estimating hosting costs
To estimate your hosting costs, determine how many tilesets you need to host per month and how many days per month you need to host each tileset. To calculate tileset hosting days, multiply the number of tilesets times the days per month you host each tileset. For example, if you create 10 tilesets every day and delete each tileset after 7 days, that is 70 tileset hosting days.
To calculate hosting costs, enter the number of monthly tileset hosting days into the calculator for tileset hosting on the pricing page.
Managing costs
Managing processing costs
Tileset processing is a one-time cost incurred when you publish an MTS job or create an upload with the Uploads API. You cannot lower processing costs associated with any tilesets you have already published with MTS or uploaded with the Uploads API.
In general, being efficient and intentional with your tilesets processing jobs will reduce your costs. Only submit the minimum number of processing jobs you need and the minimum amount of data for your use case.
The following tips can help you reduce processing costs for future tilesets:
- Reduce job frequency
- Clean up source data
- Reduce zoom levels
- Use MTS recipes
Reduce job frequency
Reducing job frequency will have the largest impact on decreasing your monthly processing costs. For example, switching from updates every 5 minutes (8,640 monthly jobs) to updates every 15 minutes (2,880 monthly jobs) will reduce your costs by 66%.
Another way to reduce job frequency is to only update your tileset when geometries change. If most of your updates affect your data's attributes rather than their geometries, you may be able to leave the volatile attributes out of the tileset and instead join them on the client side. This way, you can update your data's attributes without updating the whole tileset.
For example, consider a state-level unemployment dataset: the state geometries rarely change, while the unemployment numbers change often. A cost-effective strategy would be to create a static state boundaries tileset and then join the unemployment data dynamically on the client. See the Data Joins with Mapbox Boundaries tutorial for more information on how to use this data-join technique.
Clean up source data
The cleaner and more efficient your source data, the lower your processing costs. The amount of data you process roughly correlates with file size. File size has the second greatest impact on your processing costs after job frequency.
The following tips can help you clean up your source data:
- Limit latitude and longitude coordinates in your source dataset to 6 decimal points (10cm precision) or less using a tool like geojson-precision
- Remove unnecessary layers from your tileset
- Remove unnecessary features from your source dataset
- Remove unnecessary feature attributes from your source dataset
- Reduce feature attribute size (e.g., shorter strings)
Reduce zoom levels
The fewer zoom levels your tileset uses, the lower the CUs for your job and the lower your processing costs. Only tile the zoom levels needed for your use case. For example, a building footprint use case likely does not need zoom levels 0-11, so you could tile your data from zoom levels 12 through 15, and rely on overzooming for zoom levels 16 and higher.
The maxzoom
value does not determine which zoom level a map zooms to. Your
map will still zoom past the maxzoom
specified in your tileset recipe
because of overzooming.
The maximum zoom level of your tileset has a higher impact on CUs than the minimum zoom level. Maximum zoom levels of 11 or higher have a large impact on increasing CUs, with maximum zoom levels of 14 or higher having an even larger impact. To reduce costs, stick to zoom level 10 (10-meter precision) or less for your tileset processing jobs.
You cannot specify the maximum zoom level of a tileset when using the Uploads API or uploading data using Mapbox Studio. The Uploads API guesses what zoom levels your tileset needs, based on the data you upload. We recommend using MTS over the Uploads API so that you have more control over your tilesets, and, ultimately, your costs.
Use MTS recipes
Certain MTS recipe configurations may increase or decrease CUs for your processing jobs. MTS recipe configurations have a smaller impact on CUs than cleaning up source data and reducing zoom levels. Certain MTS recipe configurations, like simplification
may either increase or decrease CUs depending on how they are used.
See the MTS recipe specification for detailed information on each recipe configuration.
Increases CUs | Decreases CUs |
---|---|
buffer_size | bbox |
distance | filter |
simplification (lower values) | simplification (higher values) |
highest_where | limit |
highest_where_in_distance | remove_filled |
lowest_where | union |
lowest_where_in_distance | zoom_element |
order | |
outward_only | |
union |
Managing hosting costs
The following tips can reduce your tileset hosting costs:
- Delete hosted tilesets after they are no longer needed.
- Periodically delete inactive or unused hosted tilesets.
- Where possible, reuse existing tileset IDs instead of creating new unique tilesets for each processing job.
Identifying inactive hosted tilesets in Studio
The Tileset hosting sidebar in Mapbox Studio Tilesets page can help you identify inactive tilesets for deletion. This sidebar shows the active and inactive tilesets for your account in the past 30 days. An active tileset had at least 1 API request in the past 30 days.
You can also view the number of API requests in the past 30 days for an individual tileset in the Mapbox Studio Tilesets page.
Deleting hosted tilesets
You cannot restore any deleted tilesets so exercise caution when deleting tilesets.
You can delete tilesets in your account using the Mapbox Studio Tilesets page, the delete
command in the Tilesets CLI, or the Delete tileset endpoint in the MTS API.
You can delete up to 25 tilesets at a time in Mapbox Studio. You can only delete tilesets one at a time via the Tilesets CLI or the delete tileset endpoint in the MTS API.
You will receive a warning before deleting any tilesets. You must confirm deletion before any tilesets are deleted. You can use the --force
flag in the Tilesets CLI to override the warning for scripting and automation.