Categories
Analysis Analytics Business Innovation

Behind the Scenes: The Phases of “The King’s Pantry” Dataset

When I started The King’s Pantry, I wanted it to be more than just another themed dataset. My goal was to build something that mirrors real ERP and retail systems, while still being fun and creative. Every decision, from the product hierarchy to tax logic, came from things I’ve actually seen as an analyst in retail and distribution.

So while this project lives in a fictional Westerosi universe, it’s still rooted in business reality — complete with purchase costs, margins, vendors, customers, and sales channels that behave like a true mid-market grocery retailer.


I started with an ERP-inspired hybrid schema, structured like a star for analytics (for my PowerBI tutorial) but modeled like a snowflake behind the scenes (for SQL practice).


It’s the same foundation used in real retail and distribution systems — designed to evolve and scale just like one.

The focus for Launch 1 was on external stakeholders — the data that drives customer experience, product management, and vendor relationships.

💡 Real-world note:
In many companies, analysts rarely build the fact tables themselves, those are usually prepared by a data engineering or business intelligence team as part of the data warehouse. At least that was my experience so far in my career.


But in smaller organizations (or legacy environments), you often don’t have that luxury. You’re pulling granular transactional data straight from systems like SSMS, aggregating it manually in Excel through Power Query, or reshaping it in Power BI before analysis.

Call me old school, but I actually prefer the latter because it gives you more freedom — and it keeps you closer to the raw story in the data.

The challenge with pre-built fact tables is that they’re often fully aggregated, and the engineering team may keep the backend logic private behind RLS or security measures — so you can’t see how the metrics are actually calculated.

The biggest problem I’ve personally had with this were all the debugging moments I’d have when making DAX measures. If a KPI wasn’t calculating correctly and I was using a calculated field or column where I couldn’t see the actual formula (typically coded in SQL), I’d literally pull my hair out because it meant I’d have to confirm the backend with the data engineering team.

That’s why this dataset is designed to simulate both sides — the structured back end (for those practicing SQL joins and normalization) and the simplified reporting layer (for dashboard modeling and storytelling).

For Launch 1, I focused on the external stakeholders of the realm — the data that drives customer experience, product management, and vendor relationships.

  • 540 SKUs across 8 major categories, including 40 new “Apothecary & Household Essentials.”
  • Added item_taxonomy_1 and item_taxonomy_2 to model product hierarchies used in analytics tools like Power BI.
  • Included boolean flags (is_active_flag, is_stock_item, is_discontinued_flag) so analysts can simulate filtering and segmentation logic in SQL.
  • Introduced private_label_tier and the private brands dimension (The King’s Pantry Select, Smallfolk Essentials, and Crown Reserve) to mirror how real retailers manage exclusive product lines. Think of Sam’s Club ‘Member’s Mark’ items or Costco’s ‘Kirkland Signature’.
  • Integrated vendor_id and brand_id for relational integrity, modeling the link between purchasing and merchandising systems.
  • Embedded freight cost within landed_cost, reflecting real-world pricing where freight is often factored into total COGS.
  • Represents all supplier entities, including wholesale producers, guild distributors, and artisan makers.
  • Added preferred_vendor_flag to enable conditional join exercises and performance reporting.
  • Designed to link one-to-many with dimProduct for realistic vendor-to-product mapping.
  • Unified B2C (consumer) and B2B (business) customer logic into a single dimension (reflecting how many ERP systems track both under one master table).
  • Added first_name / last_name for individual consumers, while allowing nulls for business accounts.
  • Added business attributes such as tax_id, payment_terms, and credit_limit to represent wholesale clients.
  • Introduced a parent–child hierarchy (parent_customer_id) for roll-ups, allowing analysts to practice self-joins (e.g., aggregating sales by parent guild).
  • Localized addresses into Westerosi equivalents for immersive storytelling while maintaining analytic structure:
    • manor_or_quarter (Address Line 1)
    • holdfast_name (Address Line 2)
    • town_or_keep (City)
    • realm (State/Region)
  • Header-level table containing one record per sales transaction.
  • Uses channel-coded order IDs for realism and practice with pattern-based joins:
    • RP-###### for Raven Prime (online)
    • MS-###### for Market Stall (in-store)
    • GS-###### for Guild Supply (wholesale)
    • CC-###### for Court Catering (institutional)
  • Attributes include:
    • sales_order_id, customer_id, order_date, channel_code, subtotal, tax_amount, discount_amount, total_amount.
  • Designed to teach time intelligence, discount calculations, and channel-based segmentation.
  • Line-level table containing individual product sales.
  • Includes sales_order_id (FK), product_id, quantity, unit_price, discount, and calculated line_total.
  • Ties back to dimProduct for category insights and dimVendor for supplier contribution analysis.
  • Structured to enable exercises on joins, aggregations, and performance metrics such as margin by product, vendor, or category.
  • Lookup table for human-readable translation of sales channels.
  • Codes: CodeChannel NameReal-World EquivalentRPRaven PrimeeCommerceMSMarket StallIn-store / POSGSGuild SupplyB2B / WholesaleCCCourt CateringInstitutional / Catering
  • Created to model data normalization and to demonstrate how dimension lookups support clean reporting layers in BI tools.

Together, these tables form a scalable base that mirrors a real ERP data warehouse — ready for expansion into Phase 2 (internal stakeholders) with future additions such as:

  • purchase_orders, purchase_order_details, buyers, and buylines.

The brand table brings together both private labels and vendor-supplied brands — a key part of modeling how real grocery and retail businesses differentiate their assortments.

  • Private Labels:
    These are the in-house lines owned by The King’s Pantry itself. Each one serves a different tier of customers, from value to luxury.
    • Smallfolk Essentials → everyday affordable staples (Value Tier)
    • The King’s Pantry Select → premium curated goods (Premium Tier)
    • Crown Reserve → luxury imports and vintages (Luxury Tier)
  • Vendors:
    External suppliers and trade guilds from across the realm — from House Tyrell Provisions (grains and produce from The Reach) to Iron Isles Fisheries (smoked herring and seafood). These represent the merchant partnerships that give the dataset realism and variety.

The brand dimension links directly to the product table via brand_id, which lets analysts:

  • Compare private label vs. national brand performance.
  • Analyze vendor contribution by region.
  • Build margin and assortment reports (e.g., private label share by category).

By separating brand logic from vendor and product attributes, this structure mirrors how real ERP and category management systems track brand hierarchy and ownership.

Fun fact: This addition came from a real-world insight when I did some research — many analysts report that over 25–40% of grocery assortment belongs to private label. Modeling this helps simulate the balance between in-house innovation and vendor partnerships.

This architecture allows The King’s Pantry to evolve naturally into a complete business system: from procurement to customer sale. All in all, as I look back at these tables and see how I created it, it subtly showcases my experience as a pricing analyst, supply chain analyst, and data analyst (which is pretty awesome to see).


Initially, I planned for 10 items per category (similar to my Harry Potter dataset) but to make sales insights more realistic, I scaled to ~540 SKUs with weighted category distributions that reflect how grocery assortments work in the real world:

I also created three private label tiers to simulate real-life pricing and margin structures:

  • Smallfolk Essentials (Value) – Lower price, lower margin, everyday goods
  • The King’s Pantry Select (Premium) – Balanced price and margin
  • Crown Reserve (Luxury) – High margin, low volume

To teach financial analytics concepts, each product includes:

  • Purchase cost
  • Landed cost (includes freight markup)
  • Base price
  • Margin percentage

In real-world ERP systems, freight is often embedded in landed cost, so we replicated that. This teaches analysts how to work with true cost of goods sold (COGS) data and margin analysis in SQL or Power BI.


With the help of my AI Wizard (shout out to you ChatGPT 🫶), we generated 10,000 sales orders and ~50,000 order lines using:

  • Weighted category probabilities per channel (e.g., more beverages online, more produce in-store).
  • Sales channels that bring the world to life and mirror real operations:
    • 🦅 Raven Prime – Online/eCommerce
    • 🏪 Market Stall – In-store / POS
    • ⚙️ Guild Supply – B2B wholesale
    • 🍽️ Court Catering – Institutional / event clients

Each order ID was given a prefix code (RP-, MS-, GS-, CC-) to simulate how multiple systems generate records differently — just like in real ERP environments where analysts must decode naming conventions.

We also introduced minimum order thresholds for B2B channels, reflecting wholesale minimums (e.g., 300 gold dragons per order).


As a reflection tool for myself and a resource for those who may use the dataset, I included a /docs folder with explainers for:

  • Category weighting logic
  • Discount and tax rules
  • Customer segmentation
  • Channel mapping

This gives learners an inside look into how analytical datasets are actually built and maintained — the “why” behind every number.


Even naming conventions tell a story.

“RP-001043” doesn’t just mean an order — it means an eCommerce transaction with a digital payment, possibly from a loyalty shopper.

By working with this dataset, analysts can learn:

  • How star schemas are modeled in analytics projects.
  • How to trace data lineage from customer to product to sale.
  • How to clean, filter, and join real-world imperfect data.
  • Why documentation and metadata design matter as much as visuals.

I know this might seem like an area that’s easy to overlook, but I made sure to include proper naming conventions to show analysts just how critical this is to a healthy database.

Out in the real world (believe it or not), there are fully functioning businesses with god-awful naming conventions — or no process at all.

What does that mean?
It means garbage data eventually piles up in the system, especially if no one’s maintaining it.

And you know what garbage data does?
It makes things harder for analysts — like when you have five versions of the same product, all still active, all with different names, and each with its own pricing and sales history.

So what do we analysts hate? Let’s all say it together: GARBAGE DATA.

That’s when you find yourself in full-on “WTF” mode — retracing logs, comparing timestamps, and trying to figure out which item actually belongs in your report.

Sorry, I had some traumatic flashbacks and my coffee is just kicking in 😂

Alas, tangent done.



I started The King’s Pantry because I wanted to challenge myself to see if I could create a fully functioning dataset from scratch that feels real. Somewhere along the way, it turned into a teaching tool — not just for others, but for me too.

Building this dataset reminded me that data modeling is both art and architecture — creative, detailed, and deeply human.

I also found myself reflecting on the sheer complexity of building even a simulated dataset. Between balancing relationships, crafting believable hierarchies, and maintaining business logic across every table, it gave me a whole new level of respect for the datasets we take for granted — like AdventureWorks or Northwind.

Those projects were built by full teams; The King’s Pantry was built by one analyst — and, well, a very helpful AI wizard 🧙‍♂️. It reminded me how much thought, iteration, and testing goes into bringing a fictional world to life with data.

I may not have the resources of a Microsoft dev team, but what I do have is the curiosity and creativity to simulate the process, piece by piece. And honestly, I’m proud of that. And it’s so much fun (sorry not sorry for being a nerd)!

If I’ve learned anything from this project, it’s that data modeling can be as personal as it is technical. Every column tells a story, every join reflects a relationship — and somewhere between the tables and constraints, I found pieces of my own journey stitched quietly into the schema.

Ardonna •ᴗ•

Ardonna Cardines Avatar

Categories
Analysis Analytics Business

ETL vs ELT: Why Knowing the Difference Still Matters

When I first learned about ETL (Extract, Transform, Load) during my undergrad (2017–2019), it felt like the golden rule of data movement.

Fast forward to my master’s program (2023–present), and suddenly… it’s ELT. Same letters, different order, but a completely new approach to data processing.

So, what changed?

FROM ETL TO ELT

ETL ruled the traditional data warehouse world — where storage was expensive and processing power was limited.
Transformation had to happen before data was loaded into the warehouse.

But as cloud storage (like Snowflake, BigQuery, and Azure Synapse) became faster and cheaper, the paradigm flipped.
Now, data gets loaded first, then transformed inside the warehouse itself. Hence: ELT.

It’s tempting to think ETL is outdated, but it’s not gone, just evolving.

Many companies today still rely on legacy systems or are in the middle of migrating to cloud environments. Others are merging with businesses already using ELT.

As an analyst, you might encounter:

  • Nightly ETL batch jobs in SSIS
  • Hybrid pipelines with external transformations
  • Full ELT stacks using dbt + Snowflake

Understanding both gives you a real-world edge. You’ll walk into a job ready to troubleshoot data flows, explain performance issues, or even guide migrations, not just run queries.

In one of my data analyst roles, I experienced this firsthand. LinkedIn is full of seasoned analysts offering advice about “what it’s really like” out there, but most of those conversations center around big tech companies, where systems are already deep into the ELT phase.

The reality?

Not everyone works in — or even wants to work in — big tech.
Many analysts thrive in industries that keep the world running:
🏥 Hospitals
🏦 Financial institutions
🎓 Higher education
🏪 Everyday businesses and distributors

And here’s the truth no one talks about:

Many of these organizations still rely on ETL, where nightly batch jobs quietly run behind the scenes to keep operations moving.

Some are just beginning to make the shift toward cloud-based storage, balancing modernization with legacy systems that have been around for decades.

✨ That’s why knowing both ETL and ELT isn’t just a technical advantage — it’s a career advantage. It allows you to step confidently into any environment — whether it’s a cutting-edge cloud setup or a legacy warehouse that still hums at midnight.

When you look at job descriptions, what do you see?
Azure. Snowflake. ERP. DBT.

These aren’t just buzzwords — they’re clues. They reveal the data ecosystem that drives a company’s analytics workflow.

Most analysts focus on the tools (SQL, Python, Power BI), but it’s the foundation that makes you stand out. Knowing how and where data is stored, structured, and transformed separates someone who writes queries from someone who designs solutions.

Whether it’s ETL or ELT, what matters most is understanding how data moves — and why that matters.

Ardonna •ᴗ•

Ardonna Cardines Avatar

Categories
Analysis Analytics Business Decisions Strategy Thoughtful Thoughts

House of Data: Data Professionals as Targarayens and their Dragons

So… I swear I started this blog to share my data projects and build my portfolio. Somewhere along the way, I accidentally created an entire Targaryen-inspired data meme series instead. 😅

Because honestly? Data professionals are a little like Targaryens.


We’re passionate, fiery, and sometimes one bad join away from chaos. Our tools are our dragons — powerful, unpredictable, and capable of absolute brilliance or disaster, depending on how we use them.

So in true Mercury Musings fashion, meet the House of Data…

🩸 Rhaenyra Targaryen — The Data Analyst
Turns chaos into clarity, one query at a time.

🐍 Daemon Targaryen — The Data Engineer
Builds the pipelines that keep the realm alive.

☀️ Aegon II Targaryen — The KPI Executive
Rules by vanity metrics and victory charts.

🧠 Aemond Targaryen — The AI Strategist
Sees every move before it happens — and still plays to win.

🔮 Helena Targaryen — The Predictive Analyst
Sees patterns others can’t — the data whisperer of the realm.

👑 Viserys Targaryen — The Data Architect
Builds empires of tables and schemas that outlive kings.

💜 Rhaenys Targaryen — The Data Governance Lead
The queen who never was — but still led.

⚔️ Baela Targaryen — The Data Operations Manager
Keeps the data realm running — one project at a time.

If you were in the House of Data, which one would you be — the analyst, the engineer, the strategist, or the dragon?

Ardonna •ᴗ•

Ardonna Cardines Avatar

Categories
Analysis Analytics Business Tips

Tutorial: SQL Joins Explained Through Tarot

I re-imagined SQL Joins into tarot cards! If you missed the original card deck reveal see [here].

This is part two of my little project and we dig a little more into the different joins.

DISCLAIMER 🔮

Not every database system supports all join types the same way. Think of them like tarot archetypes: some are the classic cards you’ll always pull, some are special but still standard, and a few are rare but powerful when you know them.

In this post, I’ll be discussing the nine different joins. Yes, nine.


THE CORE 4

These are the backbone of SQL joins — supported across SQL Server, MySQL, PostgreSQL, Oracle, and almost every bootcamp, tutorial, or textbook.

Check out one of my very first blog posts on demystifying the core 4 [HERE].


THE STANDARD BUT LESS COMMONLY USED DUO

If you ever find yourself in a situation where you weren’t expecting so many extra rows, make sure you’ve specified the table using ON.

If you neglect this, SQL won’t know what table you’re referring to and will default to a CROSS JOIN, hence the extra five million rows you didn’t ask for.

This is especially important in real business environments where there are A LOT of dimension tables within the database.

CROSS JOINS are a common pitfall. In some dialects (MySQL, SQLite), if you write FROM A, B without a join condition, it behaves like a CROSS JOIN.

In others (like PostgreSQL), you’re required to use CROSS JOIN explicitly, or else FROM A, B is just shorthand for the same thing.

Because it creates a Cartesian product, it’s supported everywhere but usually taught as a “special case” rather than part of the “core 4” joins.


Eventually, you will come across a data pull or ad-hoc request where you’ll need to do a SELF JOIN to pull specific data. This is especially common in business entities where there’s a hierarchical structure or parent-child relationship stored in a single table.

For example, one of the most likely places you’ll find yourself using a SELF JOIN is when dealing with customer accounts in an ERP. This is where I encountered and discovered this join type.

In ERPs or CRMs, you often have one customer account with multiple relationships:

  • Customer ID = the main account
  • Bill-To ID = where invoices are sent
  • Ship-To ID = where products are delivered

All three may live in the same Customers table.

A self join lets you pull the parent customer name alongside the child account details, so you can distinguish billing entities from shipping ones.


the red flag

NATURAL JOIN → Supported in Oracle, PostgreSQL, and MySQL, but not SQL Server (SSMS).

It auto-matches columns with the same name — which feels magical but can be dangerous in production since it might pull in new columns you didn’t expect. That’s why it’s rarely used or covered in tutorials.

Like, sorry Mr. Houdini but you’re kind of a red flag.

If someone later adds a new column with the same name, your join condition changes without you realizing it.

That’s why NATURAL JOIN is rarely taught or used day-to-day. Still, it’s a valuable teaching tool to understand SQL’s quirks — the “Magician’s trick.”

Side note: this is how I feel about natural joins…


THE POWERFUL JOINS YOU PROBABLY DIDN’T REALIZE WERE JOINS…

Not every SQL dialect has SEMI or ANTI as direct keywords.

Most SQL users learn EXISTS / NOT EXISTS and IN / NOT IN as subquery filters, not as “join types.” This is how I learned. But if you dig deeper, EXISTS, NOT EXISTS, IN, and NOT IN are ways to implement SEMI JOIN and ANTI JOIN logic.

In our tarot deck, I call them the “Rare Cards” because they’re not always explicit supported like they are in PostgreSQL or Oracle.

For most of us junior or mid-level SQL Server/MySQL folks, we see them as filters (because I still certainly do) but the more advanced SQL masters out there can probably agree that under the hood, EXISTS / NOT EXISTS and IN / NOT are ways to implement that semi and anti join logic.


why i included them all

Because why not?

Most people only ever see the “core 4” (and maybe cross join). But including Self, Natural, Semi, and Anti shows the full spread of how SQL handles matches and non-matches. That’s why my Tarot deck has 9 archetypes instead of 4 or 5.

And it makes this fresh new approach of learning joins WERK.

Now let’s start the tutorial!


tarot-themed sample tables

We’ll use a Tarot Shop as our example:


the tarot join spread

USE CASE: Combine everything from both customers and readings.

SYNTAX

SELECT c.customer_name, r.spread_type, r.card_drawn
FROM Customers c
INNER JOIN Readings r
ON c.customer_id = r.customer_id;

RESULTS: Returns rows where both tables match (Luna and Sol with their readings).


USE CASE: List all customers, even if they never booked a reading.

SYNTAX

SELECT c.customer_name, r.spread_type, r.card_drawn
FROM Customers c
LEFT JOIN Readings r
ON c.customer_id = r.customer_id;

RESULTS: All customers show up; Astra and Terra appear with NULLs.


USE CASE: List all readings, even if no matching customer exists.

SYNTAX

RESULTS: All readings appear; the Horoscope Reading has NULL for the customer.


USE CASE: Combine everything from both customers and readings.

SYNTAX

RESULTS: Shows Luna, Sol, Astra, Terra, and the null customer.


USE CASE: Generate all possible customer–reading pairings.

SYNTAX

RESULTS: 16 rows (every customer with every reading).


USE CASE: Compare customers to each other (e.g., same zodiac sign).

SYNTAX

RESULTS: Pairs of customers with matching zodiac signs.


USE CASE: Automatically match tables by columns with the same name.

SYNTAX

RESULTS: Same as INNER JOIN, but SQL chooses join columns automatically.


While NATURAL JOIN feels like magic, many SQL developers avoid it in real-world projects. Here’s why:

  • Hidden behavior: It joins on all columns with the same name — sometimes more than you expect.
  • Future risk: If a new column is added later with the same name in both tables, your query’s behavior can silently change.
  • Portability: Not every SQL engine supports it (e.g., SQL Server SSMS does not).

NATURAL JOIN can feel magical, but in production it’s risky.

  • Your SQL isn’t just practice anymore — it powers dashboards, apps, or business reports.
  • Mistakes can affect decision-making, break dashboards, or even crash systems.
  • Small schema changes (like someone adding a new column with the same name in both tables) can suddenly change results without anyone realizing it.

This is why it is often discouraged or rarely mentioned by most SQL instructors.


USE CASE: Find customers who have at least one reading (but don’t list the reading details).

SYNTAX

RESULTS: Luna and Sol only.


USE CASE: Find customers who never had a reading.

SYNTAX

RESULTS: Astra and Terra only.


Together, these 9 joins form the Tarot SQL Join Spread:

  • INNER JOIN → The Matchmaker (true matches)
  • LEFT JOIN → The Caretaker (include everyone left)
  • RIGHT JOIN → The Ally (include everyone right)
  • FULL OUTER JOIN → The World (wholeness)
  • CROSS JOIN → The Trickster (endless possibilities)
  • SELF JOIN → The Reflection (introspection)
  • NATURAL JOIN → The Magician (automatic shortcut)
  • SEMI JOIN → The Seer (exists, but hidden)
  • ANTI JOIN → The Hermit (exclude what doesn’t belong)

And there you have it — the complete Tarot SQL Join Spread.
From The Matchmaker (INNER JOIN) to The Hermit (ANTI JOIN), each card reveals a different way tables connect, overlap, or stand alone.

My hope is that next time you write a query, you’ll picture the card: Do I want true matches, inclusivity, solitude, or a little chaos? That little image might just help the SQL logic click faster.

I’d love to hear from you: Which join (or tarot card) do you use most in your daily work? Share in the comments, and let’s see which archetypes get drawn the most often.


Ardonna •ᴗ•

Ardonna Cardines Avatar

Categories
Analysis Analytics Business Tips

5 SQL Queries Every Analyst Should Know

SQL is one of the most important tools in any analyst’s toolkit. Whether you’re pulling transactional sales data, cleaning messy records, or preparing insights for dashboards, SQL is often the very first step.

If you’re just getting started, here are the five SQL queries that will cover 80% of your daily work as an analyst.


SELECT

The Foundation

This is your bread and butter: pulling data from a table.

Think of SELECT as your “give me the data” query. It’s the most basic — and the most powerful — command in SQL.

CODE SNIPPET:


WHERE

Filtering Results

Analysts rarely want all the data. WHERE lets you focus on what matters.

CODE SNIPPET:

For example, the query above pulls only shipped orders after January 1, 2025. Trust me, this is especially important when you’re working with millions of records that go back years. You do not want to be poring over a list that seems infinite and neither does the recipient who may have requested the ad-hoc report from you.

WHERE can be used to filter by categories or conditions as well.


GROUP BY

Summarizing Data

Aggregation is where insights begin. GROUP BY helps you summarize large datasets.

CODE SNIPPET:

Now you can see which products have the most orders. Perfect for identifying bestsellers or analyzing trends.


JOIN

Combining Tables

Most real-world data lives in multiple tables. JOIN lets you stitch it together.

CODE SNIPPET:

This connects customer details with their order history. Almost every analytics project requires joins at some point.

JOIN is often the most confusing query that beginners come across since there are different types. It can get confusing but don’t let that intimidate you, I’ll cover the different types of joins in a separate post 🙂


CASE

Adding Logic to Queries

Sometimes you need to create quick categories without exporting to Excel or Python. That’s where CASE comes in.

CODE SNIPPET:

This example creates a new column that classifies orders as “High Value” or “Standard.”

WRAPPING UP

These five SQL queries are the building blocks of data analysis. Master them, and you’ll unlock the ability to:

  • Extract exactly the data you need
  • Summarize and explore patterns
  • Connect multiple sources together
  • Add quick insights directly in SQL

Once you’re comfortable with these basics, you’ll be ready for more advanced techniques like CTEs, window functions, and query optimization.

Ardonna •ᴗ•

Ardonna Cardines Avatar

Categories
Analysis Analytics Growth Notes Thoughtful Thoughts

Why Mercury Musings?

Mercury rules Virgo, and as a Virgo, I’ve always been detail-oriented, analytical, and curious about how things connect. If you asked me ten years ago that my career would revolve around data and analytics, I wouldn’t have believed you. I was a pre-nursing major in college and that first year, I realized the medical field wasn’t for me. By sophomore year, I was lost trying to figure out a new major to switch to and I spent weeks trying to decide until I came across Information Management.

I know, soooooooooo interesting and cool right?!

Tbh, I don’t remember exactly how I discovered it but I remember part of my decision stemmed from taking a business class that all freshman students were required to take. It was an introductory course to using tools like Excel and PowerPoint. Out of all the classes I took my freshman year, that was the one I enjoyed the most.

It wasn’t until my senior year of my undergrad that I finally realized I was on the right path and doing something I enjoyed. Funnily enough, it wasn’t until a couple of years ago that I made the connection between my sun sign (Virgo) and the field I ended up in — ha ha ha. If you’re even a *little* into astrology, then you’d know that Virgo is ruled by Mercury.

Which leads me into the next part: my blog name.

the name: mercury musings

I’ve never been one for boring usernames or titles — I’ve lost count of all the moments in my academic career where I’d sit down to write an essay or report and I’d spend an absurd amount of time just trying to think of a title. If you’re a millennial who grew up watching SpongeBob, this is me just thinking of a title:

Any who, back to why I chose the name. I wanted something unique and creative that would play on both my personality and professional style:

Mercury = planet of communication, detail, and intellect

+

musings = casual reflections, notes, and insights.

Together, Mercury Musings reflects both my professional mindset and my personal curiosity: thoughtful, precise, and always seeking connections.

And if you’re a Sailor Moon fan, you can already guess which character speaks to me the most:

what you’ll find here.

Mercury Musings is a place where I’ll share:

Tips + Tutorials — breaking down concepts and techniques in data science and analytics.

Project Reflections — walking through real-world analyses, from dashboards to clustering models.

Insights — thoughts on decision-making, detail-oriented work, and the learning process.

My goal is to write in a way that’s approachable, useful, and a little personal — mixing the precision of analytics with the curiosity that Mercury inspires. And I probably won’t be able to help myself from throwing in a meme or two or many…

Fair Warning: You’ll probably even see me post about random non-data related things that I think are cool or stuff that I’m obsessed with like a new book, my favorite brand of yarn, my go-to purse, or my new favorite game •⩊•

looking ahead.

For now, this space is a blog — a place for me to write, reflect, and share. Over time, it will grow into a larger portfolio, with project showcases, teaching resources, and eventually research.

In other words, Mercury Musings is not just about where I am today, but where I’m headed. So —

welcome.

If you’re interested in analytics, detail-driven decision-making, or simply enjoy thoughtful yapping from a Virgo mind, I invite you to follow along.

Welcome to Mercury Musings.

Ardonna •ᴗ•

Ardonna Cardines Avatar