MainTrac
Maintenance tracking for parks, recreation, and municipal facilities
Executive Summary
MainTrac is Vermont Systems' maintenance management product, currently embedded as the MT module within RecTrac 3.1. It enables parks, recreation, and municipal facilities departments to manage the complete lifecycle of maintenance operations — from asset inventories and preventive maintenance plans through work order execution, staff and resource logging, inspections, and cost reporting.
MainTrac originated as a standalone Progress/OpenEdge application (MainTrac 10.2) before being absorbed into the RecTrac 3.1 platform. Customers include municipal parks departments and military recreation facilities (CNIC). Notable reference customers include the City of Albuquerque and City of Reno Parks Maintenance.
In May 2026, the Vermont Systems Product/Engineering decomposition review confirmed MainTrac as a Cohort 1 extraction candidate. It was characterized as a leaf node — zero shared engine dependencies, no entries in RecTrac's unified transaction tables — making it the safest and most logical starting point for the broader platform decomposition effort. Successfully extracting MainTrac validates the extraction pattern for all subsequent modules and opens a cross-brand market play for NextRec and RecDesk customers.
This document provides the full product picture needed to plan that extraction: what MainTrac does, how it is currently architected, exactly where it is coupled to RecTrac, what gaps exist, and what work is required to stand it alone.
Product Overview
Who Uses MainTrac
MainTrac is used by public agencies and municipal organizations that manage physical infrastructure, facilities, and equipment — primarily parks and recreation departments, public works teams, and military recreation programs. Users range from maintenance technicians and supervisors in the field to administrative staff and managers reviewing cost reports.
Core Value Proposition
- Centralized inventory of all maintainable assets (facilities, equipment, trees, streets, utilities)
- Structured work order management with full approval and scheduling workflows
- Preventive maintenance planning with auto-generated work orders
- Accurate cost tracking — labor hours, materials, equipment, contracts — against assets and tasks
- Mobile-first field experience for work order execution and inspections
- Management reporting for cost analysis, productivity, and compliance
Product Lifecycle
MainTrac started as a standalone Progress/OpenEdge application (MainTrac 10.2) with its own database schema. It was absorbed into RecTrac 3.1 and migrated via a database dump/import process. Several 10.2 features (contract processing, certain reports) required partial re-implementation for 3.1. The platform is now being evaluated for re-extraction as a standalone service.
Where MainTrac Sits in the RecTrac Suite
RecTrac 3.1 is organized into functional modules, each with a two-letter code. MainTrac is module MT. Other modules include Activity (AR), Facility Reservations (FR), Pass/Memberships (PM), Rentals (RN), POS (PSS/PSI/PST), FinTrac (FT), Courts (CR), Leagues (LS), Golf (GR), and System Admin (SA). MainTrac is the only module focused on maintenance operations, and the only one being considered for Cohort 1 extraction.
Functional Modules
3.1 Work Orders
Work orders are the central operational unit in MainTrac. A work order represents a specific maintenance task or job to be performed against one or more assets, with a full lifecycle from creation through completion.
Work Order Lifecycle:
Key capabilities:
- Work order creation — manual or auto-generated from Preventive Maintenance Plans
- Approval codes for authorization workflows
- Linked assets (one work order can span multiple assets)
- Assigned staff tracking
- Email notifications when a work order is created, updated, or completed
- Status check and validation logic (
MTWOStatusCheck.p) - Work requests from external users
- Mobile access for field technicians
Key data entity: MTWorkOrder
3.2 Preventive Maintenance Plans
PM Plans define recurring scheduled maintenance activities for specific assets. When a plan's schedule triggers, MainTrac automatically creates work orders for the defined tasks, reducing manual entry and ensuring compliance.
- Configurable schedules (frequency, dates)
- Linked to assets and task codes
- Bulk clone capability for rolling plans forward (
MTPMPlanUpdateAll.p) - Auto-work-order creation (
MTAutoWorkOrderCreatePM.p)
Key data entity: MTPMPlan
3.3 Asset Management
MainTrac manages five distinct asset types, each representing a different category of maintainable infrastructure:
Assets are organized through a family and category hierarchy that enables grouping related assets and defining standard task sets at the category level (applied to all assets in that category).
Asset management capabilities:
- Asset descriptions, codes, family/category assignment
- Depreciation tracking
- GL Code integration for financial reporting
- Linked tasks — standard maintenance tasks attached to asset categories
- Equipment sign-in/sign-out tracking (
MTEquipmentSignInOut.p) - Bulk facility data import/export (
MTFacilityImport.p) - Photo attachments
Key data entities: MTAssetDescription, MTAssetCatTasks
3.4 Tasks & Inspections
Tasks are the atomic units of work within MainTrac. Task codes are organized into categories and classes, enabling structured reporting and filtering.
Task management:
- Task codes with descriptions and GL codes
- Task categories and classes for grouping
- Contracted price field per task (for contract processing workflows)
- Bulk task assignment and deletion on assets
Inspections:
- Inspection forms attached to asset categories
- Mobile inspection execution (
MobileMTInspections) - Inspection results capture — pass/fail, findings, notes
- Inspection Results Report with work order status linkage
- Work orders can be generated directly from inspection findings
Key data entities: MTTaskCode, MTTaskCategory, MTTaskClass, MTInspectionResults
3.5 Labor, Material & Resource Logging
MainTrac tracks all resources consumed against work orders and assets with individual log types for each resource category:
| Log Type | What Is Tracked | Key Entity |
|---|---|---|
| Labor Log | Staff hours — linked to staff code, date, task, facility | MTLaborLog |
| Material Log | Materials used — item, quantity, unit cost | MTMaterialLog |
| Equipment Log | Equipment usage — duration, rate, cost | MTEquipmentLog |
| Misc Expense Log | One-off or contracted expenses not fitting other categories | MTMiscExpenseLog |
All log entries support posting and reversal (MTLogPost.p, MTLogReverse.p), GL code assignment, overhead/benefit allocation toggles, and Purchase Order references.
3.6 Combination Log
The Combination Log is MainTrac's unified multi-resource logging interface. Rather than entering labor, materials, and equipment separately, users can log all resource types against assets and tasks in a single workflow session.
- Single screen entry for all resource types (Labor, Equipment, Material, Contract, Misc)
- Supports smart split logic when logging against multiple assets/tasks
- Form-based log variant for inspection-driven logging
- Work order log variant for work-order-driven logging
- Full review and edit capability post-entry
The Combination Log is one of the three endpoints planned for the public API (see Section 3.10).
Key data entity: MTComboLogHistory
3.7 Contract Processing
Contract Processing was a first-class feature in MainTrac 10.2 standalone. In RecTrac 3.1 it was implemented as a hybrid workflow via the Combination Log using a "Contract" expense type — not a standalone program. This was driven by the limited number of customers requiring it at the time of migration. It is not a fully native first-class workflow in 3.1.
The current implementation supports:
- Contracted price field on Task Codes and Asset Category Tasks
- Contract expense type in the Combination Log's Misc Expense tab
- Contracted Price Log prompt: distributed cost entry across selected assets/tasks
- Smart price defaulting based on task contracted prices
- Edit capability for contracted log entries
3.8 Mobile
MainTrac provides a dedicated mobile experience for field staff who need to execute work orders and perform inspections without desktop access.
| Feature | Handler | Status |
|---|---|---|
| Mobile Work Orders — listing, detail, update | MobileMTWorkOrder.p |
Live |
| Mobile Inspections — execute forms, capture results | MobileMTInspections.p |
Live |
| Mobile photo uploads | Integrated into mobile WO/inspection | Live |
| Work order filtering by assigned staff | — | Gap — not implemented |
| Deep-link from email to specific work order | — | Gap — redirects to login |
3.9 Reporting
MainTrac includes a set of operational and management reports for analyzing work orders, costs, and facility performance:
| Report | Purpose | Key Dimensions |
|---|---|---|
| Work Order Analysis Report | Time to complete work orders; staff productivity statistics | Sort by Staff or WO Number; Open/Due Date comparison; Assignment Statistics |
| Project Results Report | Cost breakdown by project with resource type subtotals | Sort by Project or Date; Detail/Summary format; Labor, Equipment, Materials, Contracts columns |
| Facility Task Report (Fixed Asset Report) | Cost per task across different facilities/assets | Sort by Asset or Task; Detail/Summary; Resource type codes (F/E/T/S/U) |
| Combination Log Report | Full audit of all logged activity — labor, materials, equipment, contracts | Filterable by date, facility, task, resource type |
| Inspection Results Report | Inspection outcomes per asset with work order status | Work Order Status column (recently fixed from blank issue) |
| Supervisors Report | Custom management-level summary for supervisors | MTSupervisorsReport.p |
All reports support CSV export, landscape/portrait print options, and configurable filter criteria. The Project Results and Facility Task reports support both Detail and Summary format modes.
3.10 API (Planned)
Jira issue VSXORG-246 captures the initiative to expose MainTrac data via the RecTrac REST API. The three key planned endpoints are: Combination Log, Inspections, and Work Orders. This work has not shipped. Building this capability is a natural prerequisite — or early deliverable — in a standalone product architecture.
Data Model Summary
All MainTrac data entities live in the MT namespace within the shared RecTrac Progress database (rectrac.df). This is a key extraction advantage — the MT tables are isolated by naming convention and do not appear in shared transaction tables used by other RecTrac modules.
| Domain | Entities |
|---|---|
| Work Orders | MTWorkOrder |
| Preventive Maintenance | MTPMPlan |
| Assets | MTAssetDescription, MTAssetCatTasks |
| Tasks | MTTaskCode, MTTaskCategory, MTTaskClass |
| Logging & Transactions | MTLaborLog, MTMaterialLog, MTEquipmentLog, MTMiscExpenseLog, MTComboLogHistory |
| Equipment Tracking | MTEquipmentSignInOut |
| Inspections | MTInspectionResults |
These entities form a self-contained domain graph. References to external RecTrac entities (staff records, GL codes, permission codes) represent the primary coupling surface that extraction work must address — see Section 6.
Technical Architecture (Current — within RecTrac)
Backend
| Layer | Technology | Details |
|---|---|---|
| Language | Progress/OpenEdge ABL | Version 12.8 — procedural/OO hybrid language |
| App Server | PASOE | Progress Application Server for OpenEdge — REST/WebSpeed transport |
| Web routing | web-handler.p |
Central request dispatcher; routes to screen-pair handlers (MTFoo.p) |
| Screen model | Main/Update pairs | e.g., MTWorkOrderMain.p / MTWorkOrderUpdate.p |
| Database | Progress ProDB | Shared rectrac.df schema; multi-tenant hosting |
| Error handling | ABL block-level exceptions | on error undo, throw pattern; centralized LogManager |
Frontend
| Layer | Technology | Notes |
|---|---|---|
| NextGen UI (active) | Vue.js 2.7.14 + Vuetify 2.6.9 | Material Design; new screens go here; Vue Router 3.6.5, Vuex 3.6.2 |
| Legacy UI | jQuery-based client | Older screens not yet ported to Vue; still in production use |
| Mobile | Dedicated MobileMT* screen handlers |
Responsive design for field-facing mobile views |
| HTTP client | Axios | Used in Vue components to call PASOE API |
Build & Deployment
- Build system: Gradle (backend), Node.js/npm (frontend)
- CI/CD: Jenkinsfile-driven automated builds
- Hosting: Multi-tenant — configuration-based tenant isolation via
config.ini - Current version: RecTrac 3.1.11.10.00
Backend Business Logic — MT Files
MainTrac's server-side logic is contained in 26 MT*.p procedure files under RecTrac/Business/:
RecTrac Coupling Analysis
This section identifies every dependency that currently ties MainTrac to the RecTrac platform. Each dependency must be addressed — either replicated, abstracted, or consumed via a service interface — before MainTrac can operate as a standalone product.
MainTrac does not write to RecTrac's unified transaction tables (the tables that modules like AR, FR, and PM share for booking and billing). This is what makes it a leaf node and is the single most important factor enabling clean extraction.
| Dependency | Shared With | Coupling Type | Extraction Notes |
|---|---|---|---|
| Authentication & Sessions | SA module (all of RecTrac) | Hard | Uses SAUserSettings, SASecurityFile. Requires standalone identity service — the Identity & Auth extraction (Cohort 1 co-candidate) must come first or in parallel. |
| Permission System | All modules | Hard | Permission codes via SAPermissionData, SAModule. Must be replicated or provided by the new Identity service. |
| Staff / User Records | All modules (SA) | Medium | Work orders reference staff records for assignment. Can be bridged via API reference to an Identity service. |
| GL Code Configuration | FinTrac (FT module) | Medium | Assets and tasks carry GL codes for cost allocation. Requires either copying the GL code reference table or consuming it from a shared FinTrac service. |
| Progress Database Schema | All RecTrac modules | Hard | MT tables live in the shared rectrac.df schema file. Extraction requires isolating MT* tables into a standalone schema and migrating data accordingly. |
| Web Handler / Routing | Entire RecTrac application | Infrastructure | web-handler.p routes all requests. A standalone deployment would need its own PASOE instance or API gateway. |
| Application Logging & Utilities | All modules | Soft | Shared LogManager, CleanupMemory.p. These are utility dependencies — easily replicated or bundled with the standalone product. |
| Vue.js Frontend Shell | All NextGen modules | Infrastructure | Shared Vue Router and Vuex store. A standalone product would need its own Vue app shell — significant but straightforward frontend work. |
| Unified Transaction Tables | AR, FR, PM, RN modules | None | MainTrac does not use these. This is the defining leaf-node characteristic — no booking, billing, or patron transaction data flows through MainTrac. |
Coupling Summary
The hard dependencies are Auth/Identity and the shared database schema. Both are workable: Auth is being addressed as a parallel Cohort 1 service, and the MT namespace isolation means schema extraction is a well-scoped effort. The medium dependencies (staff records, GL codes) can be handled via service references or by copying reference data at extraction time.
Decomposition Assessment
At the Vermont Systems Prod/Eng Decomposition Candidates meeting (May 2026), MainTrac was unanimously confirmed as a Cohort 1 candidate alongside the Identity & Authentication Service and the Reporting & BI Service. MainTrac was the first to be confirmed and serves as the proof-of-pattern extraction for the broader program.
| Assessment Dimension | Finding |
|---|---|
| Node type | Leaf node — no outbound engine dependencies to other RecTrac modules |
| Shared transaction tables | None — MT data is entirely self-contained in MT* tables |
| Auth/Identity dependency | Yes — universal RecTrac blocker. The Identity & Auth Service (Cohort 1 co-candidate) must be addressed first or in lockstep |
| Cross-brand opportunity | High — can be offered to NextRec and RecDesk customers as a standalone maintenance management product |
| AI / NLP potential | Work order management, inspection scheduling, and cost analysis are strong candidates for AI-assisted features (AI Transformation Team reviewing) |
| Consultant review | Confirmed for review with AI Transformation Team (Xplor + Malleable + Kosa) |
| Extraction risk | Low relative to other modules — no unified transaction coupling, well-scoped data model |
What "Standing It Alone" Requires
- Identity & Auth Service — Staff authentication and session management must be extracted or provided by a new service before MainTrac can operate independently.
- Standalone database schema — MT* tables isolated from the RecTrac
rectrac.dfschema into a dedicated Progress DB (or migrated to a cloud-native database as part of the replatform). - Reference data strategy — GL codes and staff records accessed via API calls to RecTrac or the new Identity service rather than direct DB joins.
- Standalone PASOE instance — Own application server with its own web-handler routing for MT screens/API.
- Standalone frontend shell — Vue.js app entry point, router, and state management independent of the RecTrac shell.
- REST API layer — Complete VSXORG-246 (Combination Log, Inspections, Work Orders endpoints) as a core deliverable of the standalone build — not an afterthought.
Known Gaps & Customer Pain Points
These gaps are sourced from customer touchpoints (City of Albuquerque, 2022), Jira issues, and internal product reviews. They represent both the current product debt and a prioritization input for the standalone roadmap.
| Area | Gap / Pain Point | Source | Severity |
|---|---|---|---|
| Mobile | No ability to filter the work order listing by assigned staff on Mobile MainTrac. "Allowed Staff" setting restricts list entirely but does not allow filter-within-list. | Albuquerque touchpoint | High |
| Mobile | Work order email links take users to the RecTrac login page on mobile, not the specific work order. Deep-link to WO detail after login is missing. | Albuquerque touchpoint | High |
| Logging UX | No wizard workflow for Combination Log entry. Complex multi-step process is intimidating for new users. Customers have explicitly requested a guided wizard. | Albuquerque touchpoint | Medium |
| API | No public REST API endpoints for MainTrac data. Planned (VSXORG-246: Combination Log, Inspections, Work Orders) but not yet delivered. | Jira VSXORG-246 | Medium |
| Documentation | Thin end-user documentation. Customers exhaust RecTrac Lab self-help options and contact support for basic questions. Module-by-module guides are needed. | Albuquerque touchpoint | Medium |
| Contract Processing | Contract Processing is a hybrid workflow via the Combination Log rather than a first-class program. The 10.2 standalone contract program was never fully ported to 3.1. | Product history | Medium |
| Reporting | Work Order Status column in the Inspection Results Report was showing blank (recently fixed in 3.1.11.x). Post-fix regression monitoring recommended. | RT31-14618530924 | Low (fixed) |
| Support Experience | Power users (City of Albuquerque) reported being referred to Sales for custom report quotes when they only needed help identifying which report type to start from. | Albuquerque touchpoint | Medium (process) |
Version & Migration History
| Milestone | Details |
|---|---|
| MainTrac 10.2 (standalone) | Original standalone Progress/OpenEdge application with its own database. Full-featured including standalone Contract Processing program and all reports. |
| Absorption into RecTrac 3.1 | MainTrac MT namespace tables merged into the shared RecTrac Progress database. Data migration via dump/import (process documented in Hosted Services Confluence space). |
| 3.1 Feature Gaps | Contract Processing (no longer standalone), Work Order Analysis Report, Project Results Report, and Facility Task Report all required re-implementation from 10.2 for 3.1 — some as hybrid/extended workflows. |
| NextGen UI (Vue.js) | New screens added as Vue.js/Vuetify components. Legacy jQuery screens remain in production for older MT workflows not yet ported. |
| Current (3.1.11.10.00 — May 2026) | Active development on maintrac branch. Recent fixes include Inspection Results Report WO status, work order title attribute, and file extractor tool corrections. |
| Cohort 1 Extraction (Future) | Confirmed May 2026 in Prod/Eng decomp meeting. Consultant review underway with AI Transformation Team. |