Percent (%) Quota
A Percent (%) Quota is the quota attainment figure shown in Salesforce Collaborative Forecasts, expressing how close a forecast or closed amount is to a rep's assigned quota as a percentage.
Definition
A Percent (%) Quota is the quota attainment figure shown in Salesforce Collaborative Forecasts, expressing how close a forecast or closed amount is to a rep's assigned quota as a percentage. It is not a separate field you store. It is a calculated display value, derived as the forecast value divided by the quota value for a given rollup and period.
You set quotas as plain numbers, either a revenue amount or a quantity, depending on the forecast type. Salesforce then renders the percentage and a progress bar under each forecast on the Forecasts page once you turn on Show Quota % Attainment. A rep at 110% has beaten target, regardless of whether the underlying quota was 500K or 1M.
How quota attainment shows up on the Forecasts page
The percentage is calculated, not entered
The percent quota figure is never typed in by hand. Salesforce computes it on the Forecasts page by taking a forecast rollup value and dividing it by the quota assigned to that user for the same period. For a revenue forecast, the math is the forecast amount divided by the quota amount, then shown as a percentage with a progress bar underneath. For a quantity forecast, it uses units instead of currency. Because it is a calculated value, you cannot report on the percentage directly the way you would a stored field. What you store are the raw inputs, the quota number and the opportunity amounts that roll up into each forecast category. The percentage updates live as deals move through stages and as the forecast rollup changes. This matters when reps ask why their attainment shifted overnight. Nothing about the quota changed. The numerator changed because pipeline moved. Understanding that the percent is a ratio of two moving numbers, not a fixed score, is the single most useful thing to communicate to a sales team using forecasts.
Turning on Show Quota % Attainment
The percentage does not appear until two things are true. First, quotas must be enabled for forecasts, which an admin switches on under Forecast Settings by checking Show quotas. Second, each user viewing the page chooses what to display through the gear or column options, where Show Quota Column reveals the raw target and Show Quota % Attainment reveals the calculated percentage and progress bar. These are independent toggles, so a rep can see the percentage without seeing the underlying number, or both together. Visibility is also personal. One user hiding the quota column does not hide it for anyone else. The kind of quota information shown, revenue or quantity, follows whichever forecast type is currently selected. If your org runs several forecast types, each type carries its own quotas and therefore its own percent attainment. A rep flipping between an Opportunity Revenue forecast and a Product Family Quantity forecast will see two different percentages, because the targets and the rollups behind them are entirely separate.
Why a percentage beats a raw number for comparison
Absolute attainment lies when territories differ. A rep who closes 600K looks stronger than one who closes 450K, until you learn the first carried a 1M quota and the second carried a 400K quota. By that measure the second rep hit 112% and the first hit only 60%. The percent quota normalizes for territory size, customer base, and target level, so managers can rank a team fairly on a single column. This is why mature sales operations track both views. Percent attainment answers who is performing relative to their goal. Absolute attainment answers how much revenue is actually landing, which is what finance needs for planning and cash flow. Neither view is complete on its own. A team at 130% across the board might still miss the company number if quotas were set too low, and a team at 80% might be carrying the whole region if their targets were aggressive. Reading the percentage next to the dollar amount, rather than instead of it, keeps both the coaching conversation and the revenue conversation honest.
Where the quota number actually lives
Behind the percentage sits the ForecastingQuota object, available since API version 25.0. Each record holds one user's or territory's target for one period, with fields like QuotaAmount or QuotaQuantity, StartDate, ForecastingTypeId, and the quota owner. That structure is why quotas are inherently per user, per period, and per forecast type. There is no single global quota. There is a grid of them. You can also set quotas by product family when forecasting that way, which creates a quota row per family per period. Knowing the object exists changes how you load data. Hand entry through Setup is fine for a handful of reps, but most teams populate quotas in bulk through Data Loader or the API against ForecastingQuota, mapping a spreadsheet of user IDs, amounts, forecast type IDs, and start dates. Because the records are time bound by StartDate and period, rolling quotas forward each quarter is a repeatable import rather than a manual rebuild. Treat the quota load as a recurring data job, version the spreadsheet, and you avoid the classic problem of a new quarter opening with blank targets and every percentage reading as nothing.
Permissions and the rule about your own quota
Editing quotas is gated by the Manage Quotas user permission. Without it, a user can view quota information on forecasts but cannot change any targets. With it, there is still a guardrail worth knowing. A user can edit the quotas of their subordinates or child territories, but not their own. A sales manager sets numbers for the reps below them, and that manager's own quota is set by someone higher in the role hierarchy or territory model. This keeps people from quietly lowering the bar they are measured against. It also means the org chart and the forecast hierarchy must line up. If a manager is not actually above a rep in the hierarchy, they will not be able to assign that rep a quota, even with the permission. When quota edits fail unexpectedly, the cause is almost always a hierarchy gap rather than a missing permission. Confirm the role or territory relationship first. The permission grants the ability to manage quotas, but the hierarchy decides exactly whose quotas a given person is allowed to touch.
Reading the progress bar without misleading the team
The progress bar under each forecast category is a quick visual, but it can mislead if people forget what feeds it. By default the percentage reflects the forecast rollup against quota, which can include open pipeline depending on how the forecast is read, not only closed-won revenue. A rep glancing at 95% mid-quarter may assume the money is already booked when much of it is still in commit or best case. Decide as a team which number the percentage should anchor to, and say it out loud. Many ops teams pair the on-page percentage with a custom report that compares closed amount to the ForecastingQuota target, so there is a clean closed-versus-quota view that does not move with pipeline. Color and bar length draw the eye, so a half-full bar can feel like failure in week three of a quarter when it is perfectly on pace. Give reps the context that early bars run low by design. The percentage is a guide for conversation, not a verdict, and treating it as a live signal rather than a final grade is what keeps it useful.
Turn on quota % attainment in Collaborative Forecasts
Percent quota attainment is a display option, so the setup is two parts: enable quotas for forecasts as an admin, then let users turn on the attainment column on the Forecasts page. You must already have Collaborative Forecasts and at least one forecast type configured.
- Open Forecast Settings
From Setup, search Forecasts Settings. Confirm Collaborative Forecasts is enabled and note which forecast types are active, since quotas attach per type.
- Enable quotas
In the Show Quotas section, click Edit, check Show quotas, and save. This makes the quota column and attainment percentage available on the Forecasts page.
- Load the quota numbers
Assign a target per user, per period. Enter a few by hand in Setup, or load many at once through Data Loader or the API against the ForecastingQuota object.
- Show the percentage on the page
On the Forecasts page, open the column or gear options and select Show Quota % Attainment. The progress bar and percent appear under each forecast.
Reveals the raw quota target number alongside each forecast, separate from the percentage toggle.
Reveals the calculated percent of quota plus the progress bar beneath each forecast rollup.
Determines whether the quota and percentage are read as revenue or as quantity, since each type carries its own quotas.
- The percentage is calculated from forecast value over quota, so you cannot report on it as a stored field; report on the inputs instead.
- Quota visibility is per user. One person hiding the column does not change what teammates see.
- The Manage Quotas permission lets a user edit subordinates' quotas only, never their own; a hierarchy gap blocks edits more often than a missing permission.
- A new quarter with no loaded quotas shows attainment against nothing, so schedule the quota import before the period opens.
Prefer this walkthrough as its own page? How to Percent (%) Quota in Salesforce, step by step
Trust & references
Cross-checked against the following references.
Straight from the source - Salesforce's reference material on Percent (%) Quota.
Hands-on resources to go deeper on Percent (%) Quota.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. How is a Percent Quota expressed in Salesforce Forecasting?
Q2. When is Percent Quota more useful than tracking absolute-dollar attainment?
Q3. How is the Percent Quota figure derived from the underlying forecasting data?
Discussion
Loading discussion…