Kuartal kedua tahun dua ribu dua puluh enam adalah kuartal pemulihan: setelah kuartal pertama yang negatif, setiap ETF indeks utama naik dua digit, dipimpin oleh QQQ pada 26.5%. Panel di bawah ini menampilkan bentuk kuartal tersebut — tangga bulanan, latar belakang rates, kalender — serta dua peringatan data, yang diungkapkan secara inline. Setiap angka adalah hasil query tersimpan; perluas panel apa pun untuk SQL yang tepat.
Kuartal pada papan skor
Seberapa besar perubahan dari Q1? Panel ini menghitung return kedua kuartal dalam satu query — referensi Q1 dihitung ulang secara live dengan definisi yang sama, bukan dibaca dari sumber mana pun.
SQL tepat di balik setiap angka
SELECT ticker,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS q2_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY tickerQQQ naik 26.5% untuk kuartal tersebut setelah Q1 yang -6.9%; SPY 14.1% setelah -5.2%; IWM 20.2%. Setiap index yang turun pada kuartal pertama pulih lebih besar pada kuartal kedua. Keempatnya menceritakan tiga hal berbeda: index growth mengalami drawdown Q1 terdalam dan mencatat pemulihan terbesar; DIA — index industri price-weighted — berubah dari -3.9% menjadi 12.1%; dan IWM tidak benar-benar turun (0.1% pada Q1), sehingga kuartal 20.2% miliknya memperkuat awal yang flat daripada memperbaiki drawdown. Pemulihan dan momentum terlihat identik dalam kolom return kuartalan; kolom Q1 adalah hal yang membedakannya.
Kuartal ini dibandingkan dengan setiap kuartal kedua dalam data historis
Kuartal pemulihan terasa bersejarah saat sedang berlangsung; data historis dapat menunjukkan apakah kuartal ini memang terukur demikian. Panel-panel ini menghitung ulang return April hingga Juni yang SAMA untuk setiap tahun dalam sejarah data dalam satu kueri, dengan aritmatika yang identik setiap tahun, lalu mengurutkan kuartal ini dibandingkan dengan yang lainnya.
SQL tepat di balik setiap angka
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
ticker,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS q2_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2003-01-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND toMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 6
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 50
ORDER BY y ASC, ticker ASCSQL tepat di balik setiap angka
SELECT ticker,
round(anyIf(ret, y = 2026), 1) AS q2_2026_pct,
arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
count() AS q2s_compared,
min(y) AS first_year,
anyIf(sessions, y = 2026) AS sessions_2026
FROM (
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
ticker,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2003-01-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND toMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 6
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 50
)
GROUP BY ticker
ORDER BY ticker ASCHasilnya mendekati rekor historis: 26.5% QQQ berada di peringkat 2 dari 17 kuartal kedua yang sebanding (peringkat satu = terbaik) — tepat satu kuartal kedua sebelumnya berakhir lebih tinggi, dan tabel per tahun di atas menunjukkan yang mana. 14.1% SPY berada di peringkat 3 dari 23 sejak 2004. Dua pengungkapan perlu diperhatikan: seri QQQ lebih pendek (dana tersebut diperdagangkan dengan simbol akar yang berbeda selama beberapa tahun — penjaga hitungan sesi mengecualikan tahun-tahun tersebut secara jelas, dengan hitungan per tahun dalam tabel), dan setiap kueri riwayat menetapkan batas atasnya pada akhir kuartal ini, sehingga set perbandingan tidak dapat bertambah secara otomatis saat tahun-tahun berikutnya tiba. Dasar untuk setiap peringkat di halaman ini: harga buka hingga tutup jam reguler dalam kuartal kalender.
Tangga bulanan
SQL tepat di balik setiap angka
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start, ticker,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start, ticker
ORDER BY period_start, tickerKuartal ini terpusat di awal: April memberikan kontribusi terbesar (SPY 9.9%, QQQ 14.8%), Mei menambah lebih banyak (4.9% dan 10.3%), dan Juni mengalami sedikit penurunan — SPY -1.2%. Rekap Juni membahas bulan tersebut secara mendalam, termasuk pembagian breadth di bawahnya.
Pemimpin perdagangan, skala kuartal
SQL tepat di balik setiap angka
SELECT ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8Untuk satu kuartal penuh, MU ($2047.5 miliar) sedikit mengungguli SPY ($2032 miliar) di posisi teratas perdagangan — satu saham dengan volume perdagangan yang melampaui index fund utama selama tiga bulan, dengan selisih 99.2% dari total pemimpin tersebut. Di belakang mereka: QQQ ($1658.5 miliar), kemudian NVDA sebesar $1591.8 miliar — yang bulan Juni-nya saja dibedah tick by tick di sini — dan TSLA sebesar $1198.8 miliar. Perhatikan isi daftar ini: turnover jam reguler, bukan performa — sebuah nama bisa mendominasi perdagangan di bulan yang sedang turun. Bulan Juni dari sang pemimpin dibedah tick by tick dalam analisis mendalamnya. Basis: jam reguler satu April–tiga puluh Juni; satu pencatatan Juni dengan simbol yang digunakan kembali dikecualikan menunggu verifikasi entitas (tanda terimanya).
Breadth: butiran harian
SQL tepat di balik setiap angka
SELECT countIf(day_ret > 0) AS up_sessions,
countIf(day_ret < 0) AS down_sessions,
countIf(day_ret = 0) AS flat_sessions,
count() AS sessions_total
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 2) AS day_ret
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-04-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)36 dari sesi 62 kuartal ini ditutup dengan SPY lebih tinggi dibandingkan 26 yang lebih rendah — dominasi hari penguatan yang setara dengan kuartal dua digit. Hitungan butiran ticker (setiap advancer dan decliner) dibatasi pada skala kuartal: pemindaian tunggal seluruh pasar melebihi anggaran query yang dihasilkan halaman ini (diukur saat penulisan), sehingga breadth jumlah setara berada pada skala bulan — pembagian advancer/decliner Juni, di mana lebih banyak yang turun daripada naik, ada di rekap Juni — dan batasan tersebut diungkapkan di sini daripada dipersempit secara diam-diam.
Rekaman opsi, bulan demi bulan
Kisah mikrostruktur kuartal ini, diceritakan pada satu-satunya skala yang mampu menjelaskannya — bulan demi bulan di seluruh rekaman opsi terdaftar. Volume meningkat menjelang akhir kuartal: 1386.9 juta kontrak pada April menjadi 1477.9 juta pada Juni, bulan tersibuk di kuartal tersebut. Pangsa share same-day-expiry (0DTE) juga meningkat, dari 30.3% menjadi 34.3% — pangsa Juni adalah yang tertinggi pada semester ini, dan evolusi sejak Januari dijelaskan dalam rekap H1.
SQL tepat di balik setiap angka
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00')
AND window_start < toDateTime('2026-05-01 00:00:00')SQL tepat di balik setiap angka
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-05-01 00:00:00')
AND window_start < toDateTime('2026-06-01 00:00:00')SQL tepat di balik setiap angka
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')Biaya perdagangan, sampel bulanan
SQL tepat di balik setiap angka
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 3) AS med_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND ((sip_timestamp >= toDateTime64('2026-04-15 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-04-15 20:00:00', 9))
OR (sip_timestamp >= toDateTime64('2026-05-13 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-05-13 20:00:00', 9))
OR (sip_timestamp >= toDateTime64('2026-06-10 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-10 20:00:00', 9)))
GROUP BY session
ORDER BY session ASCMedian quoted spread SPY pada sesi sampel bulanan kuartal ini: 0.286 bps pada sampel April, 0.27 pada Mei, 0.409 pada Juni — sampel Juni adalah yang terlebar. Basis pengungkapan: sesi sampel berlabel tunggal (Rabu kedua setiap bulan), bukan median sepanjang bulan; kuotasi yang tidak valid dihitung dalam panel, tidak dihapus.
Suku Bunga: kuartal saat kurva mendatar
SQL tepat di balik setiap angka
SELECT toString(date) AS d,
round(yield_10_year, 2) AS y10,
round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-04-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date2s10s spread dimulai pada kuartal ini di angka 52 basis point dan berakhir di 30 —SS — sebuah kuartal yang mendC mendatar, dengan tenor 10-year berakhir di 4.44%. Versi enam bulan dari laporan ini tersedia di rekap H1. Secara mekanis, pendataran berarti ujung pendek memperkecil jarak dengan ujung panjang; apakah hal tersebut akan berlanjut tidak dapat dijawab dari tabel ini, dan halaman ini tidak mencoba menjawabnya.
Kalender, skala kuartal
SQL tepat di balik setiap angka
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-01') AND ex_dividend_date <= toDate('2026-06-30')) AS ex_div_events,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-04-01') AND execution_date <= toDate('2026-06-30')) AS splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-01') AND listing_date <= toDate('2026-06-30')) AS ipos,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= toDate('2026-04-01') AND filing_date <= toDate('2026-06-30')) AS q2_filings,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS filings_apr30,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30105 perusahaan terdaftar dalam kuartal ini, 435 split dilaksanakan, dan 15402 peristiwa ex-dividend dibayarkan. Jumlah pelaporan (235075) memiliki celah yang terungkap: indeks hanya mencatat 31 pelaporan pada tiga puluh Juni — hari terakhir kuartal — dan 34 pada tiga puluh April, dibandingkan dengan ribuan pelaporan pada hari-hari di sekitarnya, sehingga total kuartal memotong DUA hari akhir bulan dan nilainya lebih rendah sampai data diisi kembali. Celah akhir bulan memiliki catatan diagnostiknya sendiri.
Peningkatan kalender menjelang akhir kuartal
SQL tepat di balik setiap angka
SELECT m, ipos, splits, ex_divs FROM (
SELECT '2026-04' AS m,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-01') AND listing_date <= toDate('2026-04-30')) AS ipos,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-04-01') AND execution_date <= toDate('2026-04-30')) AS splits,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-01') AND ex_dividend_date <= toDate('2026-04-30')) AS ex_divs, 1 AS o
UNION ALL SELECT '2026-05',
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-05-01') AND listing_date <= toDate('2026-05-31')),
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-05-01') AND execution_date <= toDate('2026-05-31')),
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-05-01') AND ex_dividend_date <= toDate('2026-05-31')), 2
UNION ALL SELECT '2026-06',
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-01') AND listing_date <= toDate('2026-06-30')),
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-01') AND execution_date <= toDate('2026-06-30')),
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')), 3
) ORDER BY oKalender korporasi semakin padat seiring berjalannya kuartal: peristiwa ex-dividend meningkat setiap bulan, dari 3947 pada April menjadi 6651 pada Juni, dan split juga meningkat (129 menjadi 164). Listing tetap stabil selama tiga bulan tersebut — metafora gelombang berlaku untuk dividen, bukan IPO, pada kuartal ini.
Tanda terima sesi
SQL tepat di balik setiap angka
SELECT
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS q2_sessions,
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-05-01 00:00:00')) AS april_sessions,
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-01 00:00:00') AND window_start < toDateTime('2026-06-01 00:00:00')) AS may_sessions,
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS june_sessions62 sesi, diverifikasi dari bar yang teramati dan bukan diasumsikan dari kalender: 21 pada April, 20 pada Mei (Memorial Day), 21 pada Juni (Juneteenth). Tanda terima tingkat bulanan dan bukti penutupan tersedia di rekap Juni dan penjelasan hari libur.
Catatan data
Catatan data lengkap
- Short interest berakhir pada settlement 15 Juni saat pembuatan — data akhir Juni masih tertunda; rekap Juni memuat pengungkapan lengkap. Postingan ini akan diperbarui saat data tersedia.
- Kesenjangan indeks pelaporan akhir bulan diungkapkan secara inline: 30 Juni DAN 30 April jatuh di dalam kuartal ini, dan 31 Maret menunjukkan tanda yang sama — setiap akhir bulan 2026 yang hari kalender terakhirnya adalah hari kerja hampir kosong. Catatan diagnostik memuat bukti dan diagnosis terbatas.
- Microstructure (mekanisme level tick) sengaja ditiadakan di sini — analisis mendalam 29 Juni memuat anatomi tape sesi lengkap.
- Pengecualian pemimpin volume: satu listing Juni dengan simbol yang digunakan kembali dikecualikan menunggu verifikasi entitas.
Metodologi
- Periode yang digunakan adalah satu April – tiga puluh Juni dua ribu dua puluh enam — 62 sesi, diverifikasi dari bar yang teramati. Return kuartalan dihitung dari harga open jam reguler pertama hingga harga close jam reguler terakhir dalam periode tersebut; kontras Q1 dihitung ulang secara live dengan definisi yang identik.
- Timestamp disimpan dalam UTC, difilter dengan batas UTC mentah; jam reguler adalah pukul tiga belas tiga puluh–dua puluh nol nol UTC selama kuartal (EDT). Volume dolar adalah harga close per menit dikali volume per menit selama jam reguler. Blok riwayat multi-tahun memfilter jam reguler berdasarkan jam dinding Eastern (dikonversi per baris — konvensi aman DST selama beberapa dekade) dan menetapkan batas atas pada akhir kuartal ini; verifikasi kedalaman (riwayat per menit hingga September dua ribu tiga) terdapat dalam metodologi rekap H1.
- Pembuatan data berjalan melalui jalur read-only yang terbatas; halaman publik tidak pernah melakukan query secara live. Status warehouse per lima Juli dua ribu dua puluh enam.
Ini adalah edisi pertama dari rekap kuartalan rutin; edisi Q3 akan memberikan tautan kembali ke sini. Detail bulanan: Juni. Paruh tahun yang selesai pada kuartal ini: H1 2026.