> For the complete documentation index, see [llms.txt](https://docs.north.cloud/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.north.cloud/docs/features/rightsize.md).

# Rightsize

Learn how Rightsize finds cost and performance improvements for your cloud resources.

Rightsize identifies cloud resources that cost more than they need to, or that do not have enough capacity for their workload. It recommends a better size for each one, based on how you actually use it.

## How Rightsizing Works

Rightsize reads a resource's usage data over a lookback window. It calculates a high percentile of that usage, so one quiet week does not skew the recommendation. It adds a safety margin on top of that peak, then selects the smallest size that fits.

Rightsize re-analyzes every account every night. Saving a change in Rightsize settings also triggers an immediate recompute. Depending on the number of services and instances you have, the recompute can take up to 10 minutes.

The results on the page cover the last complete calendar month. For example, on October 15, the page shows results for September. A resource that you delete during the current month can still appear, because it existed during the month that the results cover. For an account without a complete month of data, the page shows results for the current month.

Each service has its own rules on top of this approach. The page for each service states what Rightsize recommends for it and how.

## Services Rightsize Covers

Use the service selector at the top of the page to switch between services. Each service has its own cost chart, summary metrics, and table.

| Service        | Provider | What Rightsize recommends                                                                  | Details                                                      |
| -------------- | -------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------ |
| EC2            | AWS      | A smaller or cheaper instance type, or a stop for an idle instance                         | [EC2](/docs/features/rightsize/ec2.md)                       |
| Auto Scaling   | AWS      | A different instance type for the group                                                    | [Auto Scaling](/docs/features/rightsize/auto-scaling.md)     |
| EBS            | AWS      | A cheaper volume type, lower provisioned IOPS or throughput, or a review of an idle volume | [EBS](/docs/features/rightsize/ebs.md)                       |
| ECS            | AWS      | A smaller CPU and memory configuration for a Fargate service's tasks                       | [ECS](/docs/features/rightsize/ecs.md)                       |
| Lambda         | AWS      | A move to arm64, less provisioned concurrency, or a review of unused standing capacity     | [Lambda](/docs/features/rightsize/lambda.md)                 |
| RDS            | AWS      | A database class to review                                                                 | [RDS](/docs/features/rightsize/rds.md)                       |
| Compute Engine | GCP      | A smaller or cheaper machine type, or a stop for an idle instance                          | [Compute Engine](/docs/features/rightsize/compute-engine.md) |

## Monitoring Access

Rightsize needs to read utilization metrics before it can size anything.

* **AWS** - grant access for your org, and separately for any linked account you want Rightsize to analyze. To grant access, update your North stack. See [Update Your North Stack](/docs/getting-started/quickstart/aws-onboarding.md#update-your-north-stack). Some [region-specific restrictions](/docs/features/rightsize.md#finding-reasons) cannot be resolved by granting access.
* **GCP** - grant the Monitoring Viewer role, and add every project you want Rightsize to analyze to your billing project's metric scope. See [Compute Engine](/docs/features/rightsize/compute-engine.md).

If access is missing for an account or project, Rightsize cannot size its resources. They show as **Insufficient data** with the reason **Monitoring access denied**, and the default view hides them. A banner on each service tab shows how many resources are affected. Select **Show affected resources** to see them. When Rightsize cannot read metrics for any resource on the account, the page shows a request to grant access in place of the table.

## Using the Rightsize Page

The page shows a cost chart, summary metrics for the selected service, and a table of individual resource recommendations.

* **Cost chart** - shows the selected service's spend. Switch between **Amortized** and **Unblended** to change the chart's cost basis.
* **Summary metrics** - Available Savings is the total monthly savings across the selected service's resources. The other tiles show counts of findings, plus the share of resources that are Tagged versus Untagged.
* **Filters** - narrow the table by State, Type, Region, Reason, or Cohort.
  * Use the **All accounts** filter to narrow the table to one or more linked accounts or projects. It appears when there is more than one.
  * **Non-Optimized** is on by default. It hides Optimized, Insufficient data, and Not analyzed resources. Turn it off, or choose states in the **State** filter, to see them.
* **Tag filters** - use the **Filter** button to filter by tag key and value.
* **Search** - find a specific resource by name.
* **Share** - if you have write permission on Rightsize, you can share Rightsize findings with others in your organization via email, Slack, or Jira. Select one or more rows with the checkboxes, then choose **Share**. Email and Slack shares are limited to 50 resources at a time.

Click a row's **AI Suggestion** button to open that resource's panel. The panel shows the resource's current state, the recommendation, the findings behind it, and its utilization history. Optimized rows have no button, except on the RDS tab. A row with no recommendation shows its reason in that column instead. Click the reason to open the panel.

## Rightsize Settings

Click the gear icon (**Account Preferences**) to open **Rightsize settings**, where you control how Rightsize analyzes your account.

Reading utilization metrics has a small cost, billed by your cloud provider. The exact amount depends on the settings you choose below, and the Spend guardrail settings cap it.

{% hint style="info" %}
Settings apply to your whole account today. Settings for individual member accounts within one org are not yet available.
{% endhint %}

* **Profile** - choose **Conservative**, **Balanced**, or **Aggressive**. Balanced is the default. Conservative uses wide safety margins and only recommends clear wins. Aggressive uses the tightest margins and surfaces the most savings.
* **Never touch** - exclude specific resources, or anything carrying a tag you choose. Excluding a member of a group excludes the whole group.
* **Spend guardrail** - set two limits. Every service shares them.
  * **Analysis cost floor** - resources that cost less than this each month are not analyzed.
  * **Monthly metrics budget** - a monthly budget for the metric reads that Rightsize makes on your account. When the budget is used up, Rightsize defers further reads. Raise the budget to resume analysis.
* **Advanced** - manually set any individual value behind your chosen profile, grouped as:
  * **Coverage & cadence** - **Spend coverage**, **Cost change threshold**, and **Max result age**. With Spend coverage, Rightsize analyzes the most expensive resources until they reach this share of total spend. The other two set when Rightsize analyzes a resource again: after a change in its monthly cost, or after a number of days.
  * **Sizing** - **Metric lookback**, **CPU percentile**, **CPU headroom**, and **Memory headroom**. Metric lookback is how many days of past utilization each recommendation uses.
  * **Savings floors** - **Min savings** and **Min savings percent**. Rightsize hides a recommendation that saves less than this amount each month, or less than this share of the resource's current cost.
* **Per-service overrides** - set values for one service. Select the service, then fill the fields you want to override. An empty field uses the account default shown in that field. **Reset to account default** clears every override for that service.

You need write permission on Rightsize to open these settings. Without it, the gear icon is turned off. See [IAM Permissions](/docs/account-management/settings/iam-permissions.md), or ask your org admin.

## Understanding Each Finding

Every analyzed resource gets a finding: a state that summarizes the result, and one or more reasons behind it. Use these to see, at a glance, what Rightsize calculated for a resource and why, before you act on it.

{% hint style="info" %}
A message above the page shows when the current results are not final. It appears after a settings change, during a background refresh, and on an account without a full month of data. After a settings change and during a refresh, the last completed results stay on screen until the new ones are ready. On an account without a full month of data, the results are estimates based on partial data.
{% endhint %}

### Finding States

Each finding has one state:

| State                 | Meaning                                                                                                                                                                      |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Over provisioned**  | The resource is bigger than its usage needs. A smaller option is recommended.                                                                                                |
| **Under provisioned** | Usage is close to the limit of the current size. A bigger option is recommended.                                                                                             |
| **Optimized**         | The current size is already the right one.                                                                                                                                   |
| **Not optimized**     | A cost improvement exists that is not a size change. For example, a volume with provisioned performance that it does not use, or a Lambda function that costs less on arm64. |
| **Insufficient data** | Rightsize did not have enough data to size the resource, so it made no recommendation.                                                                                       |
| **Not analyzed**      | The resource is deliberately out of scope, for example Spot capacity.                                                                                                        |

Rightsize also flags a resource as **Idle** when it shows no meaningful activity. Idle is separate from the state. It has its own column in the table and its own tile in the summary metrics.

### Finding Reasons

Each finding has one or more reasons: which metric it is based on, why a recommendation was capped, or why none could be made. Check these before you act on a recommendation, to understand what it is actually based on.

The table's Reasons column shows a count of how many reasons apply to a resource. Click a row's **AI Suggestion** button to see them as Findings chips on that resource's panel.

Most reasons are specific to the service. However, there are a few that apply across all services:

* **Monitoring access denied** - Rightsize does not have the monitoring grant needed to read this resource's utilization metrics. See Monitoring Access, above.
* **Region restricted** - the resource sits in an isolated AWS partition that North's commercial connection cannot reach, such as AWS GovCloud or a China region. Granting more access does not change this, because the partition is unreachable rather than unauthorized. Rightsize skips these resources before it reads any metrics, so they cost you nothing.
* **Linked account missing** - Rightsize could not identify which linked account in your AWS Organization owns this resource.
* **Covered by a commitment** - a Reserved Instance, Savings Plan, or Committed Use Discount covers at least half of the resource's usage. Rightsize still analyzes it. The saving is estimated at the resource's blended commitment rate, and the panel shows "Estimated at your commitment's blended rate." Resizing a resource does not cancel its commitment.
* **Deferred to a later run / Carried from the previous run** - the resource is queued for a later analysis, or its last result was reused because nothing changed enough to re-check it.

### Why a Resource May Have No Recommendation

A row with no recommendation shows a short reason in the **AI Suggestion** column, for example "Grant monitoring access to size this resource." Click the reason to open a panel with more detail and the reasons as chips. For a Google Cloud resource without monitoring access, the panel also has a **Grant access** button.

A resource marked **Region restricted** shows "North cannot reach this region from your account connection". No action on your side makes it analyzable. When no specific reason applies, the column shows "No recommendation for this resource." Each service page lists the cases that apply to it.

### Why Some Recommendations Might Be Missing

Sometimes Rightsize cannot show some or all of your recommendations. A message on the page shows the reason. The list below includes a few examples of such messages.

* **Analyzing this account…** - the first analysis of the account is running. The page refreshes automatically, so you can leave and come back.
* **Analysis is temporarily off.** - analysis is paused. Recommendations refresh when analysis resumes. Your settings and history are unaffected.
* **Rightsize is not enabled for this account.** - Rightsize is not turned on for the selected account.
* **Results don't currently include** - a banner that shows how many accounts the results leave out, and which ones. The other results stay on the page.
* **Could not load recommendations.** - the results failed to load. Try again in a few minutes.
* **You don't have access to this account's recommendations.** - your North user cannot view this account. Switch to an account you manage, or ask an administrator for access.

When the table is empty, a line above it shows the reason. For example, it shows how many resources fell below the analysis cost floor, or that the monthly metrics budget is used up. Raise the budget in Rightsize settings to resume analysis.

## Acting on a Recommendation

When you have acted on a recommendation, or when one does not fit your resource, record that from the resource's panel. Both actions need write permission on Rightsize.

* **Already resolved** - confirms that you reviewed and resolved the recommendation. Rightsize removes it from your shortlist.
* **Not a good suggestion?** - confirms that the recommendation is not relevant. North uses your feedback for future Rightsize recommendations.

## Limitations

* Rightsize only recommends. It never changes, resizes, or stops a resource on your behalf.
* GPU-accelerated instances are not sized. Rightsize sizes on CPU, memory, and network metrics. A GPU-accelerated instance's size depends on its GPUs, which those metrics do not measure.
* Spot instances are not sized. Spot capacity is reclaimed and priced on different terms, so Rightsize does not size it.
* Rightsize is not available for Azure accounts.
* Resources in isolated AWS partitions, such as AWS GovCloud and China regions, are not analyzed. North's commercial connection cannot reach those partitions.
* Settings apply to your whole account today, not to individual member accounts within it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.north.cloud/docs/features/rightsize.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
