Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Average Dividend Yield by Sector: 2026 Data

Average dividend yield by sector, measured two ways: the median payer and the cap-weighted figure, with payout coverage for each one and the exact SQL.

The average dividend yield by sector is the number a single market-wide figure hides. Across a basket of household large caps spanning 11 sectors, the median dividend payer yields 0.72% at the low end of the sector table and 5.33% at the high end. This page measures that spread and shows the arithmetic underneath it. For what a given level is usually taken to mean, read what counts as a good dividend yield instead.

What is the average dividend yield by sector?

Dividend yield is one ratio: the cash a company is scheduled to pay out over the coming year, divided by its share price. Every panel here uses the indicated yield, which takes each company's most recent regular cash dividend, multiplies it by the number of payments that dividend carries per year, and divides by the latest close. Companies with no dividend on record enter the calculation at zero rather than dropping out of it, and that single choice moves the answer more than most readers expect.

One line of housekeeping before the table. The universe is 11 sectors with four or five large caps in each, grouped by hand and listed in full in the SQL beneath the panel, priced through Oct 8, 2026. Three figures sit next to each sector name: the median yield among the names that pay, the simple mean across every name in the group, and the cap-weighted figure.

QueryDividend yield by sector: median payer, equal-weighted mean, cap-weighted
sectormedian_payer_pctmean_all_names_pctcap_weighted_pctpriced_through
Communication5.333.440.69Oct 8, 2026
Real Estate4.284.123.99Oct 8, 2026
Discretionary3.281.860.36Oct 8, 2026
Utilities3.263.383.39Oct 8, 2026
Energy2.532.793.07Oct 8, 2026
Staples2.462.632.29Oct 8, 2026
Health Care2.382.332.31Oct 8, 2026
Financials2.162.032.07Oct 8, 2026
Industrials1.361.521.2Oct 8, 2026
Materials1.182.061.33Oct 8, 2026
Tech0.720.640.57Oct 8, 2026
The exact SQL behind every number
WITH
    basket AS
    (
        SELECT
            pair.1 AS ticker,
            pair.2 AS sector
        FROM
        (
            SELECT arrayJoin([
                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),
                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),
                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),
                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),
                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),
                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),
                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),
                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),
                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),
                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),
                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')
            ]) AS pair
        )
    ),
    price AS
    (
        SELECT
            ticker,
            max(date)                        AS price_date,
            argMax(toFloat64(close), date)   AS last_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= today() - 20
        GROUP BY ticker
    ),
    indicated AS
    (
        SELECT
            ticker,
            toFloat64(argMax(cash_amount, ex_dividend_date))
                * toFloat64(argMax(frequency, ex_dividend_date)) AS annual_rate
        FROM global_markets.stocks_dividends
        WHERE ticker IN (SELECT ticker FROM basket)
          AND ex_dividend_date >= today() - 400
          AND frequency > 0
          AND cash_amount > 0
        GROUP BY ticker
    ),
    caps AS
    (
        SELECT
            ticker,
            argMax(toFloat64(market_cap), date) AS cap_usd
        FROM global_markets.stocks_ratios
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= today() - 45
          AND market_cap > 0
        GROUP BY ticker
    ),
    name_level AS
    (
        SELECT
            b.sector                                                     AS sector,
            b.ticker                                                     AS ticker,
            p.price_date                                                 AS price_date,
            c.cap_usd                                                    AS market_cap,
            round(100 * ifNull(i.annual_rate, 0) / p.last_close, 2)      AS yield_pct
        FROM basket AS b
        INNER JOIN price AS p ON p.ticker = b.ticker
        INNER JOIN caps  AS c ON c.ticker = b.ticker
        LEFT  JOIN indicated AS i ON i.ticker = b.ticker
    )
SELECT
    sector,
    round(quantileDeterministicIf(0.5)(yield_pct, cityHash64(ticker), yield_pct > 0), 2) AS median_payer_pct,
    round(avg(yield_pct), 2)                                                             AS mean_all_names_pct,
    round(sum(yield_pct * market_cap) / sum(market_cap), 2)                              AS cap_weighted_pct,
    formatDateTime(max(price_date), '%b %e, %Y')                                         AS priced_through
FROM name_level
GROUP BY sector
HAVING countIf(yield_pct > 0) > 0
ORDER BY median_payer_pct DESC
Run this yourself

Communication leads the median column at 5.33%. At the far end of the same table, Tech prints 0.72%. The cap-weighted column answers a different question. It gives each company a share of the sector total in proportion to its market value, which hands the level to the largest members: in Communication that weighting produces 0.69% against a 5.33% median, while the equal-weighted mean for the same group lands at 3.44%. An index-level figure such as the S&P 500 dividend yield is built the cap-weighted way, and it rarely matches the typical stock inside it.

Why the mean and the median disagree

The distance between those columns is the real story of this page. A median reports the middle payer and ignores size entirely. A mean counts every name equally, including the names that pay nothing at all, each entering the average as a zero. In a sector where most members pay a steady dividend the two land close together. In a sector split between large payers and large non-payers they diverge sharply, and a reader comparing two sources is often comparing these two methods without being told.

QueryThe universe choice: sector means with and without non-payers
sectordividend_payersnon_payerspayers_only_mean_pctall_names_mean_pctgap_pct
Discretionary323.111.861.24
Communication414.33.440.86
Tech410.80.640.16
Staples502.632.630
Energy402.72.70
Health Care502.332.330
Financials502.032.030
Industrials501.521.520
Utilities503.383.380
Real Estate404.124.120
Materials402.062.060
The exact SQL behind every number
WITH
    basket AS
    (
        SELECT
            pair.1 AS ticker,
            pair.2 AS sector
        FROM
        (
            SELECT arrayJoin([
                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),
                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),
                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),
                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),
                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),
                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),
                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),
                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),
                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),
                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),
                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')
            ]) AS pair
        )
    ),
    price AS
    (
        SELECT
            ticker,
            argMax(toFloat64(close), date) AS last_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= today() - 20
        GROUP BY ticker
    ),
    indicated AS
    (
        SELECT
            ticker,
            toFloat64(argMax(cash_amount, ex_dividend_date))
                * toFloat64(argMax(frequency, ex_dividend_date)) AS annual_rate
        FROM global_markets.stocks_dividends
        WHERE ticker IN (SELECT ticker FROM basket)
          AND ex_dividend_date >= today() - 400
          AND frequency > 0
          AND cash_amount > 0
        GROUP BY ticker
    ),
    name_level AS
    (
        SELECT
            b.sector                                                AS sector,
            b.ticker                                                AS ticker,
            round(100 * ifNull(i.annual_rate, 0) / p.last_close, 2) AS yield_pct
        FROM basket AS b
        INNER JOIN price AS p ON p.ticker = b.ticker
        LEFT  JOIN indicated AS i ON i.ticker = b.ticker
    )
SELECT
    sector,
    countIf(yield_pct > 0)                                              AS dividend_payers,
    countIf(yield_pct = 0)                                              AS non_payers,
    round(avgIf(yield_pct, yield_pct > 0), 2)                           AS payers_only_mean_pct,
    round(avg(yield_pct), 2)                                            AS all_names_mean_pct,
    round(avgIf(yield_pct, yield_pct > 0) - avg(yield_pct), 2)          AS gap_pct
FROM name_level
GROUP BY sector
HAVING countIf(yield_pct > 0) > 0
ORDER BY gap_pct DESC
Run this yourself

The widest spread in the basket sits in Discretionary. Its payers average 3.11%, and the same group averages 1.86% once the 2 names with no dividend are counted at zero, a difference of 1.24 percentage points. A screener that quietly drops non-payers publishes the first number. A sector fund's trailing yield is closer to the second. Both are defensible, and they are not interchangeable. Ranking pages such as the highest dividend yield stocks work one name at a time, where this universe question disappears and a different one takes over.

Which sector averages are covered by cash flow?

A yield is a ratio of a payout to a price. It carries no information about whether the payout is funded. The standard check is the payout ratio: dividends measured against earnings, or against cash flow. The panel below uses cash, since cash is what pays a dividend. It takes dividends paid as a share of net operating cash flow, summed over the trailing four reported quarters for each company and then pooled across each sector. Operating cash flow is the denominator rather than net income on purpose, since depreciation charges can push reported net income far below the cash a capital-heavy business collects.

QueryDividends paid as a share of operating cash flow, by sector
sectornames_with_filingsdividends_pct_of_cash_flow
Real Estate472.2
Staples544.5
Health Care544.4
Energy431.7
Utilities530.1
Industrials526.4
Materials419.3
Tech516.5
Discretionary513.4
Communication511.7
Financials510.2
The exact SQL behind every number
WITH
    basket AS
    (
        SELECT
            pair.1 AS ticker,
            pair.2 AS sector
        FROM
        (
            SELECT arrayJoin([
                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),
                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),
                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),
                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),
                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),
                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),
                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),
                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),
                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),
                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),
                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')
            ]) AS pair
        )
    ),
    quarters AS
    (
        SELECT
            ticker,
            period_end,
            max(abs(toFloat64(dividends)))                          AS dividends_paid,
            max(toFloat64(net_cash_from_operating_activities))      AS operating_cash_flow
        FROM
        (
            SELECT
                arrayJoin(tickers) AS ticker,
                period_end,
                dividends,
                net_cash_from_operating_activities
            FROM global_markets.stocks_cash_flow_statements
            WHERE timeframe = 'quarterly'
              AND period_end >= today() - 500
              AND period_end <= today()
        )
        GROUP BY ticker, period_end
    ),
    joined AS
    (
        SELECT
            b.sector               AS sector,
            q.ticker               AS ticker,
            q.dividends_paid       AS dividends_paid,
            q.operating_cash_flow  AS operating_cash_flow
        FROM quarters AS q
        INNER JOIN basket AS b ON b.ticker = q.ticker
        WHERE q.operating_cash_flow > 0
    )
SELECT
    sector,
    countDistinct(ticker)                                          AS names_with_filings,
    round(100 * sum(dividends_paid) / sum(operating_cash_flow), 1) AS dividends_pct_of_cash_flow
FROM joined
GROUP BY sector
HAVING sum(operating_cash_flow) > 0
ORDER BY dividends_pct_of_cash_flow DESC
Run this yourself

Real Estate distributes 72.2% of its operating cash flow, the largest share in the basket, measured across 4 companies with statements in the window. Financials sits at the other end at 10.2%. Property trusts run structurally high on this measure by design: a REIT, a real estate investment trust, must distribute at least 90% of its taxable income to keep its tax treatment, so a large ratio there describes the business model rather than a stretched balance sheet. Reading this panel next to the yield panel is the whole exercise. Dividend safety and cash flow coverage walks the same arithmetic through one company at a time, and dividend yield traps covers the case where the yield is high and the coverage is thin.

How the sector picture has moved over three years

A sector average is a snapshot of two moving parts. Prices move every session. Dividend rates move once or twice a year per company, in discrete steps. The panel below tracks the median indicated yield across the whole basket, month by month, with the 10-year Treasury yield drawn on the same axis for scale.

QueryBasket median dividend yield by month, with the 10-year Treasury yield
36 rows (showing 20)
monthmonth_labelbasket_median_yield_pcttreasury_10y_pct
2023-10Oct 20233.214.8
2023-11Nov 20233.034.5
2023-12Dec 20232.854.02
2024-01Jan 20242.824.06
2024-02Feb 20242.834.21
2024-03Mar 20242.774.21
2024-04Apr 20242.714.54
2024-05May 20242.694.48
2024-06Jun 20242.84.31
2024-07Jul 20242.724.25
2024-08Aug 20242.533.87
2024-09Sep 20242.533.72
2024-10Oct 20242.544.1
2024-11Nov 20242.564.36
2024-12Dec 20242.794.39
2025-01Jan 20252.794.63
2025-02Feb 20252.714.45
2025-03Mar 20252.774.28
2025-04Apr 20252.94.28
2025-05May 20252.854.42
The exact SQL behind every number
WITH
    basket AS
    (
        SELECT
            pair.1 AS ticker,
            pair.2 AS sector
        FROM
        (
            SELECT arrayJoin([
                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),
                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),
                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),
                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),
                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),
                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),
                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),
                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),
                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),
                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),
                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')
            ]) AS pair
        )
    ),
    month_px AS
    (
        SELECT
            ticker,
            toStartOfMonth(date)           AS m,
            max(date)                      AS last_session,
            argMax(toFloat64(close), date) AS month_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= toStartOfMonth(today()) - 1095
          AND date <  toStartOfMonth(today())
        GROUP BY ticker, m
    ),
    div_rate AS
    (
        SELECT
            ticker,
            ex_dividend_date,
            max(toFloat64(cash_amount) * toFloat64(frequency)) AS annual_rate
        FROM global_markets.stocks_dividends
        WHERE ticker IN (SELECT ticker FROM basket)
          AND ex_dividend_date >= toStartOfMonth(today()) - 1460
          AND frequency > 0
          AND cash_amount > 0
        GROUP BY ticker, ex_dividend_date
    ),
    name_month AS
    (
        SELECT
            p.m                                               AS m,
            p.ticker                                          AS ticker,
            round(100 * d.annual_rate / p.month_close, 3)     AS yield_pct
        FROM month_px AS p
        ASOF LEFT JOIN div_rate AS d
            ON p.ticker = d.ticker AND p.last_session >= d.ex_dividend_date
    ),
    ust AS
    (
        SELECT
            toStartOfMonth(date)                      AS m,
            round(avg(toFloat64(yield_10_year)), 2)   AS treasury_10y_pct
        FROM global_markets.treasury_yields
        WHERE date >= toStartOfMonth(today()) - 1095
          AND date <  toStartOfMonth(today())
          AND yield_10_year > 0
        GROUP BY m
    )
SELECT
    formatDateTime(n.m, '%Y-%m')                                                             AS month,
    formatDateTime(n.m, '%b %Y')                                                             AS month_label,
    round(quantileDeterministicIf(0.5)(n.yield_pct, cityHash64(n.ticker), n.yield_pct > 0), 2) AS basket_median_yield_pct,
    any(t.treasury_10y_pct)                                                                  AS treasury_10y_pct
FROM name_month AS n
INNER JOIN ust AS t ON t.m = n.m
GROUP BY n.m
HAVING countIf(n.yield_pct > 0) > 0
ORDER BY n.m
Run this yourself

Between Oct 2023 and Sep 2026 the basket median moved from 3.21% to 2.47%, over a stretch that closed with the 10-year Treasury at 4.99%. The two lines are not like for like. A Treasury coupon is contractual, and a common-stock dividend is declared each quarter at the board's discretion. Drawing them together shows the backdrop against which any given equity yield was read in one month and in another.

How to read any average dividend yield number

Four choices sit behind every published average, and naming them resolves almost every disagreement between two sources.

  • Weighting. A cap-weighted average hands the result to the biggest members of the group, while an equal-weighted mean treats a mid-sized utility and a mega cap alike. A median reports the middle name and ignores size.
  • Universe. The full sector membership, or only the names that currently pay. The second panel above prices that choice in percentage points.
  • Definition. The indicated forward rate used here, or the trailing twelve months of cash actually paid. The two differ for any company that has just raised, cut or initiated a dividend.
  • Timing. The denominator is a price from one close, so a yield table from last quarter is a different table, not a stale copy of this one.

State those four next to the figure and the number becomes checkable. Leave them out and an average dividend yield is a number without a definition.

Data notes, universe and definitions
  • The universe is a hand-built basket of 52 large US-listed companies, four or five per sector, with the full ticker list visible in the SQL under each panel. It is a sample of household names rather than an index membership, and a different basket would move every figure on this page.
  • Sector labels are assigned inside the query itself rather than read from a vendor classification field, so the grouping is auditable line by line and no reused or reassigned ticker symbol can slip into a sector bucket.
  • Indicated yield is the most recent regular cash dividend multiplied by its stated payment frequency, divided by the latest close. Special and one-off distributions carry no frequency and are excluded.
  • A company with no qualifying dividend in the trailing 400 days enters at a yield of zero. Both treatments of those names appear side by side in the second panel.
  • The payout panel reads quarterly statement rows keyed on period end, the reliable date field on company statements, and sums the trailing four reported quarters per name. Duplicate rows for the same company and period are collapsed before aggregation, and quarters with negative operating cash flow are dropped from the denominator.
  • The history panel takes the final session of each completed month, pairs each name with the most recent dividend declared on or before that session, and reports the median across the basket. The current partial month is excluded.

FAQ

What is the average dividend yield by sector?

It depends on the method, which is why the panels above publish three figures per sector. In this basket of large caps the median dividend payer ranges from 0.72% in Tech up to 5.33% in Communication, priced through Oct 8, 2026.

Does the average include companies that pay no dividend?

Both versions are shown. Counting non-payers at zero pulls a sector mean down, and the effect is largest where a few big names pay nothing: in Discretionary the two methods differ by 1.24 percentage points.

Why do utilities and real estate show higher dividend yields than technology?

The difference is structural rather than mysterious. Regulated utilities and property trusts are organised around distributing recurring cash to shareholders, and a REIT must pass through at least 90% of taxable income to keep its tax treatment. Companies that reinvest most of their cash flow into growth retain it instead of paying it out.

Is a high sector average a sign of a safe dividend?

No. A yield rises when the price falls as readily as when the payout rises, and the yield itself says nothing about funding. The cash-flow panel above is the first check, and the full method is in dividend safety and cash flow coverage.

How often do these numbers change?

Prices refresh every session, so the denominators move constantly. Dividend rates change only when a board declares a new one, and statement figures update once a quarter per company. Each panel carries the date range it was computed over.


Every panel on this page ships with the exact SQL beneath it, including the full ticker list behind each sector label. To regroup the names, swap in a different universe or run the same measurement as of another date, ask for it in plain English on the Strasmore terminal.