AWRA OpsHub Search

Ninety Days, Two Meanings

Two finance managers open the same aging report on the same morning. One is in Lagos and one is in Abidjan, and the ninety-day column means something completely different to each of them. Only one of them can safely treat it as a collection problem.

Sales Insights AWRA OpsHub Team 12 min read

An aging report is one of the few pieces of finance software that everybody reads the same way. Current, thirty days, sixty, ninety, over ninety. The further right a number sits, the worse it is. Nobody needs the columns explained, which is exactly why nobody examines what they assume — and what they assume is that the only thing changing as an invoice moves right is the likelihood of being paid.

That assumption is correct in most of the world most of the time, and it is worth being precise about why. It holds when the unit of account holds still. If a hundred thousand of your currency is worth the same when you collect it as when you issued it, then aging measures exactly one thing — collection risk — and the standard escalation ladder is the whole of the response.

West Africa is the place to notice this, not because the region is uniquely difficult, but because it contains both cases at once. That is unusual, and it makes the point in a way a single-country example cannot.

One region, two currency regimes

The West African CFA franc, used across the eight countries of the monetary union, is pegged to the euro at a fixed parity. It is not a market rate that happens to be stable; it is a rate set by arrangement. For a business invoicing in CFA francs and collecting in CFA francs, the ninety-day column is a collection-risk ladder and nothing else. The classical reading of the report is simply correct.

The naira and the cedi float. For a business invoicing in either, an invoice at ninety days has been exposed to whatever the currency did over those ninety days, and that exposure is independent of whether the customer is good for the money. A perfectly reliable customer who pays on day ninety, exactly as agreed, has still handed you something whose purchasing power is decided by events neither of you controls.

So the same report, with the same columns, carries two different meanings inside one region. In Abidjan, ninety days is a question about the customer. In Lagos, it is a question about the customer and a question about the money, and the report cannot tell you which part is which.

1
Rate per foreign invoice or supplier bill, entered by a person and stored on the document — the rate the ledger posts it at
0
Revaluation runs. An open receivable stays at the rate it was raised at until it is paid
2
Currencies in this region with no minor unit at all — CFA francs and Guinean francs are whole-number currencies and are treated as such

What the aging report does, exactly

Start with what is true, because it matters more than it sounds. The AR/AP aging report totals its buckets separately for each currency and adds nothing across them. If you invoice in naira and in dollars, you get a naira bucket set and a dollar bucket set, each labelled, sitting beside each other. Nothing is converted. Nothing is summed into a single headline.

That is worth stating plainly because the obvious behaviour is wrong: a single set of buckets containing the arithmetic sum of unlike currencies, with no currency named anywhere on the page, produces a number that looks entirely normal and means nothing. If you have used a report like that — in any system — it is worth checking what it does with a second currency, because a page that shows one clean total is not evidence that it only found one currency.

The instinct on reading "nothing is converted" is that this is a limitation to be fixed. It is worth resisting, because refusing to convert is the correct behaviour, and for reasons that have nothing to do with effort.

A converted total

  • Needs a rate, which means somebody has to decide which rate.
  • Needs an as-at date, and the honest choices — issue date, period end, today — give three different answers.
  • Changes between two viewings of the same closed period, because the rate moved and the period did not.
  • Reconciles to no ledger. The figure exists only on that screen.
  • Looks authoritative. That is the problem: it is the most confident number on the page and the least defensible.

Currencies kept apart

  • Needs no rate, so there is nothing to argue about.
  • True at every viewing, including a re-run of a closed period a year later.
  • Each figure ties to invoices you can list.
  • Makes the reader aware there is more than one currency — which a single total actively conceals.
  • Costs you a single-number summary, and that is a real cost. It is the right trade.

A total that changes when you look at it twice is not a total. It is a snapshot of an exchange rate wearing a receivables label.

Where the value is recorded, and where it is not

The aging report is not where currency value lives, and should not be. It lives on the document and in the ledger. An invoice raised in a currency other than your base carries an exchange rate entered on it — the rate on the day it was issued, stored on the invoice. The ledger posts that invoice in your base currency at that rate, never at today's. A foreign invoice with no rate is not posted at all; it shows that it is waiting for one, and the refusal is in the audit log.

When the customer pays, the payment can carry the rate on the day it was paid. The receivable clears at the invoice's rate, the cash arrives at the payment's, and the difference — the erosion this whole post is about — is posted to an exchange gains and losses account as a realised gain or loss. On a naira invoice that sat ninety days, that line is the cost of the ninety days, named.

The piece not covered is the view of an invoice that has not been paid. Nothing revalues an open receivable at a period-end rate, so there is no unrealised gain or loss, and the display conversion — an organisation can nominate a display currency, shown with a "≈" prefix at the live rate under a note that says it is indicative — converts a ninety-day-old invoice and one raised this morning identically. Read the open balance with that in mind: the erosion on it is real, and it reaches the books only when the money does.

The same invoice, read three ways

On the aging report Naira bucket, ninety-plus column. Correct, complete, and says nothing about value.
On the invoice and in the ledger The rate entered at issue, and the base-currency amount posted at it.
Once it is paid The realised gain or loss, posted to exchange gains and losses. While it is open, the difference is real and unposted.

None of this is unique to one product. Storing a rate against each document is a real design commitment — it leads to a realised-versus-unrealised distinction, a revaluation run, and gain and loss accounts to post the difference to. This system carries the first half of it: the rate on the document and the realised difference at settlement. The revaluation of what is still open is the half it does not. The point is that you should know which side of each half your system is on, because in a floating-currency market the answer determines what your books are capable of telling you.

What to do while that is true

The practical response is not to wait for a feature. It is to stop asking the aging report a question it was never built to answer, and to move the currency decision earlier — to the point where you still have options.

  1. Decide the currency at quotation, not at collection

    The only genuinely effective lever is which currency the invoice is denominated in, and it is available exactly once — before the customer agrees. By the time an invoice is in a ninety-day bucket every option has expired. This is a commercial decision that finance usually inherits and rarely gets to make.

  2. Shorten terms rather than chase harder on the ones you have

    In a stable currency, thirty-day and sixty-day terms differ by collection risk alone, and the difference is often worth conceding to win the work. Where the currency floats they also differ by exposure, which does not care how good the customer is. Terms are the second lever and, unlike the currency, they are usually yours to set.

  3. Read the buckets per currency and never in aggregate

    This is what the report gives you. Treat each currency's ninety-plus column as its own problem with its own urgency, because they genuinely are — an aged CFA receivable and an aged naira receivable of the same size are not the same amount of trouble.

  4. Enter the rate on every foreign invoice, and on the payment

    The rate is a field on the invoice, and the ledger will not post a foreign invoice without one. Entering the rate on the day paid when the money arrives is what turns the erosion into a realised gain or loss on the books, rather than a gap someone finds at the bank reconciliation.

  5. Keep the display conversion switched on, and keep reading the note

    The indicative conversion is useful for the question it answers — what is this worth to me now. The note under it, saying invoices and statements remain in the original currency, is not boilerplate. It is the exact boundary of what the figure means.

The part that does work well, and is easy to overlook

One thing worth crediting, because it is the sort of detail that quietly signals whether a system was built with the region in mind. CFA francs have no minor unit. There are no centimes to display, and a system that prints two decimal places against a CFA amount is telling every reader that it does not know what currency it is handling. Both West African CFA francs and Guinean francs are treated as whole-number currencies throughout — amounts, reports and exports. The naira and the cedi carry two decimals, as they should.

It is a small correctness. It is also the kind that is very hard to retrofit and very obvious when it is absent.

Receivables in a moving currency — what ships today, and what we can add

What AWRA OpsHub does today

  • Aging buckets totalled separately per currency, each labelled, with nothing added across them and nothing converted — on the report and on the API.
  • A currency on every invoice, recorded at issue and carried through the register, the aging report and the exports.
  • Indicative display conversion, opt-in per organisation, at the live rate, clearly marked with "≈" and a note stating that invoices and statements remain in the original currency.
  • Live rates fetched and cached, with each pair persisted as last-known-good, so a provider outage degrades to the last good rate rather than to nothing.
  • Correct precision per currency — CFA and Guinean francs as whole numbers, naira and cedi to two decimals, in every figure the system prints.
  • An exchange rate on each foreign invoice and supplier bill, entered on the document, with the ledger posting it in base currency at that rate. A foreign document with no rate is held off the ledger and shown as waiting for one.
  • Realised exchange gain and loss, posted to an exchange gains and losses account when a payment settles at a different rate from its invoice or bill.
  • Custom fields on invoices, reportable and exportable.

More we can add to your workspace

  • A revaluation. Open receivables restated at a later rate, on a schedule or on demand, with the unrealised gain or loss posted.
  • A daily rate captured automatically, offered on each document in place of one typed by hand.
  • A conversion in the aging report itself, deliberately. The buckets are never expressed in a common currency, because doing so would require a rate and an as-at that no two readers would agree on.
  • Hedging, forward cover or exposure reporting of any kind. If you need to know your net position by currency at a date, that is not a report we produce.
  • A warning when a receivable ages in a floating currency. The report does not know which currencies float, and it does not treat any of them differently.

More we can add for you

What we can build for Nigeria on top of the standard product

Everything listed above as something we can add describes what ships in the standard product today — it is a starting point for Nigeria, not a limit on what AWRA OpsHub can do there. Kenya's eTIMS integration and its maintained payroll engine are in the product because Kenyan clients needed them and commissioned them; neither appeared by itself. The same door is open here. If FIRS e-invoicing, a bank or mobile money feed, a statutory return format, a rule specific to how your operation runs, or a link to a system you already have is what stands between you and a decision, tell us and we will scope it as a build — written spec, timeline and price — before you commit to anything.

FIRS e-invoicing and tax pipelines

Invoice transmission against the authority's published interface, plus WHT credit handling and sector levies — with the parts vendors gloss over: retries, a failure queue and a daily report of sales carrying no fiscal reference.

Banks, cards and transfers

Bank statement feeds, card acquirer settlements and bulk-payment files pulled into the Payments Register, so money in and out reconciles without anyone re-keying a statement.

The operational work, which is what most commissions actually are

An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.

Payroll and statutory returns

PAYE, pension and NHF schedules produced in the layout your filing body expects, generated from live payroll records rather than rebuilt in a spreadsheet each month.

Systems you already run

The accounting package, CRM, online store or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. No roadmap slide, and no pretending in a demo that something exists when it does not.

Tell us what you need integrated

The question worth taking away

If you operate on both sides of this region — and a great many organisations do, with a Lagos or Accra operation and a francophone one under the same roof — the useful exercise is not to compare the two aging reports. It is to notice that you have been reading them with the same instincts, and that only one of those readings was complete.

The collections argument for the stable case is set out in full in receivables and collections, and every word of it still applies where the currency holds still. The credit-limit side of the same problem — stopping the next invoice to a customer who has stopped paying — is covered in credit limits and holds. What this post adds is the second axis, and the honest position on it: the report will tell you what is owed, in what currency, and for how long. The invoice holds the rate it was raised at, and the ledger holds what the difference came to once it was paid. What nothing restates is a receivable still open — and knowing exactly where that line falls is worth more than a number that pretends otherwise.

Frequently asked questions

Why does the aging report not just convert everything into one currency?

Because a converted total needs a rate and an as-at date, and the honest candidates — issue date, period end, today — give three different answers. Worse, it moves between two viewings of the same closed period and reconciles to no ledger. Currencies are kept apart, each set of buckets labelled, so that every figure on the page ties to invoices you can list.

Does the system record what the exchange rate was when I raised an invoice?

Yes. A foreign-currency invoice carries the exchange rate entered on it, and the ledger posts the invoice in your base currency at that rate. When the payment arrives at a different rate, the realised gain or loss is posted to an exchange gains and losses account. What is not done is revaluing an invoice that is still open, and the indicative display conversion uses today's rate for every invoice, old or new.

Can I see all my receivables as one number if I invoice in more than one currency?

Not on the aging report, deliberately. You get one labelled set of buckets per currency. Elsewhere in the product, where a single figure genuinely has to be shown, the convention is to show the largest single currency, labelled, and disclose how many others exist — never to add unlike currencies together.

Are CFA francs handled correctly, given they have no cents?

Yes. West African CFA francs and Guinean francs are treated as zero-decimal currencies throughout — amounts, reports and exports — so no fictional centimes are printed. Naira, cedi, leone, Liberian dollars and dalasi carry two decimal places.

Does an aged receivable in naira get flagged differently from one in CFA francs?

No, and it is worth being clear about that. The report separates currencies but does not rank them by risk — it has no notion of which currencies float. The judgement that a ninety-day naira receivable is a different problem from a ninety-day CFA one is yours to make; the report gives you the two figures apart rather than merged, which is what makes the judgement possible.

Share this article

LinkedIn X WhatsApp

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center