Validate incoming file rows and load valid records into a database table.
Check sheet rows against table fields before loading new records.
Your reporting table gets valid new spreadsheet rows every 15 minutes, with import counts and row-specific fixes waiting in the sheet.
Load matching CSV files and log imports that fail.
Keep your PostgreSQL table current as CSV files arrive, with a row count or a clear reason when an import needs attention.