The problem
The month-end close was mostly manual. COGS got assembled by hand from 13 separate 3PL feeds, Stripe data and a bill of materials that only knew today's costs. Burn pacing, VAT filings, vendor onboarding and AP reminders were spread across Excel, Ramp and NetSuite. Then the accounting lead left mid-year, and a lot of the know-how left with her.
What we did
We built dbt models on Snowflake that pull it together: Stripe, all 13 3PL feeds, freight and customs costs, and a bill of materials that keeps its history. Those feed a COGS model and a contribution-margin model in Looker. Then we automated the recurring jobs: journal entry prep, a VAT filing tool, burn pacing reports, AP reminders and a NetSuite-to-Ramp vendor sync. Nothing posts until a person approves it.