{
  "title": "Bonus pool allocation calculator",
  "human_url": "https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator/",
  "agent_url": "https://happytails.ai/agents/en/finance-tools/bonus-pool-allocation-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator.md",
  "content": "Bonus pool allocation calculator\nSplit 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.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Bonus pool allocation calculator\nEnter the bonus pool, currency and decimal places.\nChoose pay-based weights or direct weights.\nPaste one employee per line with a header row, such as name, basePay, targetPercent and rating.\nCalculate, review each award and download the CSV.\nUseful next steps\nPay raise calculator\nSalary to hourly calculator\nExpense splitter\nWeights decide the share\nWith 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.\nEvery cent is placed\nAwards 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.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Pay raise calculator",
      "url": "https://happytails.ai/en/finance-tools/pay-raise-calculator/"
    },
    {
      "name": "Salary to hourly calculator",
      "url": "https://happytails.ai/en/finance-tools/salary-to-hourly/"
    },
    {
      "name": "Expense splitter",
      "url": "https://happytails.ai/en/calculators/expense-splitter/"
    }
  ],
  "tool": {
    "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"
    }
  },
  "markdown": "# Bonus pool allocation calculator\n\n- Human page: https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator/\n- Markdown: https://happytails.ai/en/finance-tools/bonus-pool-allocation-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/finance-tools/bonus-pool-allocation-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `bonus-pool-allocation-calculator` |\n| Category | finance-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nEach 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.\n\n### Inputs and settings\n\nText input: Employees.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nname;basePay;targetPercent;rating\nAvery;90000;10;1.2\nBlake;75000;10;1\nCasey;60000;8;0.9\n```\n\nOne 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.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `pool` | Bonus pool | text | \"10000.00\" |  |\n| `weighting` | Weighting | select | \"pay\" | Allowed: pay, direct |\n| `currency` | Currency code | text | \"USD\" |  |\n| `precision` | Currency decimal places | select | \"2\" | Allowed: 0, 1, 2, 3, 4, 5, 6 |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nUp 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.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"bonus-pool-allocation-calculator\",\n  \"category\": \"finance-tools\",\n  \"built\": true,\n  \"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.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"pool\",\n        \"label\": \"Bonus pool\",\n        \"value\": \"10000.00\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 32\n      },\n      {\n        \"key\": \"weighting\",\n        \"label\": \"Weighting\",\n        \"value\": \"pay\",\n        \"type\": \"select\",\n        \"values\": [\n          \"pay\",\n          \"direct\"\n        ],\n        \"labels\": {\n          \"pay\": \"Base pay times target percentage times rating\",\n          \"direct\": \"Direct weights\"\n        }\n      },\n      {\n        \"key\": \"currency\",\n        \"label\": \"Currency code\",\n        \"value\": \"USD\",\n        \"type\": \"text\",\n        \"maxLength\": 3,\n        \"autoCapitalize\": \"characters\"\n      },\n      {\n        \"key\": \"precision\",\n        \"label\": \"Currency decimal places\",\n        \"value\": \"2\",\n        \"type\": \"select\",\n        \"values\": [\n          \"0\",\n          \"1\",\n          \"2\",\n          \"3\",\n          \"4\",\n          \"5\",\n          \"6\"\n        ]\n      }\n    ],\n    \"registrationFamily\": \"exact-money-form-reference\",\n    \"presentation\": \"metrics\",\n    \"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.\",\n    \"inputMaxLength\": 200000,\n    \"inputErrorCode\": \"EXACT_MONEY_FORM_REFERENCE_TOO_LONG\",\n    \"inputKeywords\": [\n      {\n        \"id\": \"exact-money-form-reference/bonus-pool-allocation-calculator/employees.header\",\n        \"kind\": \"header\",\n        \"code\": \"EXACT_MONEY_FORM_REFERENCE_EMPLOYEES_COLUMNS\",\n        \"fold\": \"name\",\n        \"values\": {\n          \"name\": [\n            \"name\",\n            \"Name\",\n            \"Employee\"\n          ],\n          \"basePay\": [\n            \"basePay\",\n            \"Base pay\",\n            \"Salary\",\n            \"Pay\"\n          ],\n          \"targetPercent\": [\n            \"targetPercent\",\n            \"Target percent\",\n            \"Target\",\n            \"Bonus target\"\n          ],\n          \"rating\": [\n            \"rating\",\n            \"Rating\",\n            \"Multiplier\",\n            \"Rating multiplier\"\n          ],\n          \"weight\": [\n            \"weight\",\n            \"Allocation weight\",\n            \"Direct weight\"\n          ]\n        },\n        \"describedBy\": [\n          \"Name the employee columns Name, Base pay, Target percent, Rating and Allocation weight in the header row.\",\n          \"Employees\"\n        ]\n      }\n    ],\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 200000,\n      \"inputMode\": \"text\",\n      \"label\": \"Employees\",\n      \"placeholder\": \"name;basePay;targetPercent;rating\\nAvery;90000;10;1.2\\nBlake;75000;10;1\\nCasey;60000;8;0.9\",\n      \"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.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nSplit 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.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Bonus pool allocation calculator\n\n1. Enter the bonus pool, currency and decimal places.\n2. Choose pay-based weights or direct weights.\n3. Paste one employee per line with a header row, such as name, basePay, targetPercent and rating.\n4. Calculate, review each award and download the CSV.\n\n## Useful next steps\n\n- [Pay raise calculator](https://happytails.ai/en/finance-tools/pay-raise-calculator/) ([Markdown](https://happytails.ai/en/finance-tools/pay-raise-calculator.md))\n\n- [Salary to hourly calculator](https://happytails.ai/en/finance-tools/salary-to-hourly/) ([Markdown](https://happytails.ai/en/finance-tools/salary-to-hourly.md))\n\n- [Expense splitter](https://happytails.ai/en/calculators/expense-splitter/) ([Markdown](https://happytails.ai/en/calculators/expense-splitter.md))\n\n## Weights decide the share\n\nWith 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.\n\n### Every cent is placed\n\nAwards 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.\n"
}