We Don't disrupt Our MultiValue System. We Let AI Read Its Reports.
A blueprint for leveraging local, air-gapped LLM agents to extract structured intelligence from enterprise batch reports — driving massive operational ROI while completely bypassing the risks of a system rewrite
The Modernization Dilemma: Data Abundance, Operational Latency
Our core database infrastructure has executed nightly batch jobs for years. These background phantom processes are stable, reliable, and deeply trusted, quietly routing operational reports into native output queues (PH and HOLD files) exactly as they always have.
Every morning, operations teams must manually sift through hundreds of pages of dense text spools to find critical exceptions, financial discrepancies, and supply chain risks. While the vital data is available, manually extracting actionable insights creates a costly bottleneck. This stretches decision latency, ties up premium management hours, and delays critical business responses.
Rather than replacing the core infrastructure, this architecture introduces a non-intrusive, decoupled AI consumption layer on top of trusted workflows.
The Solution: Read-Only AI Modernization
The new pipeline reads the same overnight reports, extracts structured facts, understands relationships across multiple reports, and delivers a clear, role-specific morning digest to managers, finance teams, warehouse staff, and executives. Existing BASIC programs, PROC jobs, and phantom schedules remain unchanged.
The batch jobs continue to run exactly as before. The only difference is what happens next.
From Raw Text to Intelligent Summary
Why This Matters
Most organizations already have valuable information hidden inside overnight reports. The challenge is not generating the data; it is getting the right information to the right people at the right time.
The AI digest provides:
- Faster visibility into operational issues
- Cross-report insights that traditional reports cannot easily reveal
- Decision-focused summaries tailored to different business roles
What the AI Layer Adds
Faster Visibility
A warehouse manager receives an early morning reorder summary containing exact product names, shortage volumes, and vendor details. The information already existed in the report; now it arrives earlier and in a more actionable format.
Cross-Report Insight
Traditional reports show one business view at a time. The AI digest can connect information across multiple reports.
For example, a product may appear in:
- A reorder report
- An overstock report
- An open orders report
Viewing these relationships together often reveals the real operational problem.
Decision-Oriented Summaries
Reports provide numbers.
The AI digest provides context.
Instead of presenting isolated figures, it highlights the business situation and identifies the actions that matter most today.
A Pattern That Works Across Industries
The same approach applies wherever MultiValue systems generate nightly operational reports.
| Industry | What runs in PH / HOLD every night | Who should receive the digest |
|---|---|---|
| Distribution & Wholesale | Inventory valuation, reorder alerts, AR aging, slow-movers, open orders | GM, warehouse manager, purchasing, sales manager |
| Healthcare | Patient billing, insurance AR, supply consumption, appointment fill rates, claims outstanding | Revenue cycle manager, CFO, operations director |
| Manufacturing | WIP status, material consumption, scrap rates, machine downtime, production variance | Plant manager, production scheduler, quality manager |
| Financial Services | Daily Finish Reports, Trial Balance report, Loan aging, collections pipeline, disbursements, compliance flags, portfolio health | Branch manager, collections manager, compliance officer |
| Retail & POS | Daily sales by category, stock movement, margin analysis, returns, shrinkage | Store manager, buyer, loss prevention |
| Property Management | Rent roll, lease expiry pipeline, maintenance work orders, vacancy rate, arrears | Property manager, asset manager, landlord reporting |
| Education ERP | Enrolment figures, fee collection, outstanding balances, attendance, timetable conflicts | Registrar, finance director, academic head |
| Government & Public Sector | Case volumes, processing backlogs, compliance deadlines, budget consumption | Department head, compliance officer, finance |
The reports already exist. The AI layer simply makes them more accessible and useful.
Example Workflow
Overnight Processing
- Existing phantom jobs generate reports.
- A scheduled extractor reads PH and HOLD records.
- Structured facts are extracted into JSON.
- An AI agent generates role-specific summaries.
- Personalized digests are delivered automatically by email.
No changes are required to existing MultiValue business logic.
What the digest looks like
Using our working example — a produce distribution company running a MultiValue server — here is what currently lives in PH (phantom jobs) and HOLD (spooled reports) every morning:
INVENTORY REORDER REPORT Date: 06-07-2026 Time: 04:48pm
============================================================================================
Product Name OnHand Min Short ToOrder Est. Value
--------------------------------------------------------------------------------------------
5972 Red Tomatoes 8999 10001 1002 2002 $43,803.76
4309 Butter Beans 15 1001 986 1086 $76,128.60
1055 Pears 45 180 135 153 $13,376.79
1701 Piñon Nuts 50 150 100 115 $3,297.05
--------------------------------------------------------------------------------------------
Products needing reorder : 8
Estimated reorder value : $143,273.02
SLOW-MOVING / OVERSTOCK REPORT Run: 06-07-2026 04:48pm
================================================================================
Rank Product Name OnHand SoldYr Excess Excess Val
--------------------------------------------------------------------------------
1 4303 Black Beans 10620 165 10455 $1,132,590.15
2 4054 Jalapeños 8987 217 8770 $1,131,330.00
3 9663 Chinese Cabbage 9395 224 9171 $910,221.75
4 9632 Mandarin Oranges 10729 140 10589 $899,006.10
...154 more lines...
TOTAL (158 overstocked) $37,044,938.10
ACCOUNTS RECEIVABLE REPORT Run: 06-07-2026 04:48pm
====================================================================================================
CustID Customer Name Orders Ship Balance Order Balance Credit Limit Status
----------------------------------------------------------------------------------------------------
7777 Betterway Store 3 $9,598.69 $9,847.69 $20,000.00 OK
9999 Utotem Convenience 6 $21,336.36 $22,751.36 $32,000.00 OK
6873 Ko-Z Korner Store 6 $17,512.10 $18,468.26 $28,000.00 OK
This is what the AI digest turns that data into, delivered to each audience at every morning.
Sample AI-generated digest report
Implementation Architecture: Tested on Rocket U2 (UniData and UniVerse) environments utilizing a local, on-premises LLM agent pipeline.
The diagram below shows the complete pipeline from overnight batch run to morning email delivery. The key boundary to notice is the one in the middle: raw PH and HOLD text stays entirely on the server side.Only a few tokens of highly compressed, structured JSON cross the network to the localized LLM environment.
Component 1 — JSON extraction schema
Every PH and HOLD report gets one schema entry. A single generic parser handles all of them. Adding a new report means adding one entry — no code changes to anything else.
# schema_registry.py — the only file that changes between domains
SCHEMAS = {
"INV_REORDER": {
"entity_fields": {
"PRODUCT": ["product_id", "name"],
"QUANTITY": ["on_hand", "shortage", "to_order"],
"MONEY": ["est_value"],
},
"row_pattern": r'^(?P<product_id>\d{4})\s+(?P<name>[\w\s]+?)\s{2,}...',
"alerts": [
{"field": "shortage", "op": ">", "value": 100, "severity": "HIGH"},
{"field": "on_hand", "op": "=", "value": 0, "severity": "CRITICAL"},
],
},
# SLOW_MOVING, RECEIVABLES, MONTHLY_SALES follow the same pattern
}
Component 2 — Nightly extractor
The extractor executes overnight via a cron schedule or triggers directly from a MultiValue BASIC routine upon batch completion:
! From our existing batch program — fires after reports complete
EXECUTE "python3 /opt/digest/nightly_extractor.py"
The script interfaces directly via native Python integration (such as u2py), pulling active PH and HOLD queue records. It executes schema-driven regex extraction, tags business entities with spaCy, and maps cross-document relationships using a NetworkX entity graph.
The output is consolidated into a single, immutable JSON audit file. Because every data point narrated by the LLM later maps cleanly to this JSON file, the system maintains a perfect trail of data lineage.
Component 3 — REST API
Create a REST FastAPI server. Returns the pre-computed JSON for any date. Zero computation at request time — pure file read, under 50ms.
@router.get("/digest/{run_date}")
def get_digest(run_date: str, token=Depends(verify_jwt)):
path = OUTPUT_DIR / f"digest_{run_date.replace('-','')}.json"
if not path.exists():
raise HTTPException(404, "No digest for this date — extractor runs at 03:00")
return json.loads(path.read_text())
Component 4 — Extracted JSON
What crosses the network. Real output from the produce distribution example.
{
"facts": {
"reorder": { "count": 8, "total_value": 143273.02,
"items": [{"name":"Butter Beans","shortage":986,"est_value":76128.60}] },
"overstock": { "count": 158, "total_excess": 37044938.10 },
"receivables":{ "customers": 106, "total_balance": 1368842.78, "over_limit": [] }
},
"alerts": [
{"severity":"CRITICAL","message":"Cherimoya ZERO STOCK — SKU 1307"},
{"severity":"HIGH", "message":"Butter Beans critically short — 986 units"}
],
"entity_graph": {
"nodes": 1705, "cross_report_edges": 674,
"customers_in_multiple_reports": {
"Betterway Store": ["OPEN_ORDERS","RECEIVABLES"]
}
}
}
Fits local LLM model, no cloud required.
Component 5 — Autonomous AI agent
Operating every business morning, the orchestration agent fetches the pre-processed JSON data, filters priority exceptions based on target audiences, maps contextually relevant insights, and renders HTML briefings via automated email distribution.
AUDIENCES = {
"executive": {"recipients":["gm@co.com"], "lens":"Revenue impact and top 3 actions only."},
"operations": {"recipients":["warehouse@co.com"], "lens":"Every alert. Full product names and quantities."},
"finance": {"recipients":["finance@co.com"], "lens":"AR balances and credit utilisation only."},
}
for audience, cfg in AUDIENCES.items():
narrative = ollama.chat(
model="llama3",
messages=[
{"role":"system","content":"Use ONLY the provided numbers. End with 3 PRIORITY ACTIONS."},
{"role":"user", "content": f"{cfg['lens']}\n\n{json.dumps(facts)}"},
],
options={"temperature": 0.2}
)
send_email(render_html(narrative, facts, alerts), cfg["recipients"])
The agent autonomously decides which severity level each audience receives, whether to skip an audience if no relevant alerts exist, and what tone to use. The GM gets three bullets. The warehouse manager gets every product line. Finance gets AR only.
.
Benefits
| Before | After |
|---|---|
| Reports read by a few specialists | Information reaches decision makers |
| Siloed reports | Cross-report intelligence |
| Manual briefings | Automated morning digests |
| Limited visibility | Role-specific insights |
| Reactive decisions | Earlier action |
Beyond Daily Morning Briefings
While AI-generated morning briefings provide a quick summary of overnight batch processing results, the same architecture can evolve into a more intelligent operational assistant for MultiValue environments.
Because the AI agent receives structured JSON data extracted from existing PH and HOLD files, it can perform tasks beyond simple summarization.
Trend Analysis
The AI agent can compare current results with historical data and identify emerging trends.
Examples:
Inventory shortages increasing week-over-week
Growing accounts receivable balances
Rising transaction volumes
Recurring operational bottlenecks
Rather than reporting numbers, the AI can explain what is changing and why it matters.
Predictive Insights
By analyzing historical patterns, the AI agent can provide early warnings before issues become critical.
Examples:
Products likely to go out of stock within the next few days
Customers approaching credit limits
Growing payment exception trends
Potential workload spikes for support teams
This shifts operations from reactive monitoring to proactive management.
Data Quality Validation
The AI agent can act as an additional validation layer by checking report consistency and identifying anomalies such as:
Missing data
Unexpected value changes
Report format variations
Totals that do not reconcile
This helps improve confidence in nightly processing results.
Intelligent Recommendations
Instead of only describing issues, the AI agent can suggest possible actions.
For example:
Reorder inventory from preferred suppliers
Escalate high-risk accounts
Prioritize critical exceptions
Create operational follow-up tasks
This transforms reports into actionable business intelligence.
Conversational Operations Assistant
Future implementations could allow users to interact directly with the summarized data.
Examples:
Why did shortages increase today?
Which customers contributed most to overdue balances?
Show me the top five operational risks from last night's processing.
What This Changes
This approach modernizes a MultiValue environment without disrupting the systems that already work.
The batch jobs remain untouched.
The reports remain intact.
The operational knowledge built over years remains valuable.
What changes is accessibility: the right people receive the right information, in the right format, at the right time.
That is modernization without a rewrite.
Final Thoughts
Many MultiValue environments already possess the data needed to drive better decisions. The opportunity is not to replace existing systems, but to make their output more accessible and actionable.
By combining structured extraction, lightweight APIs, and local AI models, organizations can transform overnight reports into business-ready morning briefings without changing the applications that already work.
Modernization does not always require replacement.
Sometimes it simply means making existing information easier to use.



Top comments (0)