Offer Formula Fields Playbook
Build Smart Offer Workflows
Automate Offer Calculations with Offer Formula Fields
In this playbook, you'll explore five Offer Formula Field examples that demonstrate how teams use them in real\-world offer workflows\.
Each section covers a different use case, including why it matters, how to set it up, and what it enables your team to do\.
Offer Formula Fields are available on Plus and Enterprise plans
How to use this Playbook
Use this playbook to explore real\-world examples of Offer Formula Fields and spark ideas for your own offer workflows\.
Follow the examples in order, or jump directly to the one that feels most relevant to your team\.
Who this playbook is for
- Recruiting Operations owners building offer workflows and compensation logic
- Admins responsible for configuring custom fields and offer processes
- Talent Leaders who want more consistency and visibility in how offers are structured
Examples you'll explore
Follow each example below in order, or jump to the one that feels most useful for your team right now\.
- Calculate salary into an hourly equivalent
- Convert bonus percentages into bonus amounts
- Compare offer salary to range midpoint with compa ratio
- Flag whether an offer is within band or out of band
- Populate a date only when specific offer criteria are met
What are Offer Formula Fields?
Card BackOffer Formula Fields let you calculate values directly on the offer form using custom mathematical or logical operations\.
They’re useful when you want to automate offer math, reduce spreadsheet work, and keep key calculations inside Ashby\.
Card FrontWhere do I find Offer Formula Fields in Ashby?
Card BackYou create Offer Formula Fields from your offer custom fields in Admin\.
Start in Organization Setup, open Custom Fields, then use the Offer tab to create or edit a field and add a calculated default value\.
Before you dive in
📚 Want a deeper dive on formula syntax, supported functions, or setup guidance?
Explore the Offer Formula Fields article in the Ashby Knowledge Base\.[](https://www.ashbyhq.com/resources/terms-ai-features)
[Button: Continue →]
Hourly Equivalent
Calculate salary into an hourly equivalent
What it does
Converts the compensation field your team already tracks in Ashby into an Hourly Equivalent value on the offer\. In this example, we’re using Salary\.
Why it's useful
Gives your team a quick way to translate annual compensation into an hourly rate\.
- Compare compensation in a format that is easier to use for hourly or wage\-based workflows\.
- Reduce manual math when you need to convert salary into an hourly equivalent\.
- Reuse the value anywhere your team needs a quick hourly reference\.
How the formula works
We start with Salary because that is the annual amount we want to convert\. Then we divide by 2,080, which is a common estimate for full\-time working hours in a year \(e\.g\., 52 weeks in a year x 40 hours a week\)\. We use round so the result is easier to read and behaves more like a normal currency value\.
The result is a simple hourly equivalent that your team can review directly on the offer\.
Formula: round\(\{Salary\} / 2080, precision: 2\)
How to build it
Create a new offer custom field called Total Compensation\.
Set the field type to Currency\.
In Default Value, choose New Calculated Field\.
Build your formula using the compensation field your org already uses in Ashby\. In this example, we’re using Salary and converting it to an hourly equivalent based on 2,080 working hours in a year\. The formula should resemble the following: Formula: round\(\{Salary\} / 2080, precision: 2
[Embedded HTML content]
💡Take it a step further: Reuse this same pattern to calculate other normalized compensation values your team references often\.
[Button: Continue →]
[Button: ← Return ]
Bonus Amount
Convert bonus percentages into bonus amounts
Why it's useful
- Reduce manual bonus math during offer creation\.
- Make bonus amounts easier to review by calculating the final dollar value automatically\.
- Use the result in downstream calculations or offer details if needed\.
What it does
Calculates a Bonus Amount field from the compensation inputs your team already tracks in Ashby, such as Salary and Bonus Percent\.
Turns a percentage input into a usable currency value that is easier to review and reuse across the offer workflow\.
How to build it
Create a new offer custom field called Bonus Amount\.
Set the field type to Currency\.
In Default Value, choose New Calculated Field*\.
Build your formula using the compensation fields your team already uses in Ashby\. In this example, Salary and Bonus % are the inputs\. Because Bonus % is entered as a whole number like 10 or 15, the formula looks like this: Formula: round\(\{Salary\} \ \(\{Bonus %\} / 100\), precision: 2\)
[Embedded HTML content]
💡Take it a step further: Add Bonus Amount to a Total Compensation formula if your team wants one rolled\-up compensation value\.
How the formula works
We start with Salary as the base amount\. We divide Bonus % by 100 to convert it from a whole number \(like 10\) to a decimal \(0\.10\)\. Then we multiply Salary by that decimal to get the bonus amount\.
We use
round so the result is easier to read and behaves like a normal currency value\.
*
Formula: round\(\{Salary\} \ \(\{Bonus %\} / 100\), precision: 2\)
[Button: Continue →]
[Button: ← Return ]
Compa Ratio
Compare offer salary to range midpoint with compa ratio
Why it's useful
- Compare offers to the midpoint of a compensation band\.
- Surface exceptions more clearly in offer review workflows\.
- Reuse the metric in reports, dashboards, alerts, or approvals\.
What it does
Compares the offer salary to the midpoint of a compensation range by calculating a compa ratio field\.
!Image of the Compa Ratio Formula Field Configuration
Helps your team understand how an offer compares to the role’s range midpoint and gives recruiters, finance, and approvers a shared point of reference\.
How to build it
Create a new offer custom field called Compa Ratio\.
Set the field type to Number\.
In Default Value, choose New Calculated Field\.
Build your formula using the fields your org uses for salary and compensation range\. In this example, the formula looks like this: Formula: round\(\{Salary\} / mean\(\{Compensation Range\}\), precision: 2\)
[Embedded HTML content]
💡Take it a step further: Add Compa Ratio to reports or dashboards so your team can review offer positioning over time\.
How the formula works
We start with Salary because that is the offer amount we want to compare\. Then we use
mean on Compensation Range to get the midpoint of the range and divide Salary by that midpoint to calculate the compa ratio\.
We use
round so the result is easier to read and compare, like 1\.00 or 1\.05\.
Formula: round\(\{Salary\} / mean\(\{Compensation Range\}\), precision: 2\)
[Button: Continue →]
[Button: ← Return ]
Out-of-Band Offer Check
Flag if offer is within band or out of band
Why it's useful
- Help reviewers quickly spot compensation exceptions\.
- Give recruiters a cleaner handoff into approvals or reporting\.
- Standardize how your team flags in\-band versus out\-of\-band offers\.
What it does
Returns a simple status like 'within band' or 'out of band' based on the offer salary and the compensation range tied to the role\.
Turns a common offer review question into a visible signal on the offer itself\.
How to build it
Create a new offer custom field called Offer Band Status\.
Set the field type to Short Answer\.
Build your formula using the salary and compensation range fields your team already uses\. In this example, the formula looks like this: Formula: if\(\{Salary\} = null or \{Compensation Range\} = null, null, if\(\{Salary\} >= min\(\{Compensation Range\}\) and \{Salary\} <= max\(\{Compensation Range\}\), "within band", "out of band"\)\)
[Embedded HTML content]
💡Take it a step further: Bring the field into reports, alerts, or approval workflows if your team wants to act on exceptions more systematically\.
How the formula works
We start by checking whether Salary or Compensation Range is blank, so the formula does not return a misleading status\. Then we use
min and max to find the bottom and top of the range\.
If Salary is between those two values, the formula returns
within band\. If not, it returns out of band\.
Formula: if\(\{Salary\} = null or \{Compensation Range\} = null, null, if\(\{Salary\} >= min\(\{Compensation Range\}\) and \{Salary\} <= max\(\{Compensation Range\}\), "within band", "out of band"\)\)
[Button: Continue →]
[Button: ← Return ]
Conditional Clawback Date
Populate a date when specific offer criteria is met
Why it's useful
- Use conditional logic to populate a date only when the right criteria are met\.
- Reduce manual follow\-up for policy\-specific offer details\.
- Adapt the same pattern to other regional or process\-specific workflows\.
What it does
Populates a Clawback Date only when specific offer criteria are met, like a candidate being based in a specific location and having a sign\-on bonus\.
Shows how Offer Formula Fields can support policy\-driven or regional workflows, not just compensation math\.
How to build it
Create a new offer custom field called Clawback Date\.
Set the field type to Date\.
In Default Value, choose New Calculated Field\.
Build your formula using the location, sign\-on bonus, and start date fields your team already uses in Ashby\. In this example, the formula looks like this: Formula: if\(\{Clawback Applies\} = true and tonumber\(\{Sign\-on Bonus\}\) > 0, dateadd\(date: \{Start Date\}, amount: 365, interval: "days"\), null\)
[Embedded HTML content]
💡Take it a step further: Reuse this conditional pattern for other regional or rules\-based offer processes\.
We start by checking whether Clawback Applies is set to 'Yes' and whether the offer has a sign\-on bonus\. We do that first so the date only appears when the rule actually applies\. Then we use dateadd to add 365 days to the Start Date\.
If those conditions are not met, the formula returns null, which means the field stays blank\.
How the formula works
**
Formula: if\(\{Clawback Applies\} = true and tonumber\(\{Sign\-on Bonus\}\) > 0, dateadd\(date: \{Start Date\}, amount: 365, interval: "days"\), null\)`
Button: Back to All Playbooks
[Button: ← Return ]