Skip to content

Flags reference

Every flag the engine can raise, as the reviewer reads it. The codes are a closed set in the database (FlagCode): a flag that isn’t on this page doesn’t exist. Examples come from the example world; <…> in a real message is filled from the ticket.

Bills says what an open flag does to the money: yes, the ticket bills as if the flag weren’t there; that line no, one line bills nothing and the rest bill; no, nothing bills until the ticket is corrected. Accepting a flag never changes what bills. Every message ends “Flagged for review.” unless it says otherwise. See Flags, never blocks for how a reviewer handles them.

CodeRaised whenMessageBills
DEBRIS_TYPE_MISMATCHThe disposal’s debris type isn’t the exact entry the collection picked (each property’s on a split; a haul-out’s two the same way)“Ticket 101008: debris type mismatch (collection Vegetative, disposal C&D).”yes: rules read the collection’s
CERT_NUMBER_MISMATCHThe cert numbers on the ticket’s events differ, compared exactly“Ticket 101008: truck number doesn’t match (collection 730415, disposal 730416).”yes, from the certification on the event that took the quantity
DISPOSAL_BEFORE_COLLECTION_ENDEDThe disposal started before its collection ended“Ticket 101008: disposal started 09:12, before its collection ended 09:40.”yes
OVERLAPPING_LOADSTwo collections on one certification with overlapping loading times and no disposal between; raised on both tickets“Ticket 101031: loading 09:10–09:40 overlaps ticket 101030 on truck 730415.”yes
SPLIT_SUFFIX_GAPA bare collection beside suffixed ones, or a gap in the suffixes: a split load’s properties, or a split haul-out’s piles“Ticket 102001: collections -A and -C, no -B.”yes
CARRIED_COUNT_MISMATCHOn a load that carries tickets, the tower’s count differs from the tickets the collection lists“Ticket 101014: tower counted 3 stumps, the collection lists 4.”yes, from the tickets carried
CodeRaised whenMessageBills
NO_CERTIFICATIONNo certification with that number on the project“Ticket 101015: no certification 730499 on this project. Flagged for review; not billed.”no, until one exists
TYPED_CAPACITY_DIFFERSA truck keyed in by hand, its typed capacity unlike the certification’s“Ticket 101016: capacity typed 60, certified 65.”yes, at the certified capacity
TAG_EXPIREDThe certification’s tag had expired at the work time“Ticket 101017: review certification 730416 (tag expired 30-Sep-2026).”yes
CERTIFICATION_REVOKEDThe work time is on or after the date the certification was revoked from“Ticket 101018: review certification 730416 (revoked from 14-Oct-2026).”yes
CERTIFICATION_REPLACEDThe work time is after the certification was replaced by a new one“Ticket 101019: review certification 730416 (replaced by 730420 on 14-Oct-2026).”yes
CodeRaised whenMessageBills
OUTSIDE_PROJECT_BOUNDARYA collection’s end GPS, or a unit rate event’s GPS, is outside the project boundary“Ticket 101020: collected outside the project boundary.”yes
NO_ZONEInside the boundary but in no zone (the zone is left empty)“Ticket 101021: not inside any zone.”yes
OUTSIDE_SITE_AREAA disposal’s (or either haul-out end’s) end GPS is outside its site’s area: the project’s circle or the site’s own shape“Ticket 101022: dumped outside Marsh Road TDSR’s area.”yes
PROJECT_NOT_ACTIVEThe load’s time (its collection’s end) is outside the project’s active window“Ticket 101023: project not active on 03-Feb-2027.”yes
SITE_NOT_YET_ACTIVEA disposal before its site’s activation date“Ticket 101024: Marsh Road TDSR not yet active on 10-Oct-2026.”yes
SITE_CLOSEDA disposal after its site’s set close date“Ticket 101025: Marsh Road TDSR closed on 01-Dec-2026.”yes
NO_ROAD_ROUTEThe routing server found no road route“Ticket 101026: no road route found; straight-line distance used.”yes, at the straight-line miles
DEVICE_CLOCK_OFFThe phone’s clock differed from the server’s at sync by more than the threshold (.env)“Ticket 101008: device clock was 2 h 14 m off at sync.”yes
WORK_TIME_AFTER_RECEIVEDA work time later than the server received the record“Ticket 101008: work time 21:40 is after it was received at 20:15.”yes
WORK_TIME_BEFORE_ENROLMENTA work time before its phone was enrolled“Ticket 101027: work time 08:05 is before its phone was enrolled.”yes
DEVICE_TIME_ZONE_DIFFERSThe phone’s time zone offset isn’t the project’s at the work time“Ticket 101028: phone was on UTC−05:00; the project is on UTC−04:00.”yes
PHONE_OUT_OF_SERVICEMade on a phone after it was taken out of service“Ticket 101008: made on a phone taken out of service.”yes
TYPED_TICKET_NUMBERThe ticket number was typed instead of scanned (a reason was picked)“Ticket 101060: typed ticket number (Barcode damaged).”yes
BACK_OFFICE_RECORDThe back office created the record (person and reason kept)“Ticket 101029: record created in the back office by Luis Ortega (Phone failed).”yes
CodeRaised whenMessageBills
SITE_DOES_NOT_TAKE_LOADSA load dumped at a site not marked Takes loads“Ticket 101013: dumped at Old Quarry Pit, which isn’t marked Takes loads.”yes
SITE_NOT_FOR_HAUL_OUTSA haul-out leaving a site not marked Haul-outs leave here“Ticket 201003: left Bayline Transfer Station, which isn’t marked Haul-outs leave here.”yes
INELIGIBLE_SITEA load dumped at an Ineligible site“Ticket 101009: dumped at Old Quarry Pit, an ineligible site.”yes
TIPPING_FEE_RULE_MISSINGA load or haul-out dumped at a site that Charges a tipping fee, with no line for that site’s tipping fee pay item. A missing rule, never a mismatch“Ticket 101011: dumped at Bayline County Landfill, which charges a tipping fee, but no rule on this project gives it one.”yes, its other lines
HAUL_OUT_DUMPED_AT_TDSRA haul-out dumped at a site whose type is the built-in TDSR/DMS“Ticket 201002: a haul-out dumped at Marsh Road TDSR, a TDSR. Flagged for review; not priced.”no: the rules are skipped until it’s corrected
CodeRaised whenMessageBills
LOAD_CALL_ZEROA load call of 0%, whatever the limits“Ticket 101032: load call 0%. Flagged for review; not billed.”no: 0 CY
LOAD_CALL_LOWA load call at or under the project’s low limit (5% unless changed or off)“Ticket 101033: load call 4%.”yes
LOAD_CALL_HIGHA load call at or over the project’s high limit (95% unless changed or off)“Ticket 101003: load call 96%.”yes
PILE_CALL_NOT_HIGHEROn a split haul-out, a pile’s load call isn’t higher than the call of the pile before it, so what it added can’t be worked out“Ticket 201004: pile -B’s load call 30% is not higher than pile -A’s 35%. Flagged for review; not billed.”no: the piles’ shares can’t be worked out
QUANTITY_MISSING_FOR_PAY_ITEMA rule’s pay item needs a quantity the ticket doesn’t have (per ton, no scale weight; a zero net)“Ticket 101012: TIP-FEE-TN-BCL is priced per ton, but the load has no scale weight.”that line no
SHARED_SCALE_WEIGHTOne scale receipt on two containers’ disposals: the weight is split by certified capacity. Raised on both tickets“Ticket 101050: one scale weight shared by two containers, split by certified capacity (7.33 of 17.10 tons).”yes, at its share
RECEIPT_TWO_DEBRIS_TYPESThe tickets on one scale receipt carry different debris types. Raised on both“Ticket 101052: scale receipt BCL-88241 covers two debris types (Vegetative, C&D). Flagged for review; its weight is not used.”weight lines no
SCALE_WEIGHT_UNUSABLEA receipt’s net is below zero, or its gross or tare is missing where the net must be worked out“Ticket 101053: scale receipt BCL-88250 has no usable net weight. Flagged for review; its weight is not used.”weight lines no
CARRIED_TICKET_NOT_FOUNDA carried ticket number (a stump or white goods ticket) matches no ticket“Ticket 101014: carried ticket 301099 not found.”yes, from the tickets found
CARRIED_TICKET_ON_ANOTHER_LOADA carried ticket is already on another load“Ticket 101014: carried ticket 301004 is already on load 101007.”yes

The pay item’s settings, and unit rate work

Section titled “The pay item’s settings, and unit rate work”
CodeRaised whenMessageBills
MEASUREMENT_MISSINGThe pay item has Measurement required and the ticket has none“Ticket 301010: no measurement.”yes
GPS_MISSINGThe pay item has GPS required and the ticket has no GPS“Ticket 301011: no GPS.”yes
PHOTOS_MISSINGThe pay item requires photos and the ticket has none“Ticket 301012: no photos.”yes
DECIMAL_COUNTA count with decimals where the pay item doesn’t have Decimals allowed“Ticket 301013: count 2.5; HNG-RMV-EA takes whole counts.”yes, at the count entered
NO_SIZE_BANDA measurement in no size band of its payable type: saved with no pay item“Ticket 301009: 4.5 in fits no Leaners pay item. Flagged for review; not billed.”no
OUTSIDE_SIZE_BANDA payable type’s only pay item, measured under or over its band“Ticket 301014: 30.0 in is over HNG-RMV-EA’s band (2–24 in).”yes
MARKED_INELIGIBLEThe monitor marked the work ineligible (where the pay item allows it)“Ticket 301015: marked ineligible by the monitor.”yes
STUMP_UNDER_24A stump under 24 in two feet up“Ticket 301005: not an eligible stump (20 in, under 24 in).”as its band says; with no band, no
ROOT_BALL_NOT_WIDERA stump’s root ball isn’t wider than the stump (a project check, on by default)“Ticket 301008: root ball (20 in) is not wider than the stump (30 in).”yes
FILL_WITHOUT_EXPOSED_ROOT_BALLA fill line is paid but the root ball isn’t half exposed (a project check, on by default)“Ticket 301016: fill paid, but the root ball is not half exposed.”yes
ROOT_BALL_MISSINGA blank root ball where the stump’s pay item requires the measurement“Ticket 301017: no root ball measurement.”yes; no fill line
NO_SURVEYA stump ticket with no survey number“Ticket 301018: no survey.”yes
CREW_ITEM_OVER_12_HOURSOne crew item over 12 hours in the crew’s day, its hours added across the day’s tickets (project time)“Ticket 301019: Skid Steer 13.25 h on 13-Oct-2026 for crew 730418 (over 12 h).”yes
CREW_TIME_OVERLAPTwo crew-time tickets for one crew overlap“Ticket 301020: crew time 07:00–11:00 overlaps ticket 301007 for crew 730418.”yes
CodeRaised whenMessageBills
ROE_MISSINGOn an ROE project, a collection, unit rate ticket or survey with no ROE“Ticket 102002: no ROE.”yes (on the ticket)
ROE_NOT_ON_PROJECTIts ROE isn’t one of the project’s“Ticket 102003: ROE R-0099 is not on this project.”yes (on the ticket)
ROE_UNSIGNEDIts ROE isn’t signed“Ticket 102004: ROE R-0008 is not signed.”yes (on the ticket)
ROE_OUT_OF_SCOPEIts ROE has a scope and the work isn’t in it: a collection’s debris type, or a unit rate ticket’s payable type, isn’t among the ROE’s scope picks. An ROE with no scope picked is never flagged for scope“Ticket 102005: outside the scope of ROE R-0008.”yes (on the ticket)
NO_PRE_WORK_SURVEYA post-work survey with no pre-work survey on its ROE“Survey on ROE R-0008: no pre-work survey.”on the record, not a ticket
CERTIFICATION_PHOTO_MISSINGA certification without one of its five views“Certification 730416: no left side photo.”on the record, not a ticket
PERMIT_OUTSTANDINGA disposal site with no permit“Marsh Road TDSR: permit outstanding.”on the record, not a ticket
CodeRaised whenMessageBills
NO_PRICING_RULENo rule of the ticket’s prime creates a line“Ticket 101010: no pricing rule on a Summit contract matches. Flagged for review; not billed.”no
DUPLICATE_TRANSACTION_NUMBERTwo rules create the same # on one ticket“Ticket 301009: two rules create transaction 1 (LNR-RMV-EA-24, LNR-RMV-EA-99). Flagged for review; not billed.”neither line
NO_RATE_FOR_PRIMEThe pay item has no rate for the prime: a $0 line“Ticket 101034: pay item VEG-HAUL-CY-15 has no rate for Summit.”that line $0
RATE_TO_BE_NEGOTIATEDThe pay item’s unit is TBN“Ticket 301021: rate to be negotiated. Not billed yet.”that line no
CodeRaised whenMessageBills
NOT_PROCESSEDThe worker hit an error on this ticket, which has no lines: it is flagged and skipped, and the run goes on“Ticket 101035: could not be processed. Flagged for review; not billed.”no

A record that should not have been possible

Section titled “A record that should not have been possible”
CodeRaised whenMessageBills
DETAIL_MISSINGA field event arrived without a detail its kind always records: a load’s or a haul-out’s debris type at either end; a disposal with no load call, no scale receipt and no count; a haul-out collection’s load call; a unit rate event’s kind of work“Ticket 101036: collection has no debris type.”yes, where an amount can be computed
TYPED_NUMBER_NO_REASONThe ticket number was typed instead of scanned and no reason was picked“Ticket 101037: typed ticket number (no reason picked).”yes
WRONG_KIND_OF_BADGEA load or a haul-out recorded on a crew’s certification, or unit rate work on a container’s“Ticket 101038: a load recorded on crew certification 730417.”yes, where an amount can be computed
GPS_UNREADABLEThe phone sent a GPS fix that can’t be one (half a fix, a latitude past 90); the field event was saved without it“Ticket 101039: GPS unreadable.”yes
NOT_A_TICKET_NUMBERThe ticket number isn’t digits: the field event pairs with nothing until a person renumbers it“Ticket 10A040: not a valid ticket number. Flagged for review; not billed.”no
ENDED_BEFORE_STARTEDA field event’s end is before its start“Ticket 101041: collection ended 09:10, before it started 09:40.”yes
SPLIT_NOT_ALLOWEDA collection with a split suffix on a project whose Allow split loads is off“Ticket 101042: a split load on a project that doesn’t allow split loads.”yes
OUTSIDE_CONTROL_RANGESOn a project numbered from control tickets, a load’s or a haul-out’s number is in none of the ranges entered for its series“Ticket 109999: number is in none of the project’s control ticket ranges.”yes
ASSIGNMENT_ON_ANOTHER_PROJECTA field event’s assignment belongs to a different project from the field event“Ticket 101043: recorded under an assignment on another project.”yes
SCALE_NET_DISAGREESA scale receipt holds a gross, a tare and a net, and the net isn’t the gross less the tare. The weights stay as typed, never corrected“Ticket 101054: scale receipt BCL-88251’s net (17.60 tons) is not its gross less its tare (17.10 tons).”yes, from the net as written
TWO_QUANTITIESA load’s disposal holds a load call and a scale weight. Which one bills is read from the paying pay item; the two are never compared“Ticket 101055: disposal has both a load call and a scale weight.”yes

The engine, on a ticket that was priced before

Section titled “The engine, on a ticket that was priced before”
CodeRaised whenMessageBills
NOT_PROCESSED_LINES_STANDThe worker hit an error on a ticket that was priced before: nothing of the failed run is kept, so its lines stay as its last good run wrote them until it is fixed“Ticket 101035: could not be processed. Flagged for review; its lines are as of its last run.”yes, as its last run priced it
CodeRaised whenMessageBills
SUB_NAME_ALIKEA sub it names has a name alike another sub’s on the project, once case, spaces, punctuation, a leading The, an ampersand and a company ending (LLC, Inc, Co…) are set aside: perhaps one company spelled two ways. Never which spelling is right; a person corrects the sub on the certification, or accepts the flag as two companies“Certification 730416: sub “Rivera Trucking Co” looks like “Rivera Trucking” on this project.”both names, the name as compared
CodeRaised whenMessageBills
MONITOR_NOT_SIGNED_INA phone’s field event names a person who, when it arrived, didn’t hold that phone over its field time (within the device clock’s own allowance), as above. A reviewer who corrects who it names clears it“Ticket 101044: recorded under Ana Brooks, who wasn’t signed in on that phone.”yes
ASSIGNMENT_OF_ANOTHER_PERSONA phone’s field event was recorded under an assignment of somebody other than the person it names“Ticket 101045: recorded under another person’s assignment.”yes