# Bonus pool allocation calculator

- Human page: https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator/
- Markdown: https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator.md
- Structured JSON: https://happytails.ai/agents/en/finance-tools/bonus-pool-allocation-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `bonus-pool-allocation-calculator` |
| Category | finance-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Each award is the pool times the employee weight divided by the total weight. Awards are whole minor currency units; the units left after rounding down go to the largest remainders, and equal remainders go to the earlier row. Awards always add up to the pool. Processing stays on your device.

### Inputs and settings

Text input: Employees.

Example or placeholder shown in the interface (not a validated fixture):

```text
name;basePay;targetPercent;rating
Avery;90000;10;1.2
Blake;75000;10;1
Casey;60000;8;0.9
```

One employee per line. Start with a header row naming the columns: name, basePay, targetPercent and rating, or name and weight for direct weights. Separate values with commas, semicolons or tabs, and write amounts without currency symbols. Up to 200,000 characters. Review the settings before running.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `pool` | Bonus pool | text | "10000.00" |  |
| `weighting` | Weighting | select | "pay" | Allowed: pay, direct |
| `currency` | Currency code | text | "USD" |  |
| `precision` | Currency decimal places | select | "2" | Allowed: 0, 1, 2, 3, 4, 5, 6 |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Up to 500 employees after a required header row, and 200,000 characters. Pool up to 1,000,000,000,000 with up to the selected currency decimal places (0 to 6). Target percentages up to 1,000 and ratings up to 10. Calculated on your device. Download a JSON report and CSV files.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "bonus-pool-allocation-calculator",
  "category": "finance-tools",
  "built": true,
  "requirements": "Up to 500 employees after a required header row, and 200,000 characters. Pool up to 1,000,000,000,000 with up to the selected currency decimal places (0 to 6). Target percentages up to 1,000 and ratings up to 10. Calculated on your device. Download a JSON report and CSV files.",
  "implementation": {
    "fields": [
      {
        "key": "pool",
        "label": "Bonus pool",
        "value": "10000.00",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 32
      },
      {
        "key": "weighting",
        "label": "Weighting",
        "value": "pay",
        "type": "select",
        "values": [
          "pay",
          "direct"
        ],
        "labels": {
          "pay": "Base pay times target percentage times rating",
          "direct": "Direct weights"
        }
      },
      {
        "key": "currency",
        "label": "Currency code",
        "value": "USD",
        "type": "text",
        "maxLength": 3,
        "autoCapitalize": "characters"
      },
      {
        "key": "precision",
        "label": "Currency decimal places",
        "value": "2",
        "type": "select",
        "values": [
          "0",
          "1",
          "2",
          "3",
          "4",
          "5",
          "6"
        ]
      }
    ],
    "registrationFamily": "exact-money-form-reference",
    "presentation": "metrics",
    "note": "Each award is the pool times the employee weight divided by the total weight. Awards are whole minor currency units; the units left after rounding down go to the largest remainders, and equal remainders go to the earlier row. Awards always add up to the pool. Processing stays on your device.",
    "inputMaxLength": 200000,
    "inputErrorCode": "EXACT_MONEY_FORM_REFERENCE_TOO_LONG",
    "inputKeywords": [
      {
        "id": "exact-money-form-reference/bonus-pool-allocation-calculator/employees.header",
        "kind": "header",
        "code": "EXACT_MONEY_FORM_REFERENCE_EMPLOYEES_COLUMNS",
        "fold": "name",
        "values": {
          "name": [
            "name",
            "Name",
            "Employee"
          ],
          "basePay": [
            "basePay",
            "Base pay",
            "Salary",
            "Pay"
          ],
          "targetPercent": [
            "targetPercent",
            "Target percent",
            "Target",
            "Bonus target"
          ],
          "rating": [
            "rating",
            "Rating",
            "Multiplier",
            "Rating multiplier"
          ],
          "weight": [
            "weight",
            "Allocation weight",
            "Direct weight"
          ]
        },
        "describedBy": [
          "Name the employee columns Name, Base pay, Target percent, Rating and Allocation weight in the header row.",
          "Employees"
        ]
      }
    ],
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 200000,
      "inputMode": "text",
      "label": "Employees",
      "placeholder": "name;basePay;targetPercent;rating\nAvery;90000;10;1.2\nBlake;75000;10;1\nCasey;60000;8;0.9",
      "help": "One employee per line. Start with a header row naming the columns: name, basePay, targetPercent and rating, or name and weight for direct weights. Separate values with commas, semicolons or tabs, and write amounts without currency symbols. Up to 200,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Split a fixed bonus pool across employees by base pay, target percentage and rating, or by your own weights. Awards add up to the pool exactly, to the cent.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Bonus pool allocation calculator

1. Enter the bonus pool, currency and decimal places.
2. Choose pay-based weights or direct weights.
3. Paste one employee per line with a header row, such as name, basePay, targetPercent and rating.
4. Calculate, review each award and download the CSV.

## Useful next steps

- [Pay raise calculator](https://happytails.ai/en/finance-tools/pay-raise-calculator/) ([Markdown](https://happytails.ai/en/finance-tools/pay-raise-calculator.md))

- [Salary to hourly calculator](https://happytails.ai/en/finance-tools/salary-to-hourly/) ([Markdown](https://happytails.ai/en/finance-tools/salary-to-hourly.md))

- [Expense splitter](https://happytails.ai/en/calculators/expense-splitter/) ([Markdown](https://happytails.ai/en/calculators/expense-splitter.md))

## Weights decide the share

With pay-based weights, each weight is base pay times target percentage times rating. Avery at 90000, 10 percent and rating 1.2 has weight 10800. With a total weight of 22620, Avery receives 10800 divided by 22620 of a 10000.00 pool, an exact share of 4774.535809. Direct weights use the numbers you enter instead.

### Every cent is placed

Awards are rounded down to whole cents first. The cents left over go one each to the employees with the largest remainders, and equal remainders go to the earlier row, so the awards always add up to the pool. This is the largest remainder method, also called Hamilton’s method, described in Balinski and Young, Fair Representation, 2nd edition (Brookings Institution Press, 2001). The report shows each exact share and which awards received an extra unit. It is not tax, payroll or pay-equity advice.
