Recommended Free Tools
A null result from a cost lookup does not prove a run was free. In the incident described by SimpleMemo, the same null meant either “no cost line was found” or “the job log could not be read.” Treating both as a permanent exclusion hid three billed runs, according to the article’s case-specific account; that count has not been independently verified.
How the null result hid billed runs
The reported system recorded per-run costs during a daily release pipeline, then ran a reconciliation pass against Actions job logs. Its lookup returned null in two materially different situations: it found no cost line, or it failed to read the log. The latter could happen after a 5xx response, a permission error, or an exception.
As an Amazon Associate I earn from qualifying purchases.
The caller interpreted either result as “exclude this run permanently.” That made a temporary failure to observe the log indistinguishable from a confirmed absence of a cost record. The account says three billed runs were consequently hidden. It also describes a 404 for an ID from a different execution path being placed in the same bucket, even though that path had no cost observation method. The article’s page could not be independently checked, so these are details of its account, not a verified audit finding. SimpleMemo’s DEV Community article
Null, zero, absent, and unreadable are not interchangeable
- Zero: a confirmed numeric cost of zero.
- Absent: the relevant source was successfully checked and contained no cost line.
- Unreadable: the source could not be checked, so the cost is unknown.
- Unsupported path: the run belongs to an execution path for which this lookup has no applicable cost-observation method.
Only a successful observation can support the claim that a record is absent. A failed read says nothing about whether a cost line exists. Likewise, an unknown cost should not be added to a total as if it were zero.
#1 Best Overall
Represent lookup outcomes explicitly
Return a tagged result that preserves why the lookup produced no amount, rather than a bare nullable number. For example:
{ state: 'found', amount: 0.12 }
{ state: 'absent' }
{ state: 'unreadable', reason: 'permission_denied' }
{ state: 'unsupported_path' }
The names are illustrative; the important point is that callers can distinguish a found amount from confirmed absence, a failed observation, and an inapplicable lookup. Make the caller handle each case deliberately instead of treating every missing amount as permission to discard the run.
Rank #2
Retry failed reads, but retain the uncertainty
Transient read failures should be eligible for bounded retries, not permanent exclusion. Preserve the run ID, attempt count, timestamps, and error category so the record remains traceable while its cost is unknown. When a later read succeeds, update the observation; if it confirms there is no cost line, record that as absence rather than as a failed lookup.
Retries should be time-bounded and operationally visible. A permission error may require correcting access rather than repeatedly retrying, while a 5xx may resolve on a later attempt. In either case, keep the state unknown until the source is actually read or the workflow’s documented contract establishes another outcome.
Rank #3
Keep completion, output validity, and spend observation separate
Sume’s documented Format API illustrates why one null value cannot safely stand in for the status of an entire run. A run has separate lifecycle status, output, artifacts, errors, and usage. Its output may be null while a run is nonterminal, or when no value satisfies the configured output schema; output_error can explain the latter. The documentation also describes a webhook marking a run degraded when it completed and was billed but its projection did not match the requested schema. Separately, usage is null when spend could not be read. Sume Format API documentation
For that API, the accounting fields have distinct meanings:
Rank #4
usage.billable_amount_usd_microsis generation spend counted against the run’s cap, including reserved and captured amounts, but excluding the agent’s own LLM turn.usage.debited_usd_microsis the wallet deduction for the run and thread, including the turn’s own LLM row.held_usd_microsrepresents holds still open;refunded_usd_microsrepresents returned holds; andfinalbecomes true when no hold remains open.
These definitions belong to Sume’s API; they are not universal billing rules. Do not substitute one field for another or infer spend from output validity.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Reconcile with durable run records
For Sume, the documentation says terminal receipts include run IDs and usage fields, and that the receipt and GET /v1/usage?run_id= use the same ledger rows and fold. Comparing those records gives a concrete reconciliation path for that API. In another platform, use its documented receipt, run identifier, and usage semantics; do not assume that a matching endpoint or field has the same accounting meaning.
Best Value
- Retain the run ID alongside the execution path and the cost observation state.
- For a completed run, compare the durable receipt with the platform’s run-specific usage record where available.
- Keep output errors and usage-read failures separate from lifecycle completion.
- Leave unresolved observations marked unknown until a later read or documented platform behavior settles them.
Apply the same rule to totals
The AGNT ledger documentation excerpt describes unpriced calls as having unknown cost stored as NULL and deliberately not adding that unknown to totals as zero. It also describes one ledger row per LLM request/response round-trip. The page could not be opened for full verification, so treat those specifics with caution; the general accounting distinction remains essential: totals should not silently convert unobserved costs into confirmed zeroes. AGNT ledger documentation
Quick Recap
What to check in an existing automation ledger
- Find callers that translate a missing amount into zero or a permanent exclusion.
- Check whether 5xx responses, permission failures, exceptions, 404s, and confirmed “no cost line” outcomes are recorded as distinct states.
- Confirm that the lookup applies to the run’s execution path before interpreting a missing record.
- Verify that failed reads remain eligible for a bounded retry or later reconciliation.
- Review whether unknown costs are kept out of zero-cost totals and are visible for follow-up.
- Compare run receipts and usage records according to the actual platform’s documented contract.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




