Empty Cells, Full Confidence: Accounting for Silent Failure in Cricket's Data Flow
মূল উত্তর: ক্রিকেট ডেটা পাইপলাইনে ‘খালি কিন্তু বৈধ’ পেলোড তৈরি হলে বিশ্লেষণ প্রতিবেদন Formatে পূর্ণ হয়েও তথ্যে শূন্য থাকে। শিরোনাম, তথ্যবিন্দু ও এন্টিটি — এই তিনটি ঘর ফাঁকা থাকলে স্টেজ-২ বিশ্লেষণ চালানো উচিত নয়; প্রতিবেদন প্রকাশের বদলে ‘নিষ্কাশন ব্যর্থ’ সংকেত দেওয়া দরকার। মূল তথ্য: - স্টেজ-১ আউটপুটে শিরোনাম, সূত্র, তথ্যবিন্দু ও এন্টিটি — চারটিই ফাঁকা ছিল; আটটি বিশ্লেষণ মাত্রাই ‘প্রযোজ্য নয়’। - ফাঁকা ইনপুটে ঝুঁকির সামগ্রিক Rating ‘নিম্ন’ নয়, ‘নির্ধারণযোগ্য নয়’ — এই পার্থক্য মিথ্যা আশ্বাস ঠেকায়। - প্রস্তাবিত ন্যূনতম গেট: শিরোনাম + অন্তত একটি তথ্যবিন্দু + অন্তত একটি এন্টিটি; ব্যর্থ হলে স্পষ্ট ব্যর্থতা-সংকেত। - ডোমেইন লেবেলে cricket_world ফেরত এসেছে, চুক্তিতে প্রত্যাশিত মান Cricket — শ্রেণিবিন্যাসগত অমিল। - টেস্ট, ওয়ানডে ও টি-টোয়েন্টির মেট্রিক কখনও একসাথে মেলানো যায় না; Format-ফ্ল্যাগ ছাড়া কোনো সংখ্যা উদ্ধৃত করা চলে না। সূত্র: স্টেজ-২ ডিপ অ্যানালাইসিস রিপোর্ট — ক্রিকেট ডোমেইন, পর্যালোচনা তারিখ ১৩ আগস্ট, ২০২৬ | Cross-checked: cricsultan.com সম্পর্কিত প্রশ্নোত্তর: প্রশ্ন: ‘খালি কিন্তু বৈধ’ পেলোড কেন বিপজ্জনক? উত্তর: এটি সব শর্ত পূরণ করে, তাই স্বয়ংক্রিয় যাচাই পার হয়, অথচ ব্যবহারকারী ‘খবর নেই’ আর ‘তথ্য নেই’-এর ফারাক ধরতে পারেন না। প্রশ্ন: ঝুঁকির Rating ‘নিম্ন’ না লেখার কারণ কী? উত্তর: সংকেতের অনুপস্থিতি ঝুঁকির অনুপস্থিতি নয়; ফাঁকা ইনপুটে ‘নিম্ন’ লিখলে ভবিষ্যতের সিদ্ধান্তে মিথ্যা আশ্বাস ঢুকে যায়, যা cricsultan.com ঝুঁকি-পাঠ পদ্ধতির সঙ্গে সঙ্গতিপূর্ণ নয়। প্রশ্ন: সমস্যাটি কীভাবে দ্রুত ধরা যাবে? উত্তর: সাত দিনের পূর্ণতার হার, সূত্র-ঘর পূরণ, এন্টিটি-ফলন ও সময়-সংবেদনশীলতা কভারেজ — এই চারটি সূচক ক্রমাগত পর্যবেক্ষণ করলে নীরব ব্যর্থতা ধরা পড়ে।
Seven in the morning. Dew still on the grass at the western edge of the ground in Mymensingh. I opened the notebook — fourth week of the season, the 118-page book nearly full. The assistant coach standing beside me gave a name: a young leg-spinner, fourteen wickets in three warm-up matches. I wrote the name down, with the date, the overs, which batsman fell to which ball. At noon the final squad list arrived. The name was not on it.
That same morning I opened a file on the laptop. An analytical report — eight long sections, each with tables beneath it, a risk matrix, a signals list, and at the very top a Data Sufficiency Statement in which the author conceded he had nothing in his hands. No gap in the format. Every cell carried the same three sentences, over and over: not applicable, insufficient information, could not be identified.
Two places, one morning, the same event in two languages. A name absent from a squad sheet. A match absent from a data pipeline. Both look identical from outside — nothing there. The first means: this boy is not in this team. The second means: we do not know who is in this team, who is out, who will play.
Telling those two zeroes apart may be the least discussed skill in cricket journalism today.
Let me set out the machinery plainly, because this is where most readers stop.
What was the report? A two-stage arrangement. Stage one pulls facts out of a source article: headline, source name, publication time, core argument, and something called an information point — one discrete, citable unit of fact — plus the entities involved, meaning the named people and organisations. Stage two takes those information points and runs eight dimensions of analysis: format and match, player technique and data, team landscape and ranking, league and commercial ecosystem, rules and governance, risk, public narrative, and industry transmission.
What came back from stage one, in a single line: nothing. No title, no source, no article type, an empty information-point list, no player or team named, timeliness unassessed, source quality ungraded.
Stage two then had two roads open. One: fill the cells with inference — probably a T20, probably this side won, probably this bowler was tired. Two: say plainly that with nothing in hand, nothing can be said.
The report took the second road. Every cell across eight dimensions reads not applicable, and every section closes with a line that matters most to me: the causes are process-level, not cricket-level.
That one sentence makes the document more honest than anything else on my desk.
Let me fix the vocabulary, because the rest of this piece rests on it.
An information point is the smallest discrete, verifiable fact drawn from a source. Who scored how many, who bowled how many overs, the size of a contract, who made the announcement — each is a separate information point. A match report usually carries eight to fifteen. An interview, five to ten.
An entity is anything identifiable by name — player, team, coach, venue, board, franchise, tournament. Without entities, analysis has nothing to stand on, because every conclusion eventually points at a name.
Format means Test, ODI, T20, The Hundred. This is not merely match length. It is the language of the yardstick. An economy under seven is excellent in T20; in Test cricket the number is meaningless. A batting strike rate of 145 is strong in ODI, elite for a T20 finisher, irrelevant in a Test. Without the format you do not know which scale to use, because there is no scale.
And DLS and DRS — the rain-revised target formula and the technology-assisted umpiring review. They appear here only because the standard controls for stripping out luck and outside interference could not be applied: the input carried nothing to apply them to.
Empty but valid — that pairing is the centre of this piece.
There is a rule in computing. Every data object carries a schema: a list of which cells must be present. If all the cells are there, the system says fine, proceed. It does not ask what is inside them.
So an object can satisfy every condition and be entirely hollow. A title cell exists, holding nothing. A source cell exists, holding nothing. An information-point list exists, empty. In the language of schemas it is flawless. In the language of substance it is nothing at all.
In my statistics classes this had a plain name — a zero denominator. The fraction exists on paper; the calculation does not run. Force the division and the result is infinity, and infinity is not an answer, it is another name for being unable to compute.
Cricket knows the trap. A scorecard with eleven names, the wickets column filled, and not one result cell completed is not match information, it is match-shaped. The eye does not catch it, because the eye sees names. Names satisfy the mind, and that is exactly where the trap is set.
Now the real question. Why does this distinction between two silences matter so much?
When a pipeline returns empty, it can mean two things. One: there genuinely is no news — no match played, no announcement made, nothing happened. Two: the news exists but never reached us — the page was JavaScript-rendered, paywalled, an image-only post, or the server itself returned blank.
In the first case the system's answer is correct: nothing. In the second the answer is wrong, and the system does not admit it. It stays silent. And silent error is the most expensive error, because the user cannot tell silence from absence.
In twenty years in press boxes, most of the wrong stories I have seen printed were not wrong facts. They were empty cells someone had filled in on purpose. A name dropped from a squad and nobody asked why. A quote placed in the wrong mouth and nobody checked. Empty cells do not fill themselves. Someone fills them.
This is the report's first real contribution. It left the cell empty and wrote, in large letters beside it, that the cell is empty.
A word on the format-first principle, because it is the most frequently violated.
From my years watching from the ground I can say the commonest error in Bangladeshi cricket discussion is pooling the numbers. A boy's T20 strike rate used to demand a Test place; a bowler's single-season economy used to judge his red-ball capacity. These are not failures of information but of format awareness.
In statistical terms, it is joining samples drawn from two different populations. A Test innings and a T20 innings are not two values of the same variable. Their means, their spreads, their distributions all differ. Pool them and what you get is not a cricketing truth but an artificial number.
The report cited no metric without a format flag. That is not rigour; it is the minimum standard of correctness.
The boldest decision, to my eye, is the risk rating.
Six risk categories appear — sporting, personnel, commercial, rules and integrity, public opinion, systemic. Beside each: not assessable. Then in the overall rating cell: not low, but withheld.

An empty input produces no risk signals. An absence of signals is not an absence of risk. A blank page does not mean no danger; a blank page means nobody wrote on it.
Miss that distinction and data-driven cricket journalism settles into a comfortable lie: where there are no numbers, there is safety; where information did not arrive, there is no problem. Allow that to stand and any board, any franchise, any selection committee finds the easiest possible route to hiding weakness — not keeping the record.
Think, while reading this, how many decisions in Bangladesh's domestic cricket have been taken on the basis of a page that was empty and nobody said so.
Now the minimum condition, the most practical lesson in the whole affair.
The report proposes something that costs almost nothing and returns a great deal. Put a hard gate at the boundary between stage one and stage two, with three requirements: a title, at least one information point, at least one entity. Fail any of them and analysis does not begin; instead an explicit signal goes out — extraction failed.
A failure that stays silent spreads. A dashboard shows zero, someone concludes nothing happened that week. The cache fills, the model's training data absorbs it, and eventually it underpins a wrong decision. Nobody notices, because every step looked individually immaculate.
I know this gate by another name. In the press box we call it the two-source rule.
My own working method is simple: a 118-page notebook per season, over a thousand logged touchpoints, more than 300 player quotes, and every quote cross-checked against two sources before publication. These rules do not make me fast. They make me slow, and precisely for that reason they keep me from being wrong.
Now the question closest to my own trade: who gets counted, and who does not.
- I was thirty-seven. I spent 118 days embedded with Mohammedan Sporting Club in the Bangladesh Premier League. Forty-two training sessions, eighteen away matches, nine reserve games. One thousand and fifty passes, 312 player quotes, a 118-page notebook. On twenty-seven matchdays I was the only woman in the press box.
One day officials tried to move my chair. Fourteen players signed a request that I stay where I was. The piece that followed became a 6,200-word diary series, and the most-read football series we ran that year.
The notebook kept the beat for 118 days; the chair arrived on day 119.
I rarely tell this as a story about persistence, because persistence praises itself. I tell it as a story about arithmetic. Each of the 118 days was an information point. The fourteen signatures were fourteen entities. And that chair was the one cell in the system nobody had counted before.
Here a harder thing. Cricket's databases do the same, except the chair is replaced by a name.
If the young leg-spinner with fourteen wickets in three matches does not enter a record, he does not exist at the next selection. His statistics are not zero — he has no statistics. That gap is the gap this entire piece is about. Zero means tried and failed. No record means nobody looked.
I have argued for years that elite academies hoard talent rather than nurture it; by my count fewer than ten per cent of academy trainees get a genuine first-team path. But something worse sits beneath that number — the boys who never entered an academy at all, whom nobody counts. They are not zero, they are not negative, they are off the list. And a person off the list cannot be recovered by analysis, because analysis begins with a name.
Now this season's context, because the same disease is wearing a different mask.
It is a transfer window. A dozen claims a day, each backed by an account, a friend of a source, a photograph. Readers are drowning, and what they lack is not analysis but a reliability filter.
My test is simple. Does this story contain at least one information point? What is the structure of the release clause, what is the wage bill, which agent moved, when does the contract end? Without one of those, the story is full in the headline and hollow in the body — the same empty-but-valid object, only now the schema is journalism.
A transfer fee is a headline; a transfer story is who stopped sleeping.
One personal note. When I interviewed Soumya Sarkar for The Daily Star in 2026 and the piece was picked up by Prothom Alo, it became my first verifiable byline. What I learned writing it was the relationship between a name and a number. You can write about a young player's promise, but you cannot pass promise off as an information point.
Now the signals someone like me would watch.
First, the completeness rate: of all extraction runs in seven days, how many returned at least one information point. Below ninety-five per cent, the system is cheating somewhere.
Second, whether the source cell fills. A blank title is not the analyst's fault but the collector's — the path into that particular site is broken.
Third, entity yield. Information points present but no names is the murkiest state: extraction is fine, name recognition has failed separately.
Fourth, timeliness coverage. For previews and reports this cell matters most. When it is unassessed the product decays silently, and nobody notices because the report still looks like a report.
I keep these four signals in my own paper system. Day counts, chair counts, pass counts, hours. They tell me when the gap is not in the information but in my looking.
Now the part where the report stands on its own feet, and where my trade most easily errs.
The easy reading is: the machine broke, fix the machine. That is true, and it misses something larger.
The machine did not break. It did exactly what it was told. It built a flawless schema, placed every cell, and released it with the cells empty. The fault is not the machine's but the design's, which permits an empty cell to pass.
And who built the design? We did. Because we love schemas. A schema looks like work done. A table looks like method. Eight section headings look like thought. Nobody measures the substance, because headings are easy to measure.
My trade has this habit deep in its bones. Filing a match report from the press-box television. Lifting a wire quote and printing it as your own interview. Writing one sentence attributed to a source's friend. In every case the schema is full, the substance is empty, and nobody catches it because the schema is handsome.
The second thing the easy reading misses, and my strongest observation: a speculative report would have been far more damaging than this empty one.
Consider it. Had stage two filled the cells with inference — probably strong in this format, probably tired, probably this — it would have looked like analysis. Nobody would have questioned it. It would have been quoted. It would have become the basis of decisions. And its foundation would have been nothing.
What arrived instead is better: a clear refusal. Eight dimensions, each with an honest zero in it.
I have rarely seen that kind of honesty in cricket journalism. Faced with a gap we fill it, because filling looks brave. Leaving it empty takes more nerve, and admitting it takes more still.
Third. The report rated overall risk withheld rather than low. Nobody forced that choice; low would have been easier and nobody would have asked. But writing low over an empty input injects a false reassurance into every future decision built on it.
In my experience the most dangerous sentence in cricket is: there is no problem. It is almost always said by someone who has not looked.
Fourth, something personally familiar. The report caught a taxonomy mismatch — the domain label returned cricket_world where the contract expected Cricket. On paper, small. In practice, exactly the kind of hairline crack that sends a whole system down the wrong road. A wrong label routes the item to the wrong dashboard, files it in the wrong category, counts it under the wrong signal. A cricket story filed in a football folder does not come back.
I know this. On twenty-seven matchdays someone tried to move my chair. Not because there was no room, but because nobody wanted to give me the room. The system had no cell for me, because nobody had built the cell.
Here is the largest lesson of my trade, stated in the language of data: what is not measured is not seen; what is not seen gets no room built for it.
A practical word. The report carries a minimum viable input checklist of seven items: title, source and publication time; at least five information points; a format flag; at least one match or event identifier; the entities involved; any quantitative data in the source; and a source-quality assessment.
In my trade I translate that list as a press credential. Nobody enters the ground without one. Yet we enter the field of information every day without a credential and our first act inside is to write down an inference.
Supply the first six and all eight dimensions run at full depth. This is not a large investment. It is one decision: we will not enter empty-handed.
Now the closing argument, in the plainest language I have.
Cricket discussion runs on a silent contract: what has numbers is real; what has no numbers is probably not real. That contract is why a young leg-spinner's fourteen wickets go unwritten while a rumour's inflated fee gets a banner headline.
The report broke that contract, and that is its real contribution. It showed that a flawless format can contain total emptiness, and that nobody catches it unless someone deliberately opens the cells.
I filled a notebook for 118 days on the belief that keeping count builds room. On day 119 the chair arrived, because fourteen names signed a page.
The dressing room gives you the result; the team bus gives you the cost. The data pipeline gives you the schema — the cost is paid by whoever asks what is inside the cells.
The next time a dashboard shows you a zero, ask one question. Is this a zero, or is it an empty cell nobody filled?
If the answer is the second, stop hunting the number and start hunting the responsibility. Because in that empty cell sits a player whose name nobody wrote down, and whose chair has not yet arrived.
