RPG Metrics Features

Analyse RPG source locally, understand where complexity and maintenance risk really sit, and optionally send calculated metrics to the RPG Metrics dashboard.

Your source code stays in your environment. RPG Metrics can analyse source directly on IBM i or from RPG source files exported or copied to a local PC/server. Only calculated metrics need to be sent to the dashboard.

IBM i Agent

Run RPG Metrics directly on IBM i and analyse source close to where it already lives.

  • Scan RPG source locally on IBM i
  • Generate XLSX reports locally
  • Integrate with existing IBM i development workflows
  • Use PDM or change-control processes to trigger scans
  • Optionally sync calculated metrics to the dashboard
PC / Server Scanner

The RPG Metrics Agent can also run on a Windows, Linux or macOS PC/server against RPG source files that have already been exported or copied from IBM i.

  • Run analysis outside IBM i where that better fits your environment
  • Use the same RPG Metrics analysis engine
  • Generate reports locally on the PC/server
  • Keep source code inside your own environment
  • Optionally sync calculated metrics to the dashboard

Cyclomatic Complexity

Measure the number of decision paths through RPG code to identify programs that may be harder to understand, test or change safely.

Maintainability Index

Use a consistent maintainability measure based on code size, complexity and commenting.

Comment and Line Analysis

Track total, blank, comment and executable lines to provide context around the overall program metrics.

Overall complexity only tells part of the story. RPG Metrics can break complexity down by procedure and subroutine so you can see where the real maintenance risk is concentrated.

  • Procedure-level complexity
  • Subroutine-level complexity
  • Source line location
  • Ranked hotspot reporting
Instead of treating a large program as one problem, hotspot analysis helps identify the specific routines that deserve attention first.

Nesting Analysis shows how deeply conditional and iterative logic is structured inside RPG procedures and subroutines.

This complements Cyclomatic Complexity by showing not only how many decision paths exist, but how deeply those decisions are nested.

  • Maximum nesting depth by procedure and subroutine
  • Routine start line
  • Source line where maximum nesting occurs
  • Severity classification for deeper nesting
  • Nesting markers in the Source Analysis worksheet
Deep nesting can make otherwise manageable routines harder to understand, test and safely modify. Nesting Analysis helps identify those areas quickly.

Identify legacy RPG operations that may require attention when planning free-format conversion or wider modernisation work.

  • Count incompatible operations
  • Calculate incompatible percentage of executable code
  • Show affected source lines in the XLSX report
  • Use configurable compatibility rules on paid plans

Generate detailed Excel reports locally for each scanned source member.

Depending on your plan, reports can include:

  • Summary metrics
  • Source-line analysis
  • Cyclomatic Complexity hotspots
  • Nesting Analysis
  • RPG Free compatibility findings

Procedure and subroutine start and end lines are highlighted in the Source Analysis worksheet, and analysis worksheets can link directly to the corresponding routine in the source listing.

Adapt RPG Metrics to reflect your own development standards.

  • Custom cyclomatic complexity decision keywords
  • Custom executable keywords
  • Custom RPG Free compatibility rules

When dashboard sync is enabled, RPG Metrics stores calculated metrics so you can review code quality over time.

  • Program-level metrics
  • Historical results
  • Trend analysis
  • Library and source reporting
Source code is not uploaded by the Agent or PC/server scanner. Only calculated metrics are sent to the dashboard.

Pro users can organise RPG Metrics around shared application teams.

  • Team dashboard views
  • Team-prefixed scans
  • Shared team scan rules
  • Team, library and source reporting