What Square Wasn't Telling Me About My Coffee Shop

I analyze data for a living. So why did it take me six months to realize I was losing money on my best-selling drink?

Here's the embarrassing truth: I'm a data scientist who opened a coffee shop, and for six months, I had no idea what was actually happening with my money.

Every morning, I'd check the Square dashboard on my phone. Sales looked good. The line was long. Tips were flowing. My business felt successful. Square would send me these cheerful little notifications: "You're up 12% from last week!" I'd smile, pour another latte, and get back to work.

The cognitive dissonance was brutal. During the day, I'd help clients build analytics pipelines and dashboard systems. At night, I'd trust a green number on my phone to tell me if my business was healthy. I knew better. I just didn't have the energy to look deeper.

The Wake-Up Call

It happened during a slow Tuesday afternoon. I was reconciling my bank statements and noticed something odd: my actual deposits were consistently lower than what I remembered seeing in Square. Not dramatically lower—just enough to nag at me.

So I did what I should have done months earlier. I exported my Square transaction data and opened it in a spreadsheet.

The CSV file had 47 columns. Most of them were empty or cryptic. But buried in there were columns I'd never noticed in the dashboard: processing_fee, net_amount, fee_percentage, payment_method.

"That's when I realized: Square shows you revenue. What you actually need to see is profit."

The Processing Fee Surprise

I started with a simple question: How much am I actually paying Square?

I knew the advertised rate: 2.6% + 10¢ per tap, dip, or swipe. Sounds simple enough. But when I summed up my actual processing fees for the month, I was paying closer to 3.1% of revenue. Why?

Turns out, keyed-in transactions (phone orders, customer typos requiring manual entry) cost 3.5% + 15¢. Certain business cards triggered higher interchange fees. And every single refund? That 10¢ fee doesn't come back.

My best-selling item was a $4.50 pour-over. Premium beans, carefully brewed, customers loved it. My cost was $1.20 per cup. Solid margin, right?

Except after the Square fee ($0.22), I was netting $3.08 per cup. My actual margin was $1.88, not the $3.30 I'd been calculating in my head. For six months, I'd been thinking about my business with numbers that were 43% too optimistic.

The Tip Pattern I Didn't See Coming

Once I started digging, I couldn't stop. Next question: What's happening with tips?

I had always assumed tips were pretty random—some people tip well, some don't, it averages out. But when I grouped my transactions by payment method and time of day, I saw something fascinating.

Credit card tips at the morning rush (7-9 AM): averaged 18%.
Credit card tips at afternoon lull (2-4 PM): averaged 23%.
Apple Pay tips anytime: averaged 12%.

My theory? Morning customers are rushed and tap the first suggestion (15%). Afternoon customers have time to think and often bump it up. Apple Pay users face their phone—not my barista—so the social pressure to tip generously just isn't there.

This wasn't about judging anyone's tipping habits. It was about understanding my actual revenue stream. When I calculated hourly revenue per staff member, those "slow" afternoon hours were actually my most profitable, even with lower transaction volume.

What Square's Dashboard Doesn't Show You

Square gives you great top-line metrics. Daily sales, popular items, busy hours. But here's what it doesn't surface easily:

I'm not blaming Square. Their dashboard does what it's designed to do: make daily operations smooth and give you a quick health check. But if you want to actually optimize your business, you need to go deeper.

What I Changed

Armed with actual data, I made some surprisingly simple adjustments:

Repriced my pour-overs to $4.95. Customers didn't blink. That extra 45¢, minus fees, added $150/week to my bottom line.

Started encouraging Apple Pay and tap payments. Faster transactions, lower error rates, fewer keyed-in charges at the higher fee tier.

Changed my refund policy slightly. Instead of automatic refunds for minor complaints, I started offering a free drink next visit. Customers were happier (free feels better than a refund), and I stopped hemorrhaging processing fees.

Scheduled my most experienced barista for afternoon shifts. Those slower hours had higher per-transaction value once I factored in tips. Made sense to put my best person there.

None of this was revolutionary. But I couldn't have done any of it without actually looking at my transaction-level data.

The Irony Isn't Lost on Me

I spend my days building analytics tools, and I almost torpedoed my own business by trusting a dashboard and not digging into the raw data. Classic case of the cobbler's children having no shoes.

So I built what I needed: straightforward analysis tools that take Square transaction exports and show you what's actually happening. No PhD required, no 47-column spreadsheets to decode. Just clear answers to questions like "How much am I really making on this product?" and "Which payment methods are costing me the most?"

If you're running a brick-and-mortar business with Square, Stripe, or any payment processor, I'd encourage you to do what I should have done from day one: export your data and actually look at it. You might be surprised by what you find.

Want to see what your Square data is actually telling you? Try our Sales Overview or Payment Analysis tools. Upload your transaction export and get insights in minutes, not months.

And if you find something surprising, let me know. I'm still learning too.