{"schema_version":"secwatch.filing_event.v1","accession":"0001628280-22-004898","form_type":"8-K","ticker":"GDYN","cik":"0001743725","company_name":"GRID DYNAMICS HOLDINGS, INC.","filed_at":"2022-03-03T23:59:59+00:00","discovered_at":"2026-05-14T18:04:08.007625+00:00","generated_at":"2026-06-27T02:04:31.516589+00:00","sec_items":["2.02","9.01"],"event_type":"earnings","sentiment":"neutral","materiality_score":0.7,"calibrated_materiality_score":0.7,"confidence":"high","headline":"Grid Dynamics Q4 revenue $66.5M (+120.9% YoY); FY revenue $211.3M; Ukraine war cited as risk","bullets":["Q4 revenue $66.5M (+120.9% YoY); GAAP net loss $3.6M (-$0.05/sh); non-GAAP net income $7.1M ($0.10 diluted).","FY2021 revenue $211.3M (+89.9% YoY); GAAP net loss $7.7M (-$0.13/sh); non-GAAP net income $24.2M ($0.36 diluted).","Organic Q4 revenue $51.3M (+76% YoY) excluding $15.2M from Daxx/Tacit acquisitions.","CEO notes Russia-Ukraine war; business continuity activated, expedited hiring in Europe/LatAm, formed Grid Dynamics India.","Added 23 new customers in 2021 (vs 16 in 2020); total 221 customers at Q4 end."],"urls":{"canonical":"https://secwatch.observer/filing/0001628280-22-004898","json":"https://secwatch.observer/filing/0001628280-22-004898.json","markdown":"https://secwatch.observer/filing/0001628280-22-004898.md","text":"https://secwatch.observer/filing/0001628280-22-004898.txt","edgar_index":"https://www.sec.gov/Archives/edgar/data/1743725/000162828022004898/0001628280-22-004898-index.htm","edgar_primary_document":"https://www.sec.gov/Archives/edgar/data/1743725/000162828022004898/gdyn-20220303.htm"},"model":{"generated_by":"deepseek-v4-flash:cloud@v2","generated_at":"2026-06-27T02:04:31.516589+00:00"},"review":{"review_status":"machine_generated","human_reviewed":false,"corrected":false,"correction_note":null,"correction_timestamp":null,"superseded_by":null,"related_filings":[]},"source_grounded_claims":[],"license":"Source filings: public domain (SEC EDGAR). Summaries (headline + bullets): CC-BY-4.0; attribute https://secwatch.observer"}