Add support for weighted billing and included-hours (block) depletion, with optional automatic contract selection and quarter-hour rounding. The system should correctly bill time based on when work occurs, split entries across rate windows, and handle overages automatically.
The platform must support time-of-service multipliers that apply to all billable time, regardless of contract type (included-hours, hourly, hybrid).
Example weighting tiers (configurable):
Business hours: 1.0×
After hours: 1.5×
Weekends: 2.0×
Holidays / Emergency: 3.0×
Weights must be configurable per agreement/client:
business hours window
after-hours definition
weekend definition
holiday calendar
emergency trigger (tag/priority/SLA)
If a single time entry crosses multiple weighting tiers, the system must split automatically and apply the right multiplier to each segment.
Example:
4:30–5:30pm on a weekday
→ 4:30–5:00 @1.0×, 5:00–5:30 @1.5×
This must work even if:
tiers change multiple times in one entry
the entry spans midnight/weekend/holiday boundaries
For agreements with included hours:
Convert raw time → weighted time per segment.
Deduct weighted hours from the included balance (not raw hours).
If included hours are partially available, the system should split the segment into:
included portion (weighted depletion)
overage portion (hourly billing)
When included hours are exhausted, remaining time bills automatically at the agreement’s hourly rate, with weighting still applied.
Example logic:
Base overage rate = $X/hr
After hours bills $X × 1.5
Weekend bills $X × 2.0
Holiday/emergency bills $X × 3.0
When multiple agreements exist for the same customer, allow rules to auto-assign time to the correct contract based on ticket attributes, such as:
ticket type
queue/board
service item/category
custom field/value
If no rule matches, flag for admin review before invoicing.
Support billing rounding to 0.25-hour increments (15 minutes).
Rules:
Rounding occurs after entry splitting, per segment.
Rounding mode configurable (default: nearest quarter hour; optional round up/down).
Invoices and reports must show per segment:
raw duration (rounded)
applied weight tier + multiplier
weighted hours deducted (if included)
weighted hours billed (if overage/hourly)
contract/agreement used (if applicable)
Weights apply to all billable time, not just included hours.
Entries crossing tiers are auto-split and calculated correctly.
Included balances decrease in weighted units.
Overage billing triggers automatically with weights applied.
Billable time rounds to quarter hours after splitting.
Invoice preview matches calculations and shows a clear audit trail.
Please authenticate to join the conversation.
Open
💡 Feature Request
Get notified by email when there are changes.
Open
💡 Feature Request
Get notified by email when there are changes.