[{"data":1,"prerenderedAt":985},["ShallowReactive",2],{"guide:en:work-fulfillment/reports":3},{"id":4,"title":5,"body":6,"description":977,"extension":978,"meta":979,"navigation":980,"path":981,"seo":982,"stem":983,"__hash__":984},"guide_en/en/user/work-fulfillment/reports.md","Reports — Documenting Completed Field Work",{"type":7,"value":8,"toc":961},"minimark",[9,14,18,23,34,46,62,66,77,82,120,125,139,144,152,156,216,225,229,232,277,283,286,290,296,301,315,319,325,328,332,335,376,381,402,406,412,417,431,435,438,443,462,467,478,483,494,498,508,512,565,571,585,591,605,609,612,617,628,633,646,652,663,667,670,690,701,706,710,715,735,741,779,784,798,802,807,818,823,834,839,853,858,869,874,885,890,904,908,914,928,934,945,950],[10,11,13],"h1",{"id":12},"reports","Reports",[15,16,17],"p",{},"Reports are the field worker's record of completed work. When a worker finishes an installation, repair, or inspection, they submit a report capturing what was done, which materials were used, where the work took place, and any photos or notes. Submitting a report automatically creates inventory consumption transactions and feeds into payment calculations — no separate paperwork required.",[19,20,22],"h2",{"id":21},"where-reports-fit-in-the-hierarchy","Where Reports Fit in the Hierarchy",[24,25,30],"pre",{"className":26,"code":28,"language":29},[27],"language-text","Project\n  └── Task  (planned unit of work)\n        └── Work Order  (assignment to a worker)\n              └── Report  ← you are here\n","text",[31,32,28],"code",{"__ignoreMap":33},"",[15,35,36,37,41,42,45],{},"A report links ",[38,39,40],"strong",{},"directly to a task"," — that is how task progress is measured. The link to a work order is ",[38,43,44],{},"optional",": it provides the assignment context (who was sent, what materials were authorized) but is not required. This means:",[47,48,49,53,56,59],"ul",{},[50,51,52],"li",{},"A report against a task always advances the task's (and therefore the project's) progress",[50,54,55],{},"A report linked to a work order also advances the work order's progress",[50,57,58],{},"A report with no work order is valid — for example, when a worker does ad-hoc or emergency work outside of a formal assignment",[50,60,61],{},"A work order with no linked task is also valid, but reports against it only advance the work order's progress (not any task, since there is none)",[19,63,65],{"id":64},"report-structure","Report Structure",[15,67,68,73],{},[69,70],"img",{"alt":71,"src":72},"Reports List","/guide/work-fulfillment/reports-list.png",[74,75,76],"em",{},"Reports page showing field execution records with consumption and status",[15,78,79],{},[38,80,81],{},"Core Fields:",[47,83,84,90,96,102,108,114],{},[50,85,86,89],{},[38,87,88],{},"Name"," — Report title or summary",[50,91,92,95],{},[38,93,94],{},"Description"," — Detailed notes, observations, issues encountered",[50,97,98,101],{},[38,99,100],{},"Reported By"," — User who submitted the report",[50,103,104,107],{},[38,105,106],{},"Report Date"," — When work was performed",[50,109,110,113],{},[38,111,112],{},"Work Order"," — Optional link to a parent work order",[50,115,116,119],{},[38,117,118],{},"Geometry"," — Location where work was performed (point, line, or polygon)",[15,121,122],{},[38,123,124],{},"Work Documentation:",[47,126,127,133],{},[50,128,129,132],{},[38,130,131],{},"Work Completed"," — Array of resources consumed and tasks finished",[50,134,135,138],{},[38,136,137],{},"Consumed From"," — Which stock items were depleted (triggers transactions)",[15,140,141],{},[38,142,143],{},"Media:",[47,145,146],{},[50,147,148,151],{},[38,149,150],{},"Attachments"," — Photos, documents, diagrams, certifications",[19,153,155],{"id":154},"report-status","Report Status",[157,158,159,172],"table",{},[160,161,162],"thead",{},[163,164,165,169],"tr",{},[166,167,168],"th",{},"Status",[166,170,171],{},"Meaning",[173,174,175,186,196,206],"tbody",{},[163,176,177,183],{},[178,179,180],"td",{},[31,181,182],{},"draft",[178,184,185],{},"Report in progress, not yet submitted",[163,187,188,193],{},[178,189,190],{},[31,191,192],{},"submitted",[178,194,195],{},"Report submitted by the worker, awaiting QC",[163,197,198,203],{},[178,199,200],{},[31,201,202],{},"validated",[178,204,205],{},"QC validation passed — payment released",[163,207,208,213],{},[178,209,210],{},[31,211,212],{},"rejected",[178,214,215],{},"Validation failed — rework required",[15,217,218,219,224],{},"Status transitions are driven by the validation workflow. See ",[220,221,223],"a",{"href":222},"/guide/work-fulfillment/validations/","Validations"," for the full walkthrough.",[19,226,228],{"id":227},"work-completed-structure","Work Completed Structure",[15,230,231],{},"Each entry in the Work Completed list documents one type of work performed:",[157,233,234,243],{},[160,235,236],{},[163,237,238,241],{},[166,239,240],{},"Field",[166,242,94],{},[173,244,245,253,261,269],{},[163,246,247,250],{},[178,248,249],{},"Resource",[178,251,252],{},"What was done (e.g., Cat6 Cable, Junction Boxes, Electrician)",[163,254,255,258],{},[178,256,257],{},"Volume",[178,259,260],{},"How much was completed (e.g., 45, 8, 3.5)",[163,262,263,266],{},[178,264,265],{},"Unit of Measure",[178,267,268],{},"The unit for the volume (e.g., meters, units, hours)",[163,270,271,274],{},[178,272,273],{},"Task",[178,275,276],{},"Optional — which task this work contributes to",[15,278,279,282],{},[38,280,281],{},"Example:"," A worker reports installing 45 m of Cat6 Cable, 8 Junction Boxes, and 3.5 hours of electrician labour, all against the same task.",[15,284,285],{},"The Task field on each work completed entry determines which task's progress advances. A single report can reference multiple tasks (e.g., one report covering work done at two locations in the same day).",[19,287,289],{"id":288},"ad-hoc-reports-no-formal-task","Ad-Hoc Reports (No Formal Task)",[15,291,292,293,295],{},"The ",[38,294,273],{}," field on each work completed entry is optional — this supports unplanned work:",[15,297,298],{},[38,299,300],{},"Use Cases:",[47,302,303,306,309,312],{},[50,304,305],{},"Emergency repairs (broken equipment, accidents)",[50,307,308],{},"Customer service calls (unplanned site visits)",[50,310,311],{},"Maintenance discovered during other work",[50,313,314],{},"Exploratory work (surveys, assessments)",[15,316,317],{},[38,318,281],{},[24,320,323],{"className":321,"code":322,"language":29},[27],"Report: \"Emergency fiber repair - storm damage\"\nWork Completed: [\n  { resource: \"Fiber Cable\", volume: 20, uom: \"meters\" }\n  // No task linked - this was unplanned emergency work\n]\nConsumed From: [\n  { stockItemId: truck_fiber_id, resource: \"Fiber Cable\", volume: 20, uom: \"meters\" }\n]\n",[31,324,322],{"__ignoreMap":33},[15,326,327],{},"The system still creates consumption transactions, tracks material costs, and calculates payment — even without a formal task or work order.",[19,329,331],{"id":330},"consumed-from-automatic-transactions","Consumed From (Automatic Transactions)",[15,333,334],{},"The Consumed From list triggers automatic inventory deduction when the report is submitted:",[157,336,337,345],{},[160,338,339],{},[163,340,341,343],{},[166,342,240],{},[166,344,94],{},[173,346,347,355,362,369],{},[163,348,349,352],{},[178,350,351],{},"Stock Item",[178,353,354],{},"Which stock item to deduct from (e.g., your truck's cable stock)",[163,356,357,359],{},[178,358,249],{},[178,360,361],{},"What resource was consumed",[163,363,364,366],{},[178,365,257],{},[178,367,368],{},"How much was used",[163,370,371,373],{},[178,372,265],{},[178,374,375],{},"The unit for the volume",[15,377,378],{},[38,379,380],{},"Workflow:",[382,383,384,387,390,393,396,399],"ol",{},[50,385,386],{},"Worker submits report with Consumed From entries",[50,388,389],{},"System validates stock availability at each stock item",[50,391,392],{},"Consumption transactions created automatically",[50,394,395],{},"Transactions linked to this report",[50,397,398],{},"Stock item balances reduced",[50,400,401],{},"If insufficient stock → report rejected or worker prompted for partial",[15,403,404],{},[38,405,281],{},[24,407,410],{"className":408,"code":409,"language":29},[27],"Consumed From: [\n  { stockItemId: johns_truck_cable, resource: \"Cat6 Cable\",    volume: 45, uom: \"meters\" },\n  { stockItemId: johns_truck_boxes, resource: \"Junction Boxes\", volume: 8,  uom: \"units\" }\n]\n\nResult:\n  - 2 consumption transactions created\n  - John's truck inventory reduced by 45m cable, 8 boxes\n  - Transactions linked to this report\n  - Payment calculation has reliable consumption data\n",[31,411,409],{"__ignoreMap":33},[15,413,414],{},[38,415,416],{},"Benefits:",[47,418,419,422,425,428],{},[50,420,421],{},"Stock always accurate (can't report work without recording consumption)",[50,423,424],{},"Transaction audit trail automatic",[50,426,427],{},"Prevents \"ghost consumption\" (report without stock change)",[50,429,430],{},"Payment based on actual materials used",[19,432,434],{"id":433},"report-validation","Report Validation",[15,436,437],{},"When a report is submitted, the system validates:",[15,439,440],{},[38,441,442],{},"Stock Availability:",[47,444,445,448],{},[50,446,447],{},"Each consumed-from entry is checked",[50,449,450,451],{},"If a stock item has insufficient volume → options:\n",[382,452,453,456,459],{},[50,454,455],{},"Reject entire report (error message)",[50,457,458],{},"Prompt for partial consumption (reduce reported volume)",[50,460,461],{},"Allow negative balance (with warning — requires adjustment transaction later)",[15,463,464],{},[38,465,466],{},"Work-Consumption Match:",[47,468,469,472,475],{},[50,470,471],{},"Warning if consumption totals don't align with work completed volumes",[50,473,474],{},"Doesn't block submission (worker might have used personal materials)",[50,476,477],{},"Flags for validation review",[15,479,480],{},[38,481,482],{},"Geometry Validation:",[47,484,485,488,491],{},[50,486,487],{},"Points must have valid coordinates",[50,489,490],{},"Lines must have at least 2 points",[50,492,493],{},"Polygons must close (first point = last point)",[19,495,497],{"id":496},"creating-reports","Creating Reports",[15,499,500,503,504,507],{},[38,501,502],{},"Access Required:"," ",[31,505,506],{},"reportsCreate"," admin right (or self-reporting permission)",[15,509,510],{},[38,511,380],{},[382,513,514,517,523,526,529,543,556,559,562],{},[50,515,516],{},"Navigate to Fulfillment → Reports",[50,518,519,520],{},"Click ",[38,521,522],{},"Add Report",[50,524,525],{},"Fill basic info (name, description, date)",[50,527,528],{},"Optionally link to a work order (for assignment context and progress tracking)",[50,530,531,532],{},"Add work completed entries:\n",[47,533,534,537,540],{},[50,535,536],{},"Select resource",[50,538,539],{},"Enter volume completed",[50,541,542],{},"Link to a task (optional but recommended for progress tracking)",[50,544,545,546],{},"Add consumed from entries:\n",[47,547,548,551,553],{},[50,549,550],{},"Select stock item (usually the worker's personal site or truck)",[50,552,536],{},[50,554,555],{},"Enter volume consumed",[50,557,558],{},"Set geometry (where work was performed)",[50,560,561],{},"Upload photos and attachments",[50,563,564],{},"Submit → consumption transactions created automatically",[15,566,567,570],{},[38,568,569],{},"Quick Report from Work Order:","\nPre-filled form from the work order detail view:",[47,572,573,576,579,582],{},[50,574,575],{},"Work order and assigned-to auto-populated",[50,577,578],{},"Task pre-populated from the work order's linked task",[50,580,581],{},"Suggested consumption based on resource targets",[50,583,584],{},"Worker adjusts actuals and submits",[15,586,587,590],{},[38,588,589],{},"Mobile Report Creation:","\nSimplified mobile interface:",[47,592,593,596,599,602],{},[50,594,595],{},"Camera integration for photos",[50,597,598],{},"GPS auto-capture for geometry",[50,600,601],{},"Voice-to-text for descriptions",[50,603,604],{},"Minimal required fields",[19,606,608],{"id":607},"report-progress-contribution","Report Progress Contribution",[15,610,611],{},"Reports update both task and work order progress:",[15,613,614],{},[38,615,616],{},"Task Progress:",[47,618,619,622,625],{},[50,620,621],{},"Sum all work completed entries that reference this task (across all reports)",[50,623,624],{},"Divide by task resource requirements",[50,626,627],{},"Cap at 100% per resource",[15,629,630],{},[38,631,632],{},"Work Order Progress:",[47,634,635,638,641,643],{},[50,636,637],{},"Sum all work completed from reports that reference this work order",[50,639,640],{},"Divide by the work order's resource targets",[50,642,627],{},[50,644,645],{},"Calculate average across all targets",[15,647,648,651],{},[38,649,650],{},"Over-Delivery:","\nWorkers can report more than was assigned:",[47,653,654,657,660],{},[50,655,656],{},"Contributes to task progress (helps complete the task faster)",[50,658,659],{},"Work order progress is capped at 100% (worker exceeded targets)",[50,661,662],{},"Validation reviews over-delivery to verify accuracy",[19,664,666],{"id":665},"validation-badges-on-the-reports-list","Validation Badges on the Reports List",[15,668,669],{},"Validations are surfaced directly on the reports page as traffic-light badges — you do not navigate to a separate validations page. Each report row has:",[47,671,672,683],{},[50,673,674,675,678,679,682],{},"An ",[38,676,677],{},"aggregate validation badge"," in its own column, showing the most-severe status with a count (e.g. ",[31,680,681],{},"FAILED · 3","). Hover for a per-status breakdown.",[50,684,685,686,689],{},"A ",[38,687,688],{},"status-grouped badge row"," inside the expanded report, with one badge per validation.",[15,691,692,693,696,697,700],{},"Clicking any badge opens the ",[31,694,695],{},"ValidationEditModal"," — a full overlay for viewing, editing, or creating a validation without leaving the report. The ",[38,698,699],{},"Submit"," button in the modal commits report and validation edits together atomically.",[15,702,703,704,224],{},"See ",[220,705,223],{"href":222},[19,707,709],{"id":708},"filtering-reports","Filtering Reports",[15,711,712],{},[38,713,714],{},"Pre-Built Filters:",[47,716,717,723,729],{},[50,718,719,722],{},[38,720,721],{},"Reported by me"," — Your submitted reports",[50,724,725,728],{},[38,726,727],{},"Needs validation"," — Reports without any validation (grey badge)",[50,730,731,734],{},[38,732,733],{},"Recent"," — Last 7 days",[15,736,737,740],{},[38,738,739],{},"Validation Status Filter:","\nThe reports list accepts a validation status filter:",[47,742,743,749,755,761,767,773],{},[50,744,745,748],{},[31,746,747],{},"all"," — every report (default)",[50,750,751,754],{},[31,752,753],{},"none"," — reports without any validation",[50,756,757,760],{},[31,758,759],{},"any"," — reports with at least one validation",[50,762,763,766],{},[31,764,765],{},"failed"," — reports with at least one failed validation",[50,768,769,772],{},[31,770,771],{},"revision"," — reports with at least one needs-revision validation",[50,774,775,778],{},[31,776,777],{},"passed"," — reports where all validations pass",[15,780,781],{},[38,782,783],{},"Custom Filters:",[47,785,786,789,792,795],{},[50,787,788],{},"Date range",[50,790,791],{},"Reported by specific user",[50,793,794],{},"Linked work order",[50,796,797],{},"Task reference",[19,799,801],{"id":800},"best-practices","Best Practices",[15,803,804],{},[38,805,806],{},"Accurate Consumption Reporting:",[47,808,809,812,815],{},[50,810,811],{},"Report actual materials used (not estimated)",[50,813,814],{},"Use stock items from your personal site (proves you had the materials)",[50,816,817],{},"Document over-consumption (explain why more materials were needed)",[15,819,820],{},[38,821,822],{},"Timely Submission:",[47,824,825,828,831],{},[50,826,827],{},"Submit reports the same day as the work performed",[50,829,830],{},"GPS and timestamps provide accountability",[50,832,833],{},"Fresh memory = more accurate details",[15,835,836],{},[38,837,838],{},"Photo Documentation:",[47,840,841,844,847,850],{},[50,842,843],{},"Before photos (site condition)",[50,845,846],{},"During photos (work in progress)",[50,848,849],{},"After photos (completed installation)",[50,851,852],{},"Issues photos (damage, obstacles, non-standard conditions)",[15,854,855],{},[38,856,857],{},"Detailed Descriptions:",[47,859,860,863,866],{},[50,861,862],{},"Note any deviations from task requirements",[50,864,865],{},"Document reasons for over or under-consumption",[50,867,868],{},"Record issues for future reference (locked gates, missing permits, weather)",[15,870,871],{},[38,872,873],{},"Link to Tasks When Possible:",[47,875,876,879,882],{},[50,877,878],{},"Helps track task and project progress",[50,880,881],{},"Enables spatial analysis (where work is concentrated)",[50,883,884],{},"Improves future task estimation",[15,886,887],{},[38,888,889],{},"Respond to Validation Comments:",[47,891,892,895,898,901],{},[50,893,894],{},"Review validation comments promptly",[50,896,897],{},"Reply in the comment thread with clarification or confirmation of corrections",[50,899,900],{},"Correct errors in future reports",[50,902,903],{},"Learn from quality feedback",[19,905,907],{"id":906},"report-immutability","Report Immutability",[15,909,910,913],{},[38,911,912],{},"Soft Deletes:","\nReports can be marked deleted but stay in the database:",[47,915,916,919,922],{},[50,917,918],{},"Preserves transaction history (consumption transactions remain)",[50,920,921],{},"Maintains payment audit trail",[50,923,924,927],{},[31,925,926],{},"viewDeleted"," admin right to see deleted reports",[15,929,930,933],{},[38,931,932],{},"Edit Restrictions:","\nAfter a validation is performed:",[47,935,936,939,942],{},[50,937,938],{},"Reports become read-only",[50,940,941],{},"Corrections require a new report with notes",[50,943,944],{},"Preserves QC integrity",[15,946,947],{},[38,948,949],{},"Audit Trail:",[47,951,952,955,958],{},[50,953,954],{},"Every report edit logged (who, when, what changed)",[50,956,957],{},"Consumption transactions never edited (immutable)",[50,959,960],{},"Payment calculations traceable to original report data",{"title":33,"searchDepth":962,"depth":962,"links":963},2,[964,965,966,967,968,969,970,971,972,973,974,975,976],{"id":21,"depth":962,"text":22},{"id":64,"depth":962,"text":65},{"id":154,"depth":962,"text":155},{"id":227,"depth":962,"text":228},{"id":288,"depth":962,"text":289},{"id":330,"depth":962,"text":331},{"id":433,"depth":962,"text":434},{"id":496,"depth":962,"text":497},{"id":607,"depth":962,"text":608},{"id":665,"depth":962,"text":666},{"id":708,"depth":962,"text":709},{"id":800,"depth":962,"text":801},{"id":906,"depth":962,"text":907},"Field workers submit reports to record what was done, materials consumed, GPS location, and photos. Submitting a report automatically deducts inventory and feeds into payment calculations.","md",{},true,"/en/user/work-fulfillment/reports",{"title":5,"description":977},"en/user/work-fulfillment/reports","3xKSsD3flJttpR_kNy4aneRFFCvPVcYwuR4bY9VWPSI",1780539286577]