COB and production support

Why Batch Success Can Be Misleading in T24

A batch step can complete without proving that the right business outcome happened. The green status matters, but it is only the first layer of confidence, not a certificate from the universe.

One of the more dangerous assumptions in T24 operations is that a batch process was fine because it completed. Completion is important. A failed job is an obvious problem. But completion is not the same as correctness. This distinction becomes very clear at 2am, when a green status is sitting on the screen looking innocent and everyone else is looking at you.

A process can finish, write a clean-looking log, and still leave the team with uncertainty about the thing that actually matters: whether the right records were selected, processed, exported, posted, or handed off downstream.

The trap is simple. The visible success signal becomes too powerful. Once everyone sees that the step ended, the room relaxes. People stop asking whether the result is operationally correct. That is where misleading confidence begins. The green tick has done its little performance, and now everyone would quite like to go home.

Technical success vs business success

Technical success means the program ran to completion. It did not crash. It returned a successful status. The scheduler moved on. There may be no fatal error in the log. Technically true in the same way a lift has succeeded when it opens its doors on the wrong floor.

Business success means the process produced the outcome the bank expected. The correct input population was selected. The expected number of records was processed. Exceptions were handled. Output files, accounting entries, status updates, and interface handoffs match the operational reality.

These two things usually align. That is why the trap exists. But when they diverge, the technical success signal can hide the business failure until much later, when it has had time to become more expensive and develop confidence.

What misleading success looks like

Misleading success is rarely dramatic. It is usually quiet. The step completed, but something about the outcome is smaller, emptier, later, or stranger than expected. The system has not screamed. It has merely placed the wrong object neatly on the table.

  • An output file is created, but it only contains a header and footer.
  • A selection returns zero records when the business expected activity.
  • A process skips records because a date or status criterion was wrong.
  • An interface file is generated, but the downstream system never consumes it.
  • A posting step completes, but exception queues still contain items.
  • A control record moves forward while a dependent state remains behind.

None of these require the batch to fail loudly. That is the point. Runtime success tells you the process ended. It does not automatically tell you the result was useful. A process can be useless with excellent manners.

The empty output problem

The classic example is the batch export that completes and creates the file, but the file is effectively empty. A header is present. A footer is present. There are no detail lines. Structurally, it is a file. Spiritually, it is an apology.

From a runtime perspective, that can look clean. The program did what it was told. It selected records, found none, wrote the expected file structure, and exited. It has obeyed the letter of the law while quietly setting fire to the point of the exercise.

From a business perspective, the result may be wrong. If the day should have produced transactions, then an empty file is not a successful outcome. It is a signal that the selection criteria, source state, date handling, or upstream feed need investigation.

This is why support teams should treat output content as evidence, not just output existence. A file existing is a low bar. So is a chair existing. You still want to know whether it has legs.

What to verify after a batch step

The exact checks depend on the process, but the categories are consistent. You are trying to prove that the batch moved from input to outcome in a way that makes sense, rather than in a way that merely satisfied the scheduler and its modest ambitions.

CheckWhy it matters
Input countConfirms the expected population was available before processing.
Selected countShows whether the criteria picked up the right records.
Processed countConfirms the process did useful work, not just completed.
Rejected or exception countPrevents hidden failure from being treated as success.
Output file or queueProves the downstream handoff has content and the right shape.
Control or status recordConfirms the system state moved to the expected point.
Downstream acknowledgementShows that the next system or process actually received the work.

Why COB makes this worse

COB adds pressure because the process is not one isolated job. It is a chain of dependent stages. One step's output can become another step's input. One status can influence the next decision. One quiet mismatch can travel. COB is very good at forwarding problems with no covering note.

That means a technically successful step can still create risk for the next part of the run. If the previous step selected the wrong population, the next step may process that wrong population perfectly. The second success then reinforces the first mistake, which is how systems develop a sense of theatre.

Good COB support is therefore not only about watching for red statuses. It is about checking whether the run is moving through states that make sense.

The questions to ask

When a batch step completes and everyone wants to move on, ask a few simple questions before closing the investigation:

  1. What did we expect this step to produce?
  2. How many records did it select?
  3. How many records did it actually process?
  4. Were there rejects, warnings, unauthorised items, or repair items?
  5. Was the output file, queue, or handoff created with real content?
  6. Did the next downstream process receive or acknowledge it?
  7. Does the control state now match the business state?

These are not elaborate questions. They are the difference between checking that the engine stopped and checking that the journey ended in the right place. Both are useful. Only one tells you whether you are in the correct town.

Bad post-batch habits

Trusting only the final status

A completed status is useful, but it is not enough evidence when the process carries business meaning. The status knows how the program ended, not why the business is still annoyed.

Checking that a file exists

Existence is not content. A file can be present and still be empty, incomplete, duplicated, or late. Presence is not achievement. It is attendance.

Ignoring small count changes

A count that is lower than normal is often the first visible clue that a selection or upstream state has drifted. Small numbers are polite. They do not mean they are harmless.

A practical closeout check

Before saying "batch is fine", use this short sentence:

The step completed, the expected records were processed, the exceptions are understood, and the downstream state matches what we expected.

If you cannot honestly say that, you may still be safe. But you do not yet have enough evidence to treat completion as proof.

The best T24 support teams are not suspicious of every green status. They simply understand what a green status proves, and what it does not. This is not paranoia. It is experience with nicer stationery.