> 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 finds 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 looks at a resource's actual usage 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 finds the smallest size that still fits.

This calculation is deterministic. The same usage data always produces the same recommendation.

Rightsize re-analyzes every account every night. Saving a change in Rightsize settings also triggers an immediate recompute.

## What Rightsize Covers

Use the service selector at the top of the page to switch between resource types. Each service has its own cost chart, table, and available-savings figure.

* **AWS accounts:** EC2, EBS, ECS, Auto Scaling groups, and Lambda functions.
* **GCP accounts:** Compute Engine.

Rightsize does not size GPU-accelerated instances or Spot instances. Their real usage does not show up correctly in CPU or memory metrics alone.

## 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.
* **GCP** - grant access for every project you want Rightsize to analyze.

If access is missing for an account or project, Rightsize excludes its resources from its findings. A banner on the page tells you how many resources are excluded, and guides you through granting access.

## Using the Rightsize Page

The page shows a cost chart, summary metrics for that service, and a table of individual resource recommendations. To see findings for each service Rightsize supports, switch to a different service using the service selector at the top of the page.

* **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 this service's resources. The remaining tiles show counts of the findings that apply to that service, plus the share of resources that are Tagged versus Untagged.
  * **EC2 and ECS** - Idle, Over provisioned, and Under provisioned.
  * **Lambda** - Idle, Over provisioned, Optimized, and Not Optimized.
  * **EBS and Auto Scaling** - Idle, Optimized, and Not Optimized.
* **Filters** - narrow the table by Type, Region, Reason, or Cohort. Turn on **Non-Optimized** to hide resources that are already right-sized. By default, the table also hides resources with no recommendation; select **Insufficient data** in the filters to bring them back.
* **Tag filters** - use the **Filter** button to filter by tag key and value.
* **Search** - find a specific resource by name.
* **Share** - 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**. The limit is 50 resources at a time.

## Rightsize Settings

Open **Settings** (the gear icon) to 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 an analysis cost floor (resources cheaper than this are skipped) and a monthly cap on what Rightsize spends reading metrics.
* **Advanced** - manually set any individual value behind your chosen profile, grouped as:
  * **Coverage & cadence** - how much of your spend to cover, and how often to re-check a resource.
  * **Sizing** - the lookback window, the usage percentile, and the CPU and memory headroom.
  * **Savings floors** - the minimum savings, in dollars or as a share of the resource's cost, worth recommending.
* **Per-service overrides** - set a different value 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 change these settings. See [IAM Permissions](/docs/account-management/settings/iam-permissions.md) or ask your org admin if Settings does not let you edit.

## Understanding Each Finding

Every analyzed resource gets a finding: a state that summarizes Rightsize's verdict, and one or more reasons behind it. Use these to see, at a glance, what Rightsize concluded about a resource and why, before you act on it.

{% hint style="info" %}
A message above the page tells you when the current results are not final. This appears on an account without a full month of data, after a settings change, and during a background refresh. The last completed results stay on screen until the new ones are ready.
{% 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 paying for provisioned performance it does not use, or a Lambda function that prices lower on arm64. |
| **Idle**              | The resource shows no meaningful activity. It is a candidate to stop or remove.                                                                                                 |
| **Insufficient data** | Rightsize could not measure the resource with confidence, so it did not guess.                                                                                                  |
| **Not analyzed**      | The resource is deliberately out of scope, for example Spot capacity.                                                                                                           |

### Finding Reasons

Each finding comes with one or more reasons: which metric drove it, 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. Open the Reason filter dropdown to see the labels, or click a row's **AI Suggestion** button to see them as Findings chips on that resource's panel.

**Sizing dimensions** - which metric drove the finding:

* CPU Overprovisioned / Underprovisioned
* Memory Overprovisioned / Underprovisioned
* Group Overprovisioned / Underprovisioned (Auto Scaling groups)
* Network Bandwidth / PPS (Packets Per Second) Overprovisioned
* Volume IOPS (Input/Output Operations Per Second) / Throughput Overprovisioned - an active volume paying for performance it does not use
* Cheaper volume type available
* Provisioned concurrency underused (Lambda) - the busiest observed minute, with headroom, still leaves provisioned capacity unused

**Why a recommendation is capped or withheld:**

| Reason                                                 | Meaning                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Limited by peak load**                               | A smaller size passed the average-usage test, but the actual peak in the window would overload it.                                                                                                                                                                                                                                                 |
| **Limited by network throughput**                      | The smallest size Rightsize will recommend still carries the observed network peak.                                                                                                                                                                                                                                                                |
| **Limited by storage throughput**                      | The same idea, for observed storage traffic. This checks throughput evidence only, not IOPS safety.                                                                                                                                                                                                                                                |
| **Limited by missing memory data / No memory metrics** | No memory agent is reporting data, so the recommendation is bounded by CPU alone. The resource's panel links to the install guide: **Install the CloudWatch agent** on AWS, or **Install the Ops Agent** on Google Cloud.                                                                                                                          |
| **Volatile usage**                                     | Usage swings too much for a confident recommendation at full depth.                                                                                                                                                                                                                                                                                |
| **Burst credits exhausted**                            | A burstable instance is running past its baseline. This points toward upsizing, not downsizing.                                                                                                                                                                                                                                                    |
| **Burst capacity verified**                            | A downsize was only proposed after confirming the volume's burst headroom covers its spikes.                                                                                                                                                                                                                                                       |
| **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 refuses these resources before it reads any metrics, so they cost you nothing to skip. |
| **Extended memory pricing unavailable**                | The resource carries more memory than its instance family's standard allowance, and Rightsize has no rate for that configuration.                                                                                                                                                                                                                  |
| **Linked account missing**                             | Rightsize could not identify which linked account in your AWS Organization owns this resource, so it could not size it.                                                                                                                                                                                                                            |
| **No observed activity**                               | Every metric reading came back empty for the full lookback window. The resource showed no activity for Rightsize to measure.                                                                                                                                                                                                                       |
| **Memory usage unavailable**                           | No memory signal reached Rightsize for this function, so the recommendation does not use memory.                                                                                                                                                                                                                                                   |
| **Memory evidence incomplete**                         | Some memory data arrived for this function, but not enough to size against, so the recommendation does not use memory.                                                                                                                                                                                                                             |
| **Provisioned concurrency spillover detected**         | Invocations went past the provisioned capacity during the window, so Rightsize does not trim that capacity.                                                                                                                                                                                                                                        |
| **Errors or throttling detected**                      | The function showed errors or throttling during the window, so Rightsize does not size against that usage.                                                                                                                                                                                                                                         |

**Other labels you may see:**

| Label                                                       | Meaning                                                                                                                                                                                                         |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Covered by a commitment**                                 | Usage is mostly covered by a Reserved Instance, Savings Plan, or Committed Use Discount. Rightsize still analyzes it. Savings are calculated on the on-demand rate and take effect at the commitment's renewal. |
| **Commitment limits sizing to this family**                 | The covering commitment restricts sizing to the resource's current family, so recommendations stay within it.                                                                                                   |
| **Review Reserved Instance coverage before resizing**       | Resizing this resource would change what its Reserved Instance covers.                                                                                                                                          |
| **Unattached**                                              | A volume not attached to anything.                                                                                                                                                                              |
| **Review before deleting**                                  | Rightsize recommends removing this resource.                                                                                                                                                                    |
| **Arm64 migration candidate**                               | A function ran only on x86 in the billed period, and the same work prices lower on arm64.                                                                                                                       |
| **Compatibility not verified**                              | Billing records cannot confirm that a function's code and dependencies run on arm64, so the migration stays a review.                                                                                           |
| **Review unused standing capacity**                         | Rightsize recommends removing standing capacity that a function did not use.                                                                                                                                    |
| **No invocations this period**                              | A function billed for capacity with no invocations across the observed period.                                                                                                                                  |
| **Memory measured**                                         | Rightsize recorded a function's observed memory use as evidence behind its verdict.                                                                                                                             |
| **Deferred to a later run / Carried from the previous run** | The resource is queued for a later analysis, or its last verdict was reused because nothing changed enough to re-check it.                                                                                      |

### Why a Resource Has No Recommendation

Clicking a row with no recommendation opens a panel naming the reason when it is something you can fix:

* **Grant monitoring access to size this resource.** See Monitoring Access, above.
* **Tag this task's service to get its utilization.** This task carries no service tag, so Rightsize cannot attribute its usage to it.
* **Spot capacity isn't right-sized.** Spot capacity is reclaimed and priced on different terms, so Rightsize leaves it as it is.
* **GPU instances aren't right-sized.** Rightsize sizes on CPU, memory, and network. The accelerators that decide a GPU machine's size are not among them.

Other cases show a general note that no recommendation exists for that resource. A resource marked **Region restricted** is one of them, because no action on your side makes it analyzable.

## 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 and Spot instances are not sized.
* Resources in isolated AWS partitions, such as AWS GovCloud and China regions, are not analyzed. North's commercial connection cannot reach those partitions.
* An AWS linked account or a GCP project without a monitoring grant is excluded from analysis until you grant access to it.
* An arm64 saving is a price estimate, and a change of architecture can change how long a function runs.
* 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
