Our approach

Making the complex simple

Mapador parses your production code bases to show how data and code flow across your applications, at a fraction of the cost of doing it by hand. This page explains how we do it, why our results hold up where general-purpose parsers fail, and what you get at the end.

How we build a lineage

From production code to a connected map

Every engagement follows the same path. Each step exists because real code bases, especially legacy ones, hide connections that a single generic parser can’t see.

  1. 01

    Ingest the production environment

    We work from what actually runs: source code, scripts, schedulers and every run-time parameter. Not documentation, not interviews.

  2. 02

    Unpack, convert and recognize

    Client code is unpacked, converted to a workable form and sorted by file type, so each artifact goes to the right parser.

  3. 03

    Thin parse and compare

    A fast first pass with search patterns finds the structure, and results are compared to catch anything the file-type step missed.

  4. 04

    Grammar-specific parsing

    Custom, fit-for-purpose parsers for each language (JCL, Metasuite, shell and others) break source code into usable components and relationships.

  5. 05

    Instantiate, emulate and resolve

    Embedded SQL is parsed in context (JCL SQL, Control-M SQL, shell SQL). We emulate code to fill gaps in the lineage and resolve every parameter to a real name.

  6. 06

    Map into one repository

    Everything is connected in a single repository, whatever technology it came from.

  7. 07

    Refine and export

    Raw technical lineage is never enough on its own. Customizable processes turn it into something more useful, delivered as PDF reports, JSON exports and the Mapador interface, with exports tailored for loading into your AI models, catalogue or MDM system.

Build · measure · learn

Accuracy comes from iteration. We validate results against the running system, measure gaps, and refine parsers until the lineage holds.

Levels of results

Four levels built on one repository

Results are layered. Each level is built from the one below it, so you can work at the level of detail your audience needs, from an application overview to a single column.

L4Business & regulatory lineage

Built with selected clients on top of Level 3: a regulator-ready lineage in business language, connected to lineages from other areas.

L3Field-column lineage

Granular data flow at the field and column level, showing transformations between source and target and full paths from target back to source, or forward if required.

L2File-table lineage

Relationships between files and tables across the whole application. Each data movement is tagged with a table-file lineage instance showing how scheduled jobs, tables and files interact.

L1Application relationships

Application, job and script connections, call trees and control flows for schedulers and programs. These results feed Levels 2 and 3.

BaseFoundational repository

Every artifact collected and categorized: source code, scripts, parameters and scheduler information. The base of all metadata tagging.

Aggressive summarization

Level 4 reduces the technical lineage to only the nodes that matter to the business and the regulator.

Connectors to other lineages

Our lineage links to lineages created in other areas of the organization, so the picture is end to end.

Business language

Technical program code is translated automatically into business terms and tied to corporate data dictionaries.

Lineage stitching

Connecting to lineage from other tools

Most organizations already capture parts of their lineage in ETL, catalogue and BI tools. Our connectors stitch those fragments to ours into one end-to-end view, using business standards set at each integration point, customized first and then automated.

How we approach lineage stitching

Why we’re different

Real code is never as simple as it looks

General-purpose parsers read code line by line. Production systems don’t work that way. These are the patterns that break ordinary lineage, and that our approach is built to handle.

Hidden depth

Scripts calling scripts calling scripts

A scheduler runs a script that calls another script, and so on, seven levels deep. Each one picks up information, may change it, and passes it on to one or more targets. Scripts may run CRUD operations on the same sources or share libraries, which hides the connections. All of these pieces have to be brought back together.

Code convergence

Many in, one through, many out

Multiple fields end up in a single buffer. Multiple columns collapse into one column of a fact table. Twenty files load into one table, which is then split back out into twenty output files. Without emulation the individual paths disappear. This matters most in systems that rely heavily on fact tables.

Iteration and validation

The table rename that ordinary parsing misses

What the code seems to say

  • Warehouse
  • ↓
  • Loaded table
  • ↓
  • Production table
  • ↓
  • Production backup

What actually happens

  1. New data is loaded into a “load” table.
  2. The production table is renamed to “backup”.
  3. The load table is renamed to “production”.

Standard SQL parsing doesn’t follow the renames, and the lineage breaks. In one analysis, following them correctly changed the picture completely:

Standard SQL parsing6points of connection found
Following the renamesHundredspoints of connection found
Parameter resolution

Every run is named in full

We resolve parameters until each table-file run instance has a fully qualified name. One name records where the data movement belongs, what ran it, how often and which program did the work.

bankProjectCTRL-MScheduler typeFINW#D210.FINW_D0831.2.4417Scheduler / job nameDAILY_RISKFrequency & business unitFIN08U02.FIN08P02Calling script & executed program

Illustrative example. Real names come from your own scheduler and code.

Capabilities

Metadata tagging is the foundation

We tag metadata across the whole of an application’s proprietary code. That tagging is what lets us produce lineage for regulatory, modernization and analytics work from the same base.

Parsing & extraction

  • Proprietary, fit-for-purpose parsers for each language
  • New parsers built whenever a client’s code needs one
  • Parameters resolved, flows instantiated and emulated where needed
  • Specialists in legacy code such as COBOL, PL/I, JCL and Fortran, as well as modern languages

Attributes captured

  • Field and column types
  • Application codes
  • Indexes and synonyms
  • Specifications and more, wherever available and relevant

Classification

  • Metadata classified using multiple standard classes
  • Classes customized for each client
  • PII and critical data elements traced for compliance
  • Golden sources identified for analytics

Granularity

  • Application level
  • File and table level
  • Field and column level
  • Summarized or fully detailed, depending on the audience

Technical & business metadata

  • Full technical metadata generated from code
  • Business metadata created from the technical metadata
  • Existing business glossaries ingested and used
  • Translation into business language for regulators

Outputs & integration

  • Data lineage, process flows and call trees
  • Inheritance hierarchies, data access rules and CRUD
  • PDF reports, JSON exports and the Mapador interface
  • Exports built to each client’s requirements, loadable by other applications such as Collibra
What clients use it for

One base, many uses

Because everything sits in one repository, the same work serves developers, the business and regulators.

Onboard & train

New and existing staff get productive quickly, even on legacy code.

Understand complex systems

Developers see the nuances of systems no one person fully knows any more.

Speed up development

See how a code change affects everything downstream before it’s committed, and cut rework.

Map data flows

See how data moves and which applications transform it along the way.

Satisfy regulators

Accurate lineage for BCBS 239 and similar frameworks, supporting governance frameworks and controls.

Feed analytics & AI

Our repository is the base data behind intelligent, business-focused knowledge graph and AI platforms.

Next step

See it on your own code

The best way to judge our approach is on a sample of your systems. Tell us what you’re working with and we’ll show you what we find.