One row per service line, with each row broken out across 24A (date), 24B (POS), 24D (procedure code), 24E (diagnosis pointer), 24F (charges), 24G (units or days), 24H (EPSDT / family-planning code), 24I (ID qualifier), 24J (rendering provider NPI).
Columns are filled out of order across rows, which breaks the line-by-line parsing some clearinghouses still require. Sub-columns 24H–24J are ignored on dental claims the payer actually checks.