New Billing Comprehensive Spec

The reason for the old Billing spec's complexity is a lack of specificity. This intends to fix that.

There will be changes across the following:

  • Locations
  • Groups
  • Shifts
  • Work Orders (both Patrol & Dedicated)
  • Settings
  • Billing

We will plan on keeping the old billing in place as we transition to the new. Old Billing will be eventually completely phased out, but it can still be useful for those markets that got used to using it the way it is now. There are substantial changes in New Billing that, while far more specific and accurate and comprehensive, will throw some for a loop. It's also our intent to get as much of this done as quickly as possible, but rapid development does not come without certain trade-offs.

Before diving further in, it's useful to define terms...

Terms

Ad-Hoc = Any Shift for either a Location or a Group that is not associated with a Dedicated Work Order

WOs = Work Orders (either or both Dedicated & Patrol)

DWOs = Dedicated Work Orders

PWOs = Patrol Work Orders

EOM = End of Month Billable

Units = Tours for Patrols, Hours for Shifts

Bill To Location = Location defined in Group as the one footing the Bill

Bill to Headquarters = Checkbox on Service Location that points to the Business Headquarters as the entity receiving the Bill

Tours = Billable Units

Hours (Shift Hours) = Billable Units

Holiday = Applies to ANY Tours starting in the Holiday. Applies to any Shift Hours falling on Holiday. Defaults to 0.00. If left 0.00, that means there is no Holiday Rate that should apply. Never apply 0.00 as though it's the Per Unit (Tours/Hours) Rate

Billing Destination

  • All
  • Any
  • Mail/Email
  • Mail/Fax
  • Email/Fax
  • Mail
  • Fax
  • Email

Billing Source

  • Ad-Hoc Shifts
  • Patrol Work Orders (includes Billable Alarms)
  • Dedicated Work Orders

Billing Cycle

  • Weekly = Every 7 days
  • Bi-Weekly = Every 14 days
  • Semi-Monthly = 1-15, 16-EOM
  • Monthly = Calendar month
  • Custom

Billing Period = The period(s) (Current or Past) that correspond to the Billing Cycle

Billing Method

  • Flat Rate = Regardless of Contracted or Actual Units (Tours or Shift Hours), will be billed at the agreed upon rate
  • Contracted = The work that you're supposed to do - Specifically for DWOs. For Ad-hoc, this applies to anything not Cancelled starting in the period)
  • Actuals (the actual work done, only applies to Completed Units - Shifts/Tours)

Holidays can apply to any of the Methods. They will be added as line items on a per Tour and per Shift basis to Flat Rate and Contracted, and will appear as new line items for Actuals. Again, any Tour starting in the Holiday gets a new line item at the Holiday Rate, and any Shifts with Hours landing in the Holiday get a new line item at the Holiday Rate FOR the relevant Holiday Hours only.

Bill On - Dependent on Method

  • First day of new period (Cash) = Only works for Flat Rate and Contracted
  • Last day of new period (Accrual) = Works for any Method. If Method is set to Actuals, then this is the ONLY option on Locations or Work Orders Forms
  • Mid-cycle = Only works for Flat Rate and Contracted
  • Custom

Billing Terms

  • Net 0
  • Net 15
  • Net 30
  • Net 45
  • Custom

Billing Items

  • CBA = Civilian Based, Armed
  • CBS = Civilian Based Security, Dedicated
  • DedVeh = Civilian Based Security, Dedicated Vehicle
  • EXEC = Executive Protection
  • LEB = Law Enforcement Based, Dedicated
  • MIL = Mileage (not to be confused for Military)
  • BYC = Bycycle Patrol
  • RVP = Roving Patrol
  • EVENT = Event Security / Staff
  • ALARM

These can be derived, in order of precedent, via Shifts, then WOs. We don't need to put these directly on the Location for Ad-Hoc Billings, as it will be sourced directly from the Shifts themselves.

Billing Note

  • A text field for additional notes (like WO descriptions until we automate that more fully)

Methodologies

Billable Work In Inteliguide

Inteliguide can be boiled down to at very least two billable types of work:

  • Shifts
  • Tours

These can have modifiers and be calculated differently based on options. As such, there are many sources of Billing Reports that serve different requirements. Billing is not homogenous. Different sources and options imply different calculations and thus different outcomes. It's important to draw a contrast between those differences, not only for good accounting practices, but for strong performance comparisons.

One Screen, Multiple Reports

The Billing Source, Billing Cycle, and Billing Method work in concert to determine the output, calculation, and scope of the generated or exported report. The rest is how and when the Bills go out.

The following catalogs the different top-level variances based on the top three modifiers (Type, Cycle, & Method).

There are 45 possible results:

Ad-Hoc

Ad-Hoc, Weekly, Flat Rate
Ad-Hoc, Weekly, Contracted
Ad-Hoc, Weekly, Actuals
Ad-Hoc, Bi-Weekly, Flat Rate
Ad-Hoc, Bi-Weekly, Contracted
Ad-Hoc, Bi-Weekly, Actuals
Ad-Hoc, Semi-Monthly, Flat Rate
Ad-Hoc, Semi-Monthly, Contracted
Ad-Hoc, Semi-Monthly, Actuals
Ad-Hoc, Monthly, Flat Rate
Ad-Hoc, Monthly, Contracted
Ad-Hoc, Monthly, Actuals
Ad-Hoc, Custom, Flat Rate
Ad-Hoc, Custom, Contracted
Ad-Hoc, Custom, Actuals


Patrol Work Orders

Patrol Work Orders, Weekly, Flat Rate
Patrol Work Orders, Weekly, Contracted
Patrol Work Orders, Weekly, Actuals
Patrol Work Orders, Bi-Weekly, Flat Rate
Patrol Work Orders, Bi-Weekly, Contracted
Patrol Work Orders, Bi-Weekly, Actuals
Patrol Work Orders, Semi-Monthly, Flat Rate
Patrol Work Orders, Semi-Monthly, Contracted
Patrol Work Orders, Semi-Monthly, Actuals
Patrol Work Orders, Monthly, Flat Rate
Patrol Work Orders, Monthly, Contracted
Patrol Work Orders, Monthly, Actuals
Patrol Work Orders, Custom, Flat Rate
Patrol Work Orders, Custom, Contracted
Patrol Work Orders, Custom, Actuals


Dedicated Work Orders

Dedicated Work Orders, Weekly, Flat Rate
Dedicated Work Orders, Weekly, Contracted
Dedicated Work Orders, Weekly, Actuals
Dedicated Work Orders, Bi-Weekly, Flat Rate
Dedicated Work Orders, Bi-Weekly, Contracted
Dedicated Work Orders, Bi-Weekly, Actuals
Dedicated Work Orders, Semi-Monthly, Flat Rate
Dedicated Work Orders, Semi-Monthly, Contracted
Dedicated Work Orders, Semi-Monthly, Actuals
Dedicated Work Orders, Monthly, Flat Rate
Dedicated Work Orders, Monthly, Contracted
Dedicated Work Orders, Monthly, Actuals
Dedicated Work Orders, Custom, Flat Rate
Dedicated Work Orders, Custom, Contracted
Dedicated Work Orders, Custom, Actuals


Bill On, combined with the above, also affects the calculated results. Actuals, cannot be billed on anything but the last day of the period (after the work has already been Completed. Contracted can be billed anywhere in the period and will include any Unit Totals that are not explicitly Cancelled. Flat Rate can be billed anywhere in the period and will include just the flat rate, though sums and Unit Totals will reflect either WO accumulated values for the cycle and period, or any Ad-Hoc sums for Shifts other than Cancelled.

Line Items are affected by the Method, Holidays, and Billable Alarms (more detail below).

Locations Changes (requires migration)

Add to Shift Defaults Section

  • Billing Items (default to CBS)

Add to Billing Destination Section

  • Billing Destination
  • Billing Address
  • Billing City
  • Billing State
  • Billing Zip
  • Billing Fax
  • Billing Email

Create New Billing Details Section

  • Billing Cycle
  • Billing Method
  • Bill On (If the Method is Actual, then this CAN NOT be Cash)
  • Billing Terms
  • Billing Items (applies only to Ad-Hoc Flat Rate, else it comes from the Shifts)
  • Billable Rate (applies only to Ad-Hoc Flat Rate, else it comes from the Shifts)
  • Holiday Rate (if left empty, it's assumed no holiday rate applies)
  • Start Date
  • End Date (leave empty if none) After some deliberations on this subject, Ad-Hoc implies NO set Contract. Locations don't generate Ad-Hoc work. WOs generate work. Billing will progress based on work on the Schedule for Ad-Hoc. If we allow Start/End Dates here, then how should we behave in times where the work on the Schedule disagrees with the Start/End Dates on the Location? That will imply some behavior one way or the other, and this creates a mess that we don't want to be responsible for.
  • PO Number
  • Invoice Note
  • Billing Note

Add Bill to Headquarters Checkbox

  • This, if checked, will defer to the Headquarters of the Business associated with the Location.
  • If the current Location IS the Headquarters, then we don't need to see a Bill to Headquarters checkbox
  • If the current Location (open for adding/editing) and Bill to Headquarters is checked, Billing Items will defer to the current Service Location, whilst Billing Cycle, Bill To, Billing Method, Billing Terms, and Billing Note should be derived from the Headquarters Location.

For new and migrated Locations, here are the defaults:

  • Billing Cycle = Monthly
  • Billing Method = Actuals
  • Bill On = Accrual (last day)
  • Bill Terms = Net 30
  • Bill Items = CBS (unless migrated records feature LEB for the Shift Default, then default to LEB)
  • Rates = 0.00 (unless Billable Rate on Shift Defaults is already set at something other than 0.00)

Groups Changes (requires migration)

Default first Location added to past Groups as Bill To Location

  • Add Billing Location selection box. It can only have one, it defaults to the first Location added to the Group, and IS the only Location belonging to the Group if only one exists.
  • The Add Group Form will assume the first Location added is the Billing Location, the Edit Group Form will let you select which of all the existing members is the Billing Location.
  • If a new Location is selected as a Group Member before the Edit Form is saved, that new Location will not be avail in the Billing Location selection until the Form is saved and then opened again for Editing. We can make this more dynamic down the road if need be.

For new and migrated Groups, here are the defaults:

  • Bill To Location = First Location added

Shifts Changes (requires migration)

  • Add Billing Item to correspond to the new Shift Default (above Lunch Options on Full Add/Edit Shifts Form)

For new and migrated Shifts, here are the defaults:

  • Billing Item = CBS (unless migrated records feature LEB for the Team, then default to LEB)

Work Order Changes (requires migrations)

Patrol Work Order

Modify Contract Section * Billing Cycle * Billing Method * Bill On (If the Method is Actual, then this CAN NOT be Cash) * Billing Terms * Billing Item * Bill Rate per Tour * Holiday Rate per Tour (if left empty or 0.00, it's assumed no holiday rate applies) * Alarm Rate per Tour (default to Holiday Rate on Holidays) * Start Date * End Date (leave empty if none) * PO Number * Invoice Note * Billing Note

For new and migrated PWOs, here are the defaults:

  • Billing Cycle = Monthly
  • Billing Method = Flat Rate
  • Bill On = Accrual
  • Billing Terms = Net 30
  • Billing Item = RVP
  • Billable/Holiday/Alarm Rates = 0.00 (unless they already exist for either Bill Rate or Holiday Rate)

Dedicated Work Order

Modify Contract Section * Billing Cycle * Billing Method * Bill On (If the Method is Actual, then this CAN NOT be Cash) * Billing Terms * Billing Item (for Flat Rate, note on field to be explicit) * Bill Rate per Hour * Holiday Rate per Hour (if left empty or 0.00, it's assumed no holiday rate applies) * Start Date * End Date (leave empty if none) * PO Number * Invoice Note * Billing Note

Modify Shift Schedules * Add Billing Item for Contracted & Actuals above Lunch Options per Shift Schedule (Set)

For new and migrated DWOs, here are the defaults:

  • Billing Cycle = Monthly
  • Billing Method = Actuals
  • Bill On = Accrual
  • Billing Terms = Net 30
  • Billing Item = CBS
  • Billable/Holiday/Alarm Rates = 0.00 (unless they already exist for either Bill Rate or Holiday Rate)
  • Shift Schedules = CBS or LEB depending on the Team Setting for the Schedule

Settings

Add Billing Section to Settings (gonna need to rearrange this to find a home for it)

Cycle Settings * Add Weekly Cycle Start Date * Add Bi-Weekly Cycle Start Date These are separate because we don't want to assume they have the same Start Date

  • For time being, use the Paid Holidays as Billed Holidays - we'll need this to calc partial Holiday payment based on the Per Unit value of Tours or Hours (for Tours or Shifts, respectively) that may wholly or partially land in a day considered a Holiday.
  • If no Start Date for Weekly or Bi-Weekly Cycle Settings, then if those are selected in New Billing, present a Start/End Date entry set of fields.

For new and migrated Settings, here are the defaults:

  • Empty for both Weekly and Bi-Weekly

New Billing

Sources for Billing Info

Billing Info includes the following:

  • Billing Cycle = Derive from WOs, Derive from Location for Ad-Hoc
  • Billing Method = Derive from WOs, Derive from Location for Ad-Hoc
  • Bill On = Derive from WOs, Derive from Location for Ad-Hoc
  • Billing Terms = Derive from WOs, Derive from Location for Ad-Hoc
  • Billing Items = Derive from WOs, Derive from Shifts (which derive from Service Location, unless altered after initial Shift creation) for Ad-Hoc
  • Billing Note = Derive from WOs, Derive from Location for Ad-Hoc

Location Flow for Ad-Hoc Billings

  • Any Ad-Hoc Shifts for Groups will point back to the Bill To Location
  • If the Location has Bill to Headquarters checked, then everything listed above in Sources for Billing Info but the Billing Items should point to the Headquarters. Obviously Billable Flat Rate and Holiday Rates should come from the Service Location.

Filters & Toggle

Filters

  • Billing Source (Ad-Hoc, Patrol Work Orders - with sub listing each Patrol Work Order, Dedicated Work Orders - with sub listing each Dedicated Work Order)
  • Billing Cycle (Weekly, Bi-weekly, Semi-monthly, Monthly, Custom - if selected, then just Start/End Date fields)
  • Billing Period (variable based on Cycle - see above - Also, if no Weekly/Bi-Weekly )
  • Billing Methods (Flat Rate, Contracted Units, Actual Units)
  • Bill On (variable based on Method - see above - Actual, then Cash cannot be selected because work hasn't actually finished yet)
  • Billing Items (All...)
  • Businesses (All...) - Active for Ad-Hoc and Patrol/Dedicated Work Orders. Inactive for specific Patrol or Dedicated Work Orders
  • Locations (All...) - Active for Ad-Hoc and Patrol/Dedicated Work Orders. Inactive for specific Patrol or Dedicated Work Orders

 Toggle

  • CSV Export

For time being, the screen output will not differ from CSV Export. We've got a lot of work and don't need the extra complexity.

Shift Output Columns (shift-specific in bold):

  • id
  • id_type (PWO, WOTour, DWO, WOShift, WOAlarm, AdHoc)
  • id_name
  • servicelocationid
  • billtolocation_id
  • billtolocation_name
  • billtoaddress (adopts the Service Location Billing Address if the Service Location doesn't have "Bill to Headquarters" enabled)
  • billtofax
  • billtoemail
  • billing_preference (All, Any, Address (Snail Mail), Fax, Email)
  • business_id
  • business_name
  • cycle (Weekly, Bi-Weekly, Semi-Monthly, Monthly, Custom)
  • method (Flat Rate, Contracted, Actuals)
  • period_start
  • period_end
  • exportdatetime_stamp
  • service_start
  • service_end
  • bill_on (Cash, Accrual, Mid-Cycle, Custom)
  • billondate
  • terms (Net 0 - 45, Custom)
  • dueondate (calculated via the billondate + terms days)
  • item (CBA, CBS, DedVeh, EXEC, LEB, MIL, BYC, RVP, EVENT, ALARM, comes from WOs, else Shifts themselves for Actuals, else Service Location for Ad-Hoc Flat Rate)
  • units (Shift Total for the given period, 1 for Actuals per line, summed for Contracted and Flat Rate)
  • total_hours (total calculated hours)
  • non_billable_hours (total calculated non-billable hours)
  • non_billable_lunch_hours (total calculated non-billable-lunch hours)
  • billable_hours (total_hours - non_billable_hours - non_billable_lunch_hours = billable_hours)
  • rate_type (REG/HOLIDAY)
  • billing_rate (Individual Actuals may have a diff rate per line, but the summed lines for WO Flat Rate and Contracted will reflect the WO rate)
  • total (Flat Rate from WOs or Service Location for Ad-Hoc Flat Rate, or billablehours * billingrate for anything not Canceled starting within the Billing Period for Contracted, and anything Completed for Actuals)
  • market (franchise)
  • billing_note (from WOs, else from bill-to Location)

Tour Output Columns:

  • id
  • id_type (PWO, WOTour, DWO, WOShift, WOAlarm, AdHoc)
  • id_name
  • servicelocationid
  • billtolocation_id
  • billtolocation_name
  • billtoaddress (adopts the Service Location Billing Address if the Service Location doesn't have "Bill to Headquarters" enabled)
  • billtofax
  • billtoemail
  • billing_preference (All, Any, Address (Snail Mail), Fax, Email)
  • business_id
  • business_name
  • cycle (Weekly, Bi-Weekly, Semi-Monthly, Monthly, Custom)
  • method (Flat Rate, Contracted, Actuals)
  • period_start
  • period_end
  • exportdatetime_stamp
  • service_start
  • service_end
  • bill_on (Cash, Accrual, Mid-Cycle, Custom)
  • billondate
  • terms (Net 0 - 45, Custom)
  • dueondate (calculated via the billondate + terms days)
  • item (CBA, CBS, DedVeh, EXEC, LEB, MIL, BYC, RVP, EVENT, ALARM, comes from WOs, else Shifts themselves for Actuals, else Service Location for Ad-Hoc Flat Rate)
  • units (Tour Total for the given period, 1 for Actuals per line, summed for Contracted and Flat Rate)
  • rate_type (REG/ALARM/HOLIDAY)
  • billing_rate (Individual Actuals may have a diff rate per line, but the summed lines for WO Flat Rate and Contracted will reflect the WO rate)
  • total (Flat Rate from WOs, or units * billing_rate for anything not Canceled starting within the Billing Period for Contracted, and anything Completed for Actuals)
  • market (franchise)
  • billing_note (from WOs)

Holidays Behavior

  • Even if the Bill to Headquarters checkbox is checked, then the Holiday Rate should come from the Service Location.

The Holidays will apply in a Per Unit (Tours, or Hourly) fashion across all Billing Methods (Flat Rate, Contracted, Actual), and will apply either wholly or partially depending on the Unit. If Tours, apply the Holiday Rate if it starts in the Holiday. If Shifts, apply the Hourly Holiday Rate for any hour that falls inside a holiday. If the Holiday Rate is 0.00 (default), then assume there is no Billable Holiday for that WO or Location. Never assume that 0.00 is an actual rate applied to Holiday Units.

For Billable Alarms that occur starting on a Holiday, apply the Holiday Rate instead of the Alarm Rate.

Items Order of Operations

Dedicated Work Orders * Billing Items to come from Shifts via Shift Schedules (Sets) for Contracted & Actuals Methods. * Billing Items to come from the Contract Step for the Flat-Rate Billing Method (if this needs to be diff per Flat-Rate, then a new WO should be created).

Patrol Work Orders * Billing Items to come from the only place you can set it, which is in the Contract Step.

Cycle, Method, Bill On, Terms, and Billing Note

These will follow the Headquarters if Bill to Headquarters is enabled for the Service Location on Ad-Hoc Shifts. Otherwise they'll come from the WOs. Also, as stated above, the Billing Items will come from either the Shifts for Ad-Hoc or the Work Order for Work Orders.

Line Items

Actuals Results If Billing Method is set to Actuals, then there will be a unique line for each Tour or Shift in Completed Status.

Contracted Results If Billing Method is set to Contracted, then there will be a unique line for each Ad-Hoc Shift NOT Cancelled (whether set to be worked in the future relative to the Bill On Date or not), and one line PER Tour/Shift Schedule from the WOs that sum up the work for that period.

Flatrate_ One line per WO per period for Shifts and Tours, and one line per period summing up Ad-Hoc Shifts for Ad-Hoc (with Billing Rate coming from the Service Location rather than the Shifts themselves).

Holiday Surcharge See Holidays Behavior (above), but those will be additional items per Unit on top of Contracted & Flat Rate, and will break any Actuals out into a separate "Holiday" line. For Tours, there won't ever be a split where one Tour ends up showing up twice (once for Reg or Alarm Rate, and once for Holiday). This is because Holiday Tours apply to any Tours that Start in the Holiday Day. Shifts, on the other hand, may split into two lines. One for the first or last part of a Shift billed at regular rate to either side of a holiday flowing into or out of a Holiday, and one for the part of the Shift that resides in the actual Holiday (billed Hourly accordingly). Billable Alarms will TAKE the Holiday Rate if they happen to start in a Billed Holiday.

Billable Alarms These will be featured in the report as additional Items on top of ANY of the Flat Rate, Contracted, or Actuals Methods. They'll appear discretely as one line per Billable Alarm at the Billable Alarm Rate value in the PWO.

 

Have more questions? Submit a request

2 Comments

  • 0
    Avatar
    Laura Vodvarka

    Aron,

    Can we change the MIL item to FUEL "fuel surcharge"?  I'm hearing that they'd prefer that and typically edit the description on the invoices anyway.  

    Thanks!

    Laura

  • 0
    Avatar
    Aron Filbert

    I responded via email, so don't know if you saw. Yes, right now it's easy to make those types of modifications. I will caveat that by saying once the data is mostly set up and in place... we'll need to run migrations if you want to change values that are already saved. That's where it gets a little more costly and time consuming. Adding new ones isn't so much, but certainly changing existing ones that are already associated with work records (WOs, Ad-Hoc Shifts, etc.) will be a bit more difficult once we get these established and consumed.

Please sign in to leave a comment.
Powered by Zendesk