[{"data":1,"prerenderedAt":1030},["ShallowReactive",2],{"guide:en:work-fulfillment/validations":3},{"id":4,"title":5,"body":6,"description":1022,"extension":1023,"meta":1024,"navigation":1025,"path":1026,"seo":1027,"stem":1028,"__hash__":1029},"guide_en/en/user/work-fulfillment/validations.md","Validations — Quality Control as Badges on Reports",{"type":7,"value":8,"toc":1003},"minimark",[9,14,23,26,31,46,56,66,80,84,87,113,118,137,141,152,156,161,193,198,218,222,225,251,257,262,273,277,283,294,300,311,317,328,334,345,349,355,363,369,377,383,391,397,405,411,419,425,433,437,443,457,463,477,483,494,498,506,511,559,568,582,586,591,661,665,672,710,725,730,744,748,751,756,767,772,789,794,805,809,812,817,831,836,847,852,863,867,872,889,894,905,910,921,926,937,942,956,960,966,983,989],[10,11,13],"h1",{"id":12},"validations","Validations",[15,16,17,18,22],"p",{},"Validations are the quality control step after a report is submitted. ",[19,20,21],"strong",{},"As of the current release, validations are no longer a standalone page"," — they live alongside the report they apply to, shown as a traffic-light badge on the reports list and a status-grouped badge row in the expanded report view.",[15,24,25],{},"A supervisor or QC inspector opens a report, clicks a validation badge to view or create a validation in an overlay modal, verifies measurements and installation quality, and records findings against the specific line items in the report. Each finding has a severity level (critical, warning, info) and the overall validation status determines whether payment is released or the worker needs to correct their work.",[27,28,30],"h2",{"id":29},"where-validations-live","Where Validations Live",[15,32,33,36,37,41,42,45],{},[19,34,35],{},"Reports list:"," Every report row shows an aggregate validation badge (grey/red/yellow/green) in its own column. The badge displays the most-severe status with a count — for example, ",[38,39,40],"code",{},"FAILED · 3"," if there are three failed validations on that report. Hovering the badge reveals a per-status breakdown like ",[38,43,44],{},"failed: 1, passed: 2",".",[15,47,48,51,52,55],{},[19,49,50],{},"Expanded report:"," Opening a report in the list shows a validation badge row grouped by status. Clicking any badge opens the ",[38,53,54],{},"ValidationEditModal"," — a full-featured overlay for viewing, editing, or creating a validation without leaving the report.",[15,57,58,61,62,65],{},[19,59,60],{},"Mobile:"," The mobile supervisor queue at ",[38,63,64],{},"/m/validations"," is unchanged. Mobile validators continue to work through assigned validations from a dedicated list.",[15,67,68,71,72,75,76,79],{},[19,69,70],{},"Print view:"," The standalone ",[38,73,74],{},"/fulfillment/validations/:id"," page is preserved as a ",[19,77,78],{},"print-only view",". The modal has a Print button in its header that opens the print page in a new tab. Deep-links from old bookmarks still resolve.",[27,81,83],{"id":82},"opening-a-validation","Opening a Validation",[15,85,86],{},"From the reports list:",[88,89,90,94,97,103,110],"ol",{},[91,92,93],"li",{},"Find the report you want to validate",[91,95,96],{},"Click the validation badge in the report row (or expand the row to see badges grouped by status)",[91,98,99,100,102],{},"The ",[38,101,54],{}," opens over the page",[91,104,105,106,109],{},"View the existing validation, or click ",[19,107,108],{},"Create validation"," if none exists",[91,111,112],{},"Record findings, upload photos, set status, save",[15,114,115],{},[19,116,117],{},"Access gates:",[119,120,121,124,131],"ul",{},[91,122,123],{},"Viewing validations requires no special right",[91,125,126,127,130],{},"Creating requires the ",[38,128,129],{},"validationsCreate"," admin right",[91,132,133,134,130],{},"Editing requires the ",[38,135,136],{},"validationsUpdate",[27,138,140],{"id":139},"unified-submit-report-validation-together","Unified Submit (Report + Validation Together)",[15,142,143,144,147,148,151],{},"The redesign unifies editing across the report and its validations. When you have both the report and a validation open, the ",[19,145,146],{},"Submit"," button batches all changes together — report edits and validation edits share a single ",[38,149,150],{},"diffData"," payload and commit atomically. You don't save validations separately from the report.",[27,153,155],{"id":154},"validation-structure","Validation Structure",[15,157,158],{},[19,159,160],{},"Core Fields:",[119,162,163,169,175,181,187],{},[91,164,165,168],{},[19,166,167],{},"Report"," - Reference to validated report (set automatically when you open from the report)",[91,170,171,174],{},[19,172,173],{},"Validator"," - User who performed QC check",[91,176,177,180],{},[19,178,179],{},"Status"," - pass, fail, needs-revision, approved-with-notes",[91,182,183,186],{},[19,184,185],{},"Validation Date"," - When QC performed",[91,188,189,192],{},[19,190,191],{},"Overall Notes"," - General observations, summary",[15,194,195],{},[19,196,197],{},"Detailed Findings:",[119,199,200,206,212],{},[91,201,202,205],{},[19,203,204],{},"Findings"," - Array of specific issues discovered",[91,207,208,211],{},[19,209,210],{},"Photos"," - Documentation of quality issues",[91,213,214,217],{},[19,215,216],{},"Recommended Actions"," - Follow-up tasks, corrections needed",[27,219,221],{"id":220},"findings-structure","Findings Structure",[15,223,224],{},"Each finding in a validation targets a specific line item from the report's Work Completed list. Findings include:",[119,226,227,233,239,245],{},[91,228,229,232],{},[19,230,231],{},"Which work item"," has the issue (by position in the work completed list)",[91,234,235,238],{},[19,236,237],{},"Issue type"," — the category of problem (e.g., volume mismatch, quality issue)",[91,240,241,244],{},[19,242,243],{},"Severity"," — critical, warning, or info",[91,246,247,250],{},[19,248,249],{},"Description"," — a plain-language explanation of the issue",[15,252,253,256],{},[19,254,255],{},"Example:"," A report records Cat6 Cable (45 m), Junction Boxes (8 units), and Electrician Labour (3.5 hours). The validation finds a volume mismatch on the cable (42 m physically measured vs. 45 m reported, severity: warning) and a critical quality issue on two improperly mounted junction boxes.",[15,258,259],{},[19,260,261],{},"Key Points:",[119,263,264,267,270],{},[91,265,266],{},"Each finding references a specific line item, so validators can pass some work and flag others in the same report",[91,268,269],{},"Multiple findings can be added per report",[91,271,272],{},"Detailed notes preserve context for the worker's review",[27,274,276],{"id":275},"validation-status","Validation Status",[15,278,279,282],{},[19,280,281],{},"pass"," - Work meets quality standards",[119,284,285,288,291],{},[91,286,287],{},"All measurements accurate",[91,289,290],{},"Installation per specifications",[91,292,293],{},"Materials properly documented",[15,295,296,299],{},[19,297,298],{},"fail"," - Work does not meet standards",[119,301,302,305,308],{},[91,303,304],{},"Critical quality issues",[91,306,307],{},"Significant measurement discrepancies",[91,309,310],{},"Requires rework",[15,312,313,316],{},[19,314,315],{},"needs-revision"," - Minor issues, corrections needed",[119,318,319,322,325],{},[91,320,321],{},"Small measurement differences (within tolerance)",[91,323,324],{},"Documentation incomplete",[91,326,327],{},"Photos needed",[15,329,330,333],{},[19,331,332],{},"approved-with-notes"," - Acceptable with caveats",[119,335,336,339,342],{},[91,337,338],{},"Work meets minimum standards",[91,340,341],{},"Issues noted for tracking",[91,343,344],{},"Patterns to address in training",[27,346,348],{"id":347},"issue-types","Issue Types",[15,350,351,354],{},[19,352,353],{},"volume_mismatch"," - Reported volume doesn't match physical measurement",[119,356,357,360],{},[91,358,359],{},"Example: Report claims 50m cable, measurement shows 45m",[91,361,362],{},"Severity: warning (small difference) or critical (large discrepancy)",[15,364,365,368],{},[19,366,367],{},"quality_issue"," - Installation doesn't meet standards",[119,370,371,374],{},[91,372,373],{},"Example: Improper mounting, missing weatherproofing, damage",[91,375,376],{},"Severity: critical (safety hazard) or warning (cosmetic)",[15,378,379,382],{},[19,380,381],{},"documentation_incomplete"," - Missing required information",[119,384,385,388],{},[91,386,387],{},"Example: No photos, vague description, missing certifications",[91,389,390],{},"Severity: info (minor) or warning (regulatory requirement)",[15,392,393,396],{},[19,394,395],{},"location_discrepancy"," - Work performed at wrong location",[119,398,399,402],{},[91,400,401],{},"Example: Report geometry doesn't match task geometry",[91,403,404],{},"Severity: critical (completely wrong site) or warning (slightly off)",[15,406,407,410],{},[19,408,409],{},"consumption_mismatch"," - Consumed materials don't align with work completed",[119,412,413,416],{},[91,414,415],{},"Example: Reported 50m cable work, consumed 80m from stock",[91,417,418],{},"Severity: warning (investigate waste/theft)",[15,420,421,424],{},[19,422,423],{},"safety_violation"," - Unsafe practices observed",[119,426,427,430],{},[91,428,429],{},"Example: Missing safety equipment, improper procedures",[91,431,432],{},"Severity: critical (always)",[27,434,436],{"id":435},"severity-levels","Severity Levels",[15,438,439,442],{},[19,440,441],{},"critical"," - Requires immediate correction, work not acceptable",[119,444,445,448,451,454],{},[91,446,447],{},"Safety violations",[91,449,450],{},"Major quality defects",[91,452,453],{},"Significant measurement errors",[91,455,456],{},"Financial impact > threshold",[15,458,459,462],{},[19,460,461],{},"warning"," - Needs attention, but work marginally acceptable",[119,464,465,468,471,474],{},[91,466,467],{},"Minor quality issues",[91,469,470],{},"Small measurement discrepancies",[91,472,473],{},"Documentation gaps",[91,475,476],{},"Training opportunities",[15,478,479,482],{},[19,480,481],{},"info"," - Noted for tracking, no immediate action required",[119,484,485,488,491],{},[91,486,487],{},"Best practices suggestions",[91,489,490],{},"Efficiency improvements",[91,492,493],{},"Informational observations",[27,495,497],{"id":496},"creating-validations","Creating Validations",[15,499,500,503,504,130],{},[19,501,502],{},"Access Required:"," ",[38,505,129],{},[15,507,508],{},[19,509,510],{},"Workflow:",[88,512,513,516,519,527,530,544,547,550,553],{},[91,514,515],{},"Navigate to Fulfillment → Reports",[91,517,518],{},"Open (or expand) the report you want to validate",[91,520,521,522,524,525,109],{},"Click a validation badge to open the ",[38,523,54],{},", or click ",[19,526,108],{},[91,528,529],{},"Review work completed against physical site",[91,531,532,533],{},"For each resource in work completed:\n",[119,534,535,538,541],{},[91,536,537],{},"Verify measurements",[91,539,540],{},"Check quality of installation",[91,542,543],{},"Document any issues in findings",[91,545,546],{},"Upload photos of quality issues",[91,548,549],{},"Set overall status (pass/fail/needs-revision/approved-with-notes)",[91,551,552],{},"Add overall notes (summary)",[91,554,555,556,558],{},"Click ",[19,557,146],{}," to save report + validation edits together",[15,560,561,564,565,567],{},[19,562,563],{},"Field Validation:","\nMobile validator workflow (",[38,566,64],{},"):",[119,569,570,573,576,579],{},[91,571,572],{},"GPS verification (are you at the site?)",[91,574,575],{},"Camera integration for quality issue photos",[91,577,578],{},"Voice-to-text for descriptions",[91,580,581],{},"Offline mode (submit when back online)",[27,583,585],{"id":584},"validation-workflow","Validation Workflow",[15,587,588],{},[19,589,590],{},"Typical Process:",[88,592,593,599,605,611,617,623,628,633,638,643,649,655],{},[91,594,595,598],{},[19,596,597],{},"Report Submitted"," - Worker completes report",[91,600,601,604],{},[19,602,603],{},"Badge Visible"," - Reports list shows a grey \"none\" badge for reports without validations",[91,606,607,610],{},[19,608,609],{},"Validator Opens Report"," - Clicks the badge, opens the modal",[91,612,613,616],{},[19,614,615],{},"Site Visit"," - Validator visits location (or reviews based on photos + data)",[91,618,619,622],{},[19,620,621],{},"Measurements"," - Physical verification of work",[91,624,625,627],{},[19,626,210],{}," - Document quality (good or bad)",[91,629,630,632],{},[19,631,204],{}," - Record any discrepancies inside the modal",[91,634,635,637],{},[19,636,179],{}," - Set pass/fail/needs-revision on the validation",[91,639,640,642],{},[19,641,146],{}," - Saves report + validation atomically",[91,644,645,648],{},[19,646,647],{},"Follow-Up"," - If needs-revision, worker addresses issues",[91,650,651,654],{},[19,652,653],{},"Re-Validation"," - Re-open the badge, add findings to the existing validation or create a new one",[91,656,657,660],{},[19,658,659],{},"Final Approval"," - Report approved, payment released",[27,662,664],{"id":663},"filtering-reports-by-validation-status","Filtering Reports by Validation Status",[15,666,667,668,671],{},"Because validations live on the reports page now, the reports list accepts a ",[19,669,670],{},"validation status filter",":",[119,673,674,680,686,692,698,704],{},[91,675,676,679],{},[38,677,678],{},"all"," — every report (default)",[91,681,682,685],{},[38,683,684],{},"none"," — reports without any validation (needs QC attention)",[91,687,688,691],{},[38,689,690],{},"any"," — reports with at least one validation",[91,693,694,697],{},[38,695,696],{},"failed"," — reports with at least one failed validation",[91,699,700,703],{},[38,701,702],{},"revision"," — reports with at least one needs-revision validation",[91,705,706,709],{},[38,707,708],{},"passed"," — reports where all validations pass",[15,711,712,713,716,717,720,721,724],{},"Under the hood, the ",[38,714,715],{},"/api/reports/get"," endpoint accepts ",[38,718,719],{},"populateValidations=true"," and ",[38,722,723],{},"validationStatusFilter=\u003Cstatus>"," query parameters. The reports list uses these to show the badges and to filter.",[15,726,727],{},[19,728,729],{},"Custom filters still apply:",[119,731,732,735,738,741],{},[91,733,734],{},"Validator (who performed QC)",[91,736,737],{},"Date range",[91,739,740],{},"Severity (critical findings only)",[91,742,743],{},"Issue type (volume_mismatch, quality_issue, etc.)",[27,745,747],{"id":746},"payment-integration","Payment Integration",[15,749,750],{},"Validations control payment release:",[15,752,753],{},[19,754,755],{},"Payment Hold:",[119,757,758,761,764],{},[91,759,760],{},"Reports with fail status → payment held",[91,762,763],{},"Reports with needs-revision → partial payment (configurable)",[91,765,766],{},"Reports with approved-with-notes → full payment, notes tracked",[15,768,769],{},[19,770,771],{},"Payment Release:",[88,773,774,777,780,783,786],{},[91,775,776],{},"Report submitted",[91,778,779],{},"Validation performed via the badge/modal",[91,781,782],{},"If pass or approved-with-notes → payment released",[91,784,785],{},"If needs-revision → partial payment, re-validation required",[91,787,788],{},"If fail → no payment, rework required",[15,790,791],{},[19,792,793],{},"Financial Protection:",[119,795,796,799,802],{},[91,797,798],{},"Prevents payment for substandard work",[91,800,801],{},"Incentivizes quality",[91,803,804],{},"Audit trail for payment decisions",[27,806,808],{"id":807},"validation-analytics","Validation Analytics",[15,810,811],{},"Track quality trends over time:",[15,813,814],{},[19,815,816],{},"By Worker:",[119,818,819,822,825,828],{},[91,820,821],{},"Pass rate per worker",[91,823,824],{},"Common issue types",[91,826,827],{},"Improvement trends",[91,829,830],{},"Training needs identification",[15,832,833],{},[19,834,835],{},"By Task Type:",[119,837,838,841,844],{},[91,839,840],{},"Which tasks have highest fail rate",[91,842,843],{},"Resource-specific quality issues (cable vs. labor vs. equipment)",[91,845,846],{},"Estimation accuracy (volume mismatches indicate poor estimates)",[15,848,849],{},[19,850,851],{},"By Validator:",[119,853,854,857,860],{},[91,855,856],{},"Consistency checks (is one validator too strict/lenient?)",[91,858,859],{},"Validation turnaround time",[91,861,862],{},"Finding severity distribution",[27,864,866],{"id":865},"best-practices","Best Practices",[15,868,869],{},[19,870,871],{},"Timely Validation:",[119,873,874,880,883,886],{},[91,875,876,877,879],{},"Use the reports list's ",[38,878,684],{}," filter to find reports awaiting QC",[91,881,882],{},"Validate within 24-48 hours of report submission",[91,884,885],{},"Fresh evidence (materials still visible, worker still remembers)",[91,887,888],{},"Faster payment to workers",[15,890,891],{},[19,892,893],{},"Specific Findings:",[119,895,896,899,902],{},[91,897,898],{},"Reference the specific work completed entry by position (the first item, second item, etc.) to make findings actionable",[91,900,901],{},"Detailed descriptions help worker understand issue",[91,903,904],{},"Photos provide indisputable evidence",[15,906,907],{},[19,908,909],{},"Constructive Feedback:",[119,911,912,915,918],{},[91,913,914],{},"Frame as training opportunity",[91,916,917],{},"Explain why issue matters (safety, standards, cost)",[91,919,920],{},"Offer suggestions for improvement",[15,922,923],{},[19,924,925],{},"Consistent Standards:",[119,927,928,931,934],{},[91,929,930],{},"Apply same criteria to all workers",[91,932,933],{},"Document quality standards clearly",[91,935,936],{},"Regular validator calibration (ensure consistency)",[15,938,939],{},[19,940,941],{},"Use the Print View for Hard Copies:",[119,943,944,950,953],{},[91,945,946,947,949],{},"Open the ",[38,948,54],{}," on an existing validation",[91,951,952],{},"Click the Print button in the modal header",[91,954,955],{},"The print page opens in a new tab, ready for paper or PDF export",[27,957,959],{"id":958},"validation-immutability","Validation Immutability",[15,961,962,965],{},[19,963,964],{},"Soft Deletes:","\nValidations can be marked deleted but stay in database:",[119,967,968,971,974,977],{},[91,969,970],{},"Preserves QC history",[91,972,973],{},"Maintains payment audit trail",[91,975,976],{},"Configurable retention period",[91,978,979,982],{},[38,980,981],{},"viewDeleted"," admin right to see deleted validations",[15,984,985,988],{},[19,986,987],{},"Edit Restrictions:","\nAfter payment released:",[119,990,991,994,997,1000],{},[91,992,993],{},"Validations become read-only (modal is view-only)",[91,995,996],{},"Corrections require a new validation with notes",[91,998,999],{},"Preserves financial integrity",[91,1001,1002],{},"Version history tracks all changes before finalization",{"title":1004,"searchDepth":1005,"depth":1005,"links":1006},"",2,[1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021],{"id":29,"depth":1005,"text":30},{"id":82,"depth":1005,"text":83},{"id":139,"depth":1005,"text":140},{"id":154,"depth":1005,"text":155},{"id":220,"depth":1005,"text":221},{"id":275,"depth":1005,"text":276},{"id":347,"depth":1005,"text":348},{"id":435,"depth":1005,"text":436},{"id":496,"depth":1005,"text":497},{"id":584,"depth":1005,"text":585},{"id":663,"depth":1005,"text":664},{"id":746,"depth":1005,"text":747},{"id":807,"depth":1005,"text":808},{"id":865,"depth":1005,"text":866},{"id":958,"depth":1005,"text":959},"Validations are now managed directly from the reports page as traffic-light badges. Supervisors open a validation modal to verify specific line items in a report, record findings by severity, and control payment release for approved work.","md",{},true,"/en/user/work-fulfillment/validations",{"title":5,"description":1022},"en/user/work-fulfillment/validations","5Q8cEfXeCzD0UY5Qlo9zozwY7dlTdpnbkExYW33ng8g",1776295549447]