Rates & Salaries — Transactions
Overview
The Rates & Salaries module (/rates-salaries) provides a single screen for managing the compensation records of collaborators. Each record captures salary, hourly rate, per diem allowances, and the internal company assignment. Because these values change over time, the module maintains a full history per collaborator and the active record at any point in time drives cost calculations across multiple modules.
For common table features (search, export, pagination), see: Common Features
Rates & Salaries list
Route: /rates-salaries
Displays one row per collaborator showing the values from their currently active salary record.
Table columns
| Column | Description |
|---|---|
| ID | Collaborator ID |
| Name | Collaborator full name |
| Salary | Gross or net salary amount with currency |
| Frequency | Pay frequency (e.g., Fortnight, Monthly) |
| Salary type | Whether the salary is Gross or Net |
| Rate | Hourly rate amount with currency |
| Rate type | Whether the hourly rate is Gross or Net |
| Company | Internal company this collaborator is assigned to |
| Perdiem | Local per diem daily allowance |
| Per diem (Out of country) | International per diem daily allowance |
| Collaborator status | Active/inactive status of the collaborator (not of the salary record) |
Custom columns
All columns except ID and the action menu are optional. Use the Custom columns selector to show or hide them and click Apply to save the preference per user.
Row actions
| Action | Description |
|---|---|
| View | Opens the History modal showing all historical salary records for this collaborator |
New Salary form
Trigger: + New salary button (requires edit permission)
Creates a new salary record for a collaborator. When a collaborator is selected, all fields are pre-filled with values from their most recent record.
All previous records are deactivated on save
Saving a new salary record immediately deactivates all prior records for that collaborator. There is no partial update — the new record becomes the sole active entry.
Form fields
All fields are required.
| Field | Type | Description |
|---|---|---|
| Collaborator | Select (searchable) | The collaborator this record applies to |
| Internal company | Select (searchable) | Determines the currency for all monetary fields |
| Per diem (Local) | Number | Daily allowance for local travel (same city/region) |
| Per diem (Non Local) | Number | Daily allowance for travel outside the country |
| Salary | Number | Periodic salary amount |
| Frequency | Select | Pay cycle: e.g., Fortnight, Monthly |
| Salary Type | Select | Gross or Net |
| Hourly Rate | Number | Rate charged per hour of work |
| Rate Type | Select | Gross or Net |
Confirmation step
Before saving, the system compares the submitted values with the last record. If any field differs, a confirmation dialog summarizes the changes and requires the user to click Continue.
History modal
Trigger: View row action on any collaborator row
Shows a read-only table of all salary records ever created for that collaborator, from most recent to oldest.
History table columns
| Column | Description |
|---|---|
| From | Effective start date of this record (YYYY-MM-DD). This is the created_at value of the record. |
| Internal company | Company assigned at time of creation |
| Salary | Salary amount |
| Salary Type | Gross or Net |
| Frequency | Pay cycle |
| Rate | Hourly rate |
| Rate Type | Gross or Net |
| Per Diem | Local per diem |
| Per Diem (Out of country) | International per diem |
| Currency | Currency acronym tied to the internal company |
| Status | ACT (green) = active record; INA (red) = superseded by a newer record |
Reading the history
Only one record can be ACT at a time. All older records are INA. The From date tells you when each record became effective — the implicit end of any record is the From date of the next newer one.