Description
Compare two supplied same-currency annual base salaries and bonuses against explicit weekly hours and paid weeks; report nominal gross cash and effective hourly differences without taxes, benefits, exchange rates or recommendations.
Annual gross cash and effective hourly pay compare different aspects of compensation. An hourly comparison needs an explicit hours denominator, while one currency label keeps nominal amounts comparable without introducing exchange-rate assumptions.
Compare two supplied same-currency annual base salaries and bonuses against explicit weekly hours and paid weeks; report nominal gross cash and effective hourly differences without taxes, benefits, exchange rates or recommendations.
When to use this tool
Use this tool when you need the stated calculation or classification with explicit inputs, intermediate evidence, and boundary conventions.
How to use the tool and how it works
- Supply currency, first, second in the field shapes below.
- Run the calculation. Correct format, shape, range, or undefined-statistic errors before interpreting a result.
- Read currency, first, second, annualGrossDifference, hourlyPayDifference. Use the conventions below.
For each offer, add annualBasePay and annualBonus for annualGrossPay, multiply weeklyHours by paidWeeksPerYear for annualPaidHours, and divide gross pay by those hours. Return the second offer minus the first for annual and effective-hourly differences.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| currency | Currency | Required. Text; minimum UTF-16 length 1; maximum UTF-16 length 16. |
| first | First supplied offer, using the shared currency and explicit paid-hours convention. | Required. Object; no unknown keys. |
| first.annualBasePay | Annual base cash pay in the declared currency. | Required. Finite number; minimum 0. |
| first.annualBonus | Signed annual cash bonus or adjustment in that same currency. | Required. Finite number. |
| first.weeklyHours | Positive hours used per paid week for this comparison. | Required. Finite number; strictly above 0. |
| first.paidWeeksPerYear | Positive number of paid weeks represented in annual cash pay. | Required. Finite number; strictly above 0. |
| second | Second supplied offer, compared with the first. | Required. Object; no unknown keys. |
| second.annualBasePay | Annual base cash pay in the declared currency. | Required. Finite number; minimum 0. |
| second.annualBonus | Signed annual cash bonus or adjustment in that same currency. | Required. Finite number. |
| second.weeklyHours | Positive hours used per paid week for this comparison. | Required. Finite number; strictly above 0. |
| second.paidWeeksPerYear | Positive number of paid weeks represented in annual cash pay. | Required. Finite number; strictly above 0. |
| Output field | Interpretation | Returned shape |
|---|---|---|
| currency | Currency | Required. Text; minimum UTF-16 length 1; maximum UTF-16 length 16. |
| first | First supplied offer, using the shared currency and explicit paid-hours convention. | Required. Object; no unknown keys. |
| first.annualGrossPay | Annual base plus bonus in currency units. | Required. Finite number. |
| first.annualPaidHours | weeklyHours times paidWeeksPerYear, in hours per year. | Required. Finite number; strictly above 0. |
| first.effectiveHourlyPay | Annual gross cash divided by annual paid hours, in currency units per hour. | Required. Finite number. |
| second | Second supplied offer, compared with the first. | Required. Object; no unknown keys. |
| second.annualGrossPay | Annual base plus bonus in currency units. | Required. Finite number. |
| second.annualPaidHours | weeklyHours times paidWeeksPerYear, in hours per year. | Required. Finite number; strictly above 0. |
| second.effectiveHourlyPay | Annual gross cash divided by annual paid hours, in currency units per hour. | Required. Finite number. |
| annualGrossDifference | Second annual gross pay minus first, in currency units per year. | Required. Finite number. |
| hourlyPayDifference | Second effective hourly pay minus first, in currency units per hour. | Required. Finite number. |
{
"input": {
"currency": "EUR",
"first": {
"annualBasePay": 60000,
"annualBonus": 2400,
"weeklyHours": 40,
"paidWeeksPerYear": 52
},
"second": {
"annualBasePay": 65000,
"annualBonus": 0,
"weeklyHours": 35,
"paidWeeksPerYear": 52
}
},
"output": {
"currency": "EUR",
"first": {
"annualGrossPay": 62400,
"annualPaidHours": 2080,
"effectiveHourlyPay": 30
},
"second": {
"annualGrossPay": 65000,
"annualPaidHours": 1820,
"effectiveHourlyPay": 35.714285714285715
},
"annualGrossDifference": 2600,
"hourlyPayDifference": 5.714285714285715
}
} Limitations and assumptions
- Amounts share one caller-declared currency and no exchange conversion occurs. Signed bonuses and gross results are allowed; hours must be positive and finite. This compares nominal cash only, excluding taxes, benefits, unpaid work, and suitability of either offer.
- The field tables state structural bounds; cross-field constraints and bounded search or output budgets also apply. Unknown keys are rejected where the object contract disallows them. Input errors are distinct from null fields and deliberate invalid controls in a successful output.
Alternative or Complementary methods
Choose the statistic according to the question and data conventions. Inspect the supplied series or matrix and the stated assumptions before comparing outputs from implementations with different defaults.