helpThe type specification has too many types for the function

I believe you just place the type names in the param spec rather than the variable names themselves.

so

csv_data(past_days :: non_neg_integer(), team_id :: String.t()) :: iodata()

would be

csv_data(non_neg_integer, String.t) :: iodata

I’ve looked at typespec guides, but have not used dialyzer heavily. Still, might be worth a try.