Every statistic on this page is computed from the historical rate rows shown in the chart, using the formulas below. Each one can be verified against the source code: frontend/src/lib/trend-analysis.ts.
"Last N days" is a trailing window that ends today and includes both endpoints. The backend is asked for rates dated from today minus N days through today (a span of N+1 calendar dates), and the page then keeps only the most recent N data points, so the chart and statistics match the label.
A data point is a calendar date on which at least one series has a rate. Dates with no collected rate (weekends, holidays) are simply absent: nothing is carried forward or filled in. Each series uses only the dates on which it actually has a rate, and the "data points" count on a bank card is exactly that number.
The values are the buy side of each stored rate (a bank's buy rate), never the sell side. The "Type" selector chooses which rows are used: Transfer (bank buy rate), Cash (bank cash buy rate), or Reference (the National Bank of Ethiopia reference rate). On the Transfer view an NBE reference line may be overlaid for comparison. Rows without a date, a source, or a numeric buy value are dropped when the data is prepared.
Every rate shown has already passed the collection pipeline's integrity checks: values that are non-positive, out of the database's range, or implausible for the currency are rejected at collection time and never stored, so they cannot appear here. Retired parallel-market sources are excluded from history entirely. Reference authorities (NBE, ERCA customs, UN/WFP institutional rates) are never commercial banks: they are kept out of bank rankings and the market summary, and the NBE reference appears only as a comparison line. A small number of stored rows carry outlier or crossed-book flags; those flags are what keep such a row out of the site's live "best rate" picks, and the same stored history is what this page charts. When the history service is unavailable and a saved snapshot is served instead, a notice is shown and the numbers should be read as not fresh.
The most recent rate for that series inside the selected window (the last point of its line), shown to 4 decimal places. It is the series' latest row in the window, not necessarily today's date.
The arithmetic mean of all the series' rates in the window (the sum divided by the count), shown to 4 decimal places.
The middle value after the series' rates are sorted from low to high (for an even count, the average of the two middle values), shown to 4 decimal places. The median is more robust to outliers, which is why windows longer than 90 days use it instead of the average as the headline number.
The highest and lowest rate in the window for that series, each shown with the date it occurred.
The standard deviation of the series' rates around their average, expressed as a percentage of that average. It measures how far individual daily rates spread around the mean.
The largest absolute day-over-day percentage change between two consecutive dates in the window.
The percentage of consecutive day-pairs in the window on which the rate actually moved (changed by more than 0.001%). It answers how often this bank's rate changes.
MA7 is the average of the series' last 7 rates and MA30 is the average of the last 30. The moving-average block appears on windows of 30 days or more; MA7 is shown when the series has at least 7 rates in the window and MA30 when it has at least 30. They smooth daily noise, so when the 7-day line sits above the headline average, the recent direction is up.
The window's high and low, plus every day-over-day move of at least 0.5% (0.3% on windows longer than 90 days), each tagged as a jump, drop, high, or low. They are ranked by how far they deviate from the average (high or low) or by the size of the move (jump or drop), and the top ones are highlighted: up to 2 on a bank card and 3 in the market summary.
The percentage change from the series' first rate in the window to its current rate.
A straight line is fitted through the series' rates (least-squares linear regression) and its slope is converted into the total percentage change the line predicts across the window: more than +0.5% means up, less than -0.5% means down, otherwise stable. The fit is only computed when the series has at least 5 rates. The fit quality (R-squared, scaled to 0-100) and a momentum measure comparing the recent third of the window to the start are also computed; they are not shown as numbers on the page.
Both use only commercial banks, so every reference source is excluded. On windows of 90 days or less each bank's headline number is its average; beyond 90 days it is its median. Best bank: the commercial bank with the highest headline number. The market summary shows the average of the banks' headline numbers, the range (highest minus lowest), the average of the banks' volatility percentages, how many banks are trending up or down, and the top notable events across all banks. The NBE reference is shown beside the best bank for comparison but is never ranked.