How Sprinterra Is Evolving Its Modern UI Conversion Estimation Algorithm

Acumatica Modern UI

In our previous article, we introduced how Sprinterra assesses the complexity of migrating Acumatica Classic UI screens to the Modern UI. Today, we are excited to share how we are enhancing this estimation framework, what principles guide our roadmap, and how our system continues to learn and adapt based on real-world conversions.

A Dynamic, Rule-Based Framework That Keeps Getting Smarter

At the core of our approach is a rule-driven evaluation engine designed to measure complexity on a per-screen basis. Each rule focuses on a specific UI element, pattern, or structure. These rules act as modular building blocks – for example, analyzing selectors, buttons, data grids, or custom controls.

Why This Matters:

Using rules rather than hardcoded logic means our engine can evolve as we learn from more migration projects. Complexity scoring is not static; it improves over time.

Here’s how the system works:

  • The engine parses each page into a structured tree of controls.

  • Each top-level control is placed into a queue and scanned by all relevant rules.

  • Every rule returns a ValidationResult, representing its estimated conversion effort.

  • Scores are defined in an external configuration file, allowing rapid tuning without code changes.

Initially, some page elements will not have specialized rules. In these cases, the engine applies a fallback basic rule – counting tags, lines, or generic indicators – to provide a preliminary estimate. These items are flagged for manual developer review, and if patterns emerge, we add new rules to cover those cases going forward.

This feedback loop ensures that with each project, the engine becomes more accurate, more predictive, and more aligned with real-world effort.

Acumatica modern UI

Handling Advanced and Edge Cases

Some UI elements require deeper analysis or special treatment. Our algorithm is evolving to handle these scenarios more intelligently.

Smart Panels

Smart Panels behave like micro-screens within the larger page. Our approach is to treat them with the same sophistication as full screens – running them through a full set of rules to estimate their individual complexity.

JavaScript

Because JavaScript can vary wildly, the system cannot fully automate complexity grading.

However, we can:

  • measure script size,

  • analyze abstract syntax trees,

  • count functions, and

  • flag patterns for manual review.

Over time, commonly recurring script structures may get their own dedicated rules.

Custom CSS

CSS rules affect layout and appearance rather than business logic. We calculate weights based on:

  • number of CSS rules,

  • selectors used, and

  • historical complexity data from past migrations.

Code Behind Files

In many cases, these files contain standard auto-generated code produced by the Acumatica Framework. Typically, they include only the required boilerplate with no additional custom logic.

If deviations are detected, the engine marks the file for manual review; if not, it receives a zero complexity score.

Future sub-rules will target recurring code-behind customization patterns.

Include Files (.inc)

Every include file is evaluated as its own page entity.

The engine:

  • identifies all referenced includes,

  • flags unused ones,

  • and adds their complexity scores to the overall customization total.

This insight alone can help reduce clutter in long-standing customizations.

computer IT

Rule Architecture Designed for Rapid Expansion

One of the strengths of our system is its plug-and-play rule architecture.

  • Each rule is self-contained and can be enabled, disabled, or replaced at any time.

  • The configuration file controls which rules are active, how they’re ordered, and how they’re weighted.

  • No application rebuild is required to adjust scoring or rules.

This allows us to iterate quickly based on:

  • new screen patterns,

  • partner feedback,

  • Acumatica platform updates, and

  • insights from completed migrations.

Next Step in Evolution: Property-Based Tag Evaluation

Once the foundational framework is fully established, we will begin implementing property-level evaluation, moving from a purely structural to a more semantic understanding of each screen.

For example:

  • A <px:PXSelector> has a set of expected properties.

  • Any unexpected or unusual property triggers an increased complexity score.

This “white-box” approach ensures deeper, more accurate evaluation of UI logic – not just UI structure.

We also plan to incorporate a “black-box” perspective by identifying known problematic patterns, such as PXButton tags with conflicting property combinations.

Future Vision: AI-Assisted Rule Evaluation

We see significant potential in integrating AI agents into the evaluation workflow.

Each rule could expose a Markdown prompt explaining:

  • what it checks,

  • why it matters,

  • and how scoring works.

This would enable:

  • AI-generated second opinions,

  • automatic identification of edge cases,

  • intelligent suggestions for new rules, and

  • built-in rule documentation for developers.

AI assistance would not replace the rule engine – but it could greatly enhance consistency, speed, and insight when handling complex or unusual screens.

Building a Living, Learning Estimation System

What we’re building is not a static tool – it’s a living framework that evolves with each conversion project. The more we migrate, the more accurate our predictions become. The more patterns we identify, the more rules we add. And as Acumatica advances its Modern UI, our system grows alongside it.

Sprinterra’s long-term goal is to provide:

  • highly accurate effort predictions,

  • automated reports that highlight risky areas, and

  • a constantly improving knowledge base of migration patterns.

This is how we help partners estimate migrations with greater confidence – and deliver modernization projects faster and smarter.

Subscribe To Our Newsletter

Get the latest insights on exponential technologies delivered straight to you

Frequently Asked Questions

What is Sprinterra’s Modern UI conversion estimation algorithm?

It’s a rule-based engine that analyzes each Classic UI screen and scores the effort required to convert it to Acumatica’s Modern UI. The system evaluates UI elements, patterns, and structures, using modular rules that evolve as Sprinterra completes more migration projects.

How are advanced elements like JavaScript and CSS handled?

JavaScript is assessed by analyzing script size, functions, and syntax patterns. CSS complexity is based on rule counts, selectors, and historical effort data. Both can trigger manual review when custom or unusual structures appear.

Why do Smart Panels require additional evaluation?

Smart Panels behave like smaller screens embedded in a page. Because they contain their own controls and logic, Sprinterra evaluates them independently using the full set of rules to ensure accurate scoring.

How does this evolving system help partners?

As the engine learns from real projects, predictions become more reliable. This gives partners clearer estimates, earlier risk visibility, and faster, more confident planning for Modern UI migrations.

How does the system treat include files and code-behind files?

Include files are analyzed as separate entities, and their scores are added to the overall total. Code-behind files typically contain autogenerated Acumatica code; if no custom logic is found, they receive a zero score, with exceptions flagged for manual review.