Skip to main content
Glama

Calculate overtime, Sunday and public holiday pay

overtime_and_premium_pay
Read-only

Calculates BCEA pay for a pay period: ordinary hours, weekday/Saturday overtime (1.5x), Sunday work (1.5x if ordinarily worked, else 2x), and public holiday work (s18). Flags breaches of overtime limits and checks the BCEA earnings threshold (employees above it have no statutory overtime entitlement).

Input Schema

NameRequiredDescriptionDefault
dateNoYYYY-MM-DD, default today
hourly_rateYesOrdinary hourly rate in rand
sunday_hoursNo
ordinary_hoursYesOrdinary hours worked in the period
overtime_hoursNoWeekday/Saturday overtime hours
annual_earningsNoRegular annual earnings, to test the BCEA threshold (optional)
weeks_in_periodNoWeeks covered, used to check the 10h/week overtime cap. Default 1
ordinary_daily_hoursNoHours in a normal shift, for public holiday minimum. Default 9
public_holiday_hoursNo
ordinarily_works_sundayNo
public_holiday_is_ordinary_workdayNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint=false, so the description carries the real burden and does so well: it discloses the multiplier rules (1.5x, 1.5x vs 2x for Sunday depending on whether Sunday is ordinarily worked), the s18 public holiday treatment, and that the tool actively flags overtime-limit breaches and tests the BCEA threshold. It does not describe the response shape, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense but front-loaded sentence that leads with the outcome (BCEA pay) and then walks the components in a logical order matching the schema. No filler, no restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter calculation tool with no output schema, the description explains the inputs and rules well but says nothing about what comes back — whether it returns a per-component breakdown, total, breach flags, or threshold verdict. An agent can call it, but cannot anticipate the result structure, which matters here since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 64% schema coverage across 11 parameters, the description compensates meaningfully: it ties overtime_hours and sunday_hours to specific rate multipliers, links annual_earnings to the threshold test, and implies the ordinarily_works_sunday toggle. It leaves date, weeks_in_period's 10h/week cap, and the public_holiday_is_ordinary_workday boolean largely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Calculates BCEA pay for a pay period') and enumerates the exact components: ordinary hours, weekday/Saturday overtime, Sunday work, and public holiday work. This clearly separates it from siblings like minimum_wage_check and uif_sdl_contributions, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The domain scope implies when to use it (when you need statutory pay computed for a pay period), and it hints at an earnings-threshold gate. But there is no explicit 'use this instead of X' or precondition guidance relative to the sibling wage/leave/contribution tools, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources