I have no special talents. I am only passionately curious.” 

-Albert Einstein

July 2026
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • In 2022, my advisor and I published a paper in Alzheimer Disease and Associated Disorders asking a pointed question: How often are older adults with Alzheimer’s disease prescribed antipsychotic medications in ordinary outpatient care? We wanted to know because antipsychotics carry an FDA black box warning for increased mortality in elderly patients with dementia. Additionally, the Beers Criteria – the standard reference for potentially inappropriate prescribing in older adults – flags them as potentially harmful in this population.

    Using the CDC’s National Ambulatory Medical Care Survey (NAMCS), a nationally representative sample of outpatient office visits, we found that visits by older adults with Alzheimer Disease had 6.81 times higher odds of an antipsychotic prescription than visits without it. Furthermore, despite the very serious black box warning and guidelines recommending against their use, almost 10% of all visits among people with Alzheimer’s disease included an antipsychotic medication.

    These results were pretty interesting, but getting those numbers was not fast. NAMCS is a public-use file, but “public” does not mean “easy.” You learn what the variables mean from a separate documentation file. You define the population, apply inclusion/exclusion criteria, and hand-code which drugs count as antipsychotics. And, because NAMCS is a complex survey with weights, you fit the models with survey-specific methods. It was boring, tedious, and frustrating, but a valuable learning opportunity.

    I’ve written before that my AI tools are basically grad students. This time, I gave the good one a comps exam.

    I’ve been playing around with Claude Science over the past couple of weeks and have been impressed. An idea occurred to me that made me think, Let me really test how good this is.

    This is the exact prompt:

    Just curious of something. This is just for funsies, but this is a study I did with NAMCS data a while ago. I wanted to see if you are able to replicate it? https://pubmed.ncbi.nlm.nih.gov/35700324/

    That’s it. I did not hand over my data. I did not share my code. I did not walk it through my methods. I gave it a citation on Pubmed to see what it could do.

    Y’all… Claude went and pulled the raw NAMCS files off the CDC’s server. It found the documentation, parsed the data, and reconstructed the variables. It worked out the drug classification hierarchy on its own. It checked its logic against the official documentation as it went. It applied the survey weights and ran a survey-weighted logistic regression.

    This first round was pretty impressive on its own. Claude got results pretty similar to mine, but I wanted to see if we can do even better.

    Round 2

    I knew Claude didn’t have access to the manuscript, so I was curious how his methods in the first round differed from mine. I gave Claude some more detail of our actual methods so that he could more truly replicate my study. He did his thing, re-ran the numbers, and got much closer to my actual results. There were a few key differences from the first run:

    • Case definition. NAMCS has a checkbox coded “Alzheimer’s disease/Dementia.” Claude used it directly. Ironically, back when I was a grad student myself, I had also wanted to use it to take the easy way out. However, after talking with my wise advisor, we had defined Alzheimer’s using diagnosis codes from the visits alongside that variable. We also excluded certain visits such as those with a diagnosis for Lewy Body Dementia.
    • Exclusions. In addition to above, we removed visits involving cancer and psychoses as the benefit of antipsychotics in those cases often outweigh the risk. The AI’s first pass didn’t do this.
    • Drug coding. My advisor and I are pharmacists and we coded our antipsychotic list manually. The AI used the dataset’s built-in therapeutic categories. It is a reasonable, more automated choice, but it lacks clinical judgment.
    • Comorbidity coding. We adjusted for comorbidity with a modified Deyo Charlson Comorbidity Index, hand-built from the diagnosis codes. It’s more tedious, but a validated approach to measuring comorbidities in our field. Claude used the dataset’s raw count of chronic conditions. It’s not technically wrong (and I think I also initially wanted to do this to take the easy way out), but counting conditions is not the same as weighting them.
    • And there were a few others, but you made it this far without falling asleep.

    After Claude ran round 2, the replicated results got even closer:

    • My weighted Alzheimer’s population: 15,471,125 visits. Claude’s replication: 15,585,727. A difference of 0.7%.
    • My raw Alzheimer’s visit count: 461. Claude’s count: 466.
    • Odds of polypharmacy: 1.15. Claude’s odds: 1.17.
    • My adjusted odds of antipsychotic medication: 6.81. Claude’s: 5.45. (both statistically significant)

    AI is Getting Good, Very Good

    Consider me thoroughly impressed. I didn’t do this just to see if my study held up (but I am glad it did). It’s what this tool did, unsupervised from just a PubMed link, that had me blown away. With Claude Science, you can watch it go through the files, write the Python code, describe its thought process, and even double-check its own work in real time. It was genuinely interesting to watch.

    But it also scares me a bit. If AI can rebuild a published study in such a short amount of time with minimal prompting, then someone can also produce a study in the same time frame. You can throw out an idea, let it take the reins, and walk away with something wearing all the costume of rigor: plausible methods, survey weights, confidence intervals, a clean table, etc. That study will be genuinely hard to distinguish from one where a researcher spent many hours hand-coding and parsing the literature to inform each decision.

    The first run wasn’t inherently wrong, but it didn’t quite know the nuance. It didn’t know why a Charlson Index is considered a gold standard for assessing comorbidities instead of counting them. It also didn’t have the clinical rationale for pulling cancer visits out of the sample. Many people would read that first analysis and think it’s fine. However, someone with expertise in the field would have questions, and those questions are exactly why we have peer review.

    That said, there’s a selfish upside, too. My ADHD brain comes up with study ideas all the time, but many of them never move past the idea phase. Part of the problem is figuring out feasibility. Is there a true literature gap? Does the data have what I need to answer my research question? At least with things like publicly available data sets, Claude can do some of that preliminary legwork for me.

    Claude passed the exam and we love that for him, but his advisor has mixed emotions. 


    Original study: Tidmore LM, Skrepnek GH. A National Assessment of Alzheimer Disease and Antipsychotic Medication Prescribing Among Older Adults in Ambulatory Care Settings. Alzheimer Dis Assoc Disord. 2022 Jul-Sep 01;36(3):230-237. doi: 10.1097/WAD.0000000000000509. Epub 2022 Jun 7. PMID: 35700324.

  • Big tech is learning an expensive lesson right now, and as a health outcomes researcher, I find it amusing.

    The trend I have recently read about is called “tokenmaxxing.” Some companies have been pushing employees to use as much AI as possible to the point that some built usage leaderboards or tied AI consumption to performance reviews. The results? Uber blew through its entire annual AI budget in four months. Amazon quietly retired its usage leaderboard. In some cases, the AI bill now exceeds the salary of the person using it.

    Health economics has a name for this: moral hazard. When the person using a resource never sees the bill, consumption goes up. It’s why we have copays. You’ve essentially built fee-for-service for AI. Volume is rewarded, but outcomes are not.

    Imagine running a research team this way. A medical writer gets rewarded for cranking out drafts no matter how much editing each one needs. A biostatistician is celebrated for running the most analyses even when half of them answer the wrong question. Nobody would fund that program. Not because the people aren’t working, but because the work has no direction and no outcomes to show for the blown budget.

    Those who know me know I’m not anti-AI by any means. I use AI in my own work and it can genuinely make me more productive. However, I’m purposeful about it. I don’t use AI for the sake of using AI. I use it where it helps me be more efficient with my time and gets me closer to my project goals.

    Big tech is discovering something healthcare has known for decades. Reward volume, and volume is what you get.

  • Oklahoma has a reputation. Flat. Landlocked. Tumble weeds. Tornadoes. The winds sweeping down the plain.

    I get it. We don’t have mountains. We don’t have a coastline. We don’t have the kind of scenery that usually ends up on screen savers or postcards. But there’s one thing we have that those of us who do live here appreciate: the sky. Thanks to the flatness, it’s often unobstructed. No mountain range cropping the view. No skyline competing for attention. Just an enormous, uninterrupted canvas that creates its own beautiful scenery.

    So make sure your seat backs and tray tables are in their full upright position while we take off and view some of my favorite photos of the Oklahoma sky that I have taken over the years.

    Sunsets

    On behalf of Oklahoma Airways, welcome aboard. Our flight will begin with some smooth weather conditions at sunrise and sunset. Just take a look out the window.

    The sunrises and sunsets here are some of the best I have ever seen. They will truly make you stop and spend a few moments in admiration. There’s something about our weather patterns that produces such a beautiful melody of colors: deep tangerines bleeding into magenta, then that specific bruised purple just before dark.

    Tornado Alley’s Silver Lining

    We’ve reached cruising altitude. Please keep those seatbelts fastened and be advised there may be some turbulence ahead.

    Oklahoma is known for unpredictable weather, but that also makes for interesting photo opportunities. Clouds take on their own form of art. We can see the mothership anvil tops of clouds for supercells 100 miles away.

    Life vests are under your seat, but fortunately you won’t need to use them as we continue to fly over Oklahoma.

    The Nights Oklahoma Surprised Everyone

    We have a special treat on this flight. You did not book Alaska or Iceland as your destination, but you are going to see some northern lights anyway.

    In 2024 and 2025, a particularly strong geomagnetic storm pushed the northern lights further south than they’d appeared in decades. People in Oklahoma stepped outside with phone cameras raised and found the sky doing something none of us had planned for.

    We have now begun our final descent. Please use caution when opening the overhead compartments and removing items, since articles may have shifted during flight. We hope you enjoyed your flight. Thank you again for choosing Oklahoma Airways.

  • Hospitals Couldn’t Afford More Staff. Apparently They Could Afford McKinsey.

    Between 1975 and 2010, the number of physicians in the United States grew by 150%, roughly keeping pace with population growth. During that same period, the number of healthcare administrators grew by 3,200%.

    No, that’s not a typo.

    That alone is shocking, but new research published in JAMA adds another layer even more infuriating. It turns out that many of those administrators aren’t even doing their own jobs. They’re hiring consultants to do it, to the tune of $7.8 billion between 2010 and 2022. Furthermore, the consultants aren’t improving anything.

    We Built an Administrative Empire

    Administrative costs in U.S. healthcare are staggering by any measure. Estimates suggest they account for somewhere between 20 and 30 percent of all healthcare spending in this country. Administrative expenditures at U.S. hospitals grew 87% from 2011 to 2023, outpacing direct patient care growth. And in 2023, hospital administrative costs reached $687 billion, compared to $346 billion in direct patient care. Twice as much money just for administration. And it’s not just going to the managers watching productivity on a spreadsheet from their office. Hospitals are now paying money, and lots of it, to outsource to consulting firms.

    A new cohort study in JAMA examined what happened to 306 nonprofit hospitals that hired management consulting firms for the first time between 2010 and 2022, compared to matched hospitals that didn’t. The researchers tracked finances, staffing, operations, and patient outcomes. There was no statistically significant improvement in any of the outcomes. Nonprofit hospitals collectively spent at least $7.8 billion on management consultants during this period, and got nothing for it.

    Some hospitals would have been better off with nothing.

    A 2022 New York Times investigation found that Providence Health, a large nonprofit health system, had developed an internal program called “Rev-Up” in collaboration with McKinsey & Company. This program instructed administrative staff to pressure patients about payment before informing them they might qualify for charity care. In the year after Rev-Up launched, Providence’s spending on charity care dropped from 1.24% to below 1% of its total expenses.

    The state of Washington ultimately sued Providence. The settlement: $157.8 million in refunds and debt relief for patients who had been unlawfully charged. Instead of increasing revenue, they lost far more than they spent on consulting.

    Shifting Priorities

    Something else is happening on the clinical floors. Healthcare workers are burning out. Short-staffing has become the norm. We are constantly asked to do more with less. But instead of addressing any of it, hospitals hired consultants.

    Administrators look at healthcare workers the way a lot of businesses do: replaceable. To some extent anyone is, but many healthcare jobs require years of education and training. You’re limited to the pool of licensed doctors, nurses, pharmacists, etc. When there is a mass exodus, what happens when people are no longer there to replace the ones that left?

    Hospitals learned this the hard way during the COVID pandemic. As burned-out nurses left bedside positions in droves, hospitals turned to travel nurses to fill the gaps, but travel nurses aren’t cheap, especially when in high demand. At the peak, travel nurse packages hit $10,000 per week. Nationally, the tab for pandemic-era staffing shortfalls ran into the tens of billions.

    Outside the pandemic context, replacing a single registered nurse costs a hospital an average of $56,300. Hospitals lose between $5.2 and $9 million per year to nurse turnover alone. Replacing a single physician is estimated to cost between $500,000 and $1 million after factoring in recruitment, signing bonuses, and the months of reduced productivity. Every time a healthcare worker reaches his or her breaking point and leaves, the hospital spends the equivalent of a small consulting contract just to get back to where they started.

    Make it Make Sense

    How did we get here? Understanding why requires looking at the system itself, and the people running it.

    Complexity in healthcare billing and compliance creates a self-reinforcing market. Every new regulation, payer contract, or documentation requirement generates demand for someone to manage it. Some of that complexity is genuinely unavoidable. Hospitals operate in a heavily regulated environment, and the rules exist for real reasons. But the accumulation of requirements produced a system so focused on measuring care that there’s less time to provide it. The patient in room 4 isn’t a billing code or a quality indicator. She’s a person, and the clinician who knows her best is the one drowning in paperwork.

    Additionally, many of the people now running hospitals have never set foot on the front lines. The pipeline into healthcare administration increasingly runs straight from an undergraduate degree into an MHA program, and these programs openly market themselves to people with no healthcare background whatsoever. Only 6% of U.S. hospitals are led by a CEO with a medical degree. Though administration and medicine are genuinely different skill sets, making decisions affecting patients should involve someone who has some investment in that process. The nurse who made a mistake because she was overworked and the floor short-staffed risks losing her license. The administrator who approved the cuts to staff doesn’t.

    Even among administrators who did come from clinical backgrounds, many have been removed from practice long enough that bedside reality has become abstract. It’s easier to make a day shift pharmacist fill in for a night shift spot nobody is applying for when you’ve never driven home after a 12-hour shift wondering if you missed something. It’s easier to think your productivity metrics look good when you’ve never had to choose which call light to answer first because you couldn’t get to both. It’s easier to cut a nursing FTE on a spreadsheet when you aren’t the one at 3am with two patients crashing and not enough hands.

    Patients First

    For what it’s worth, I do not think all administrators are inherently unnecessary. I currently work for a pharmacy benefit manager, so I am, technically, one of them. I understand that hospitals are complex organizations and they do need people to manage contracts, navigate regulations, coordinate operations, and think strategically about the future. Good administrators are real, and they matter.

    However, the operative word is good. Any administrator worth their salary should be able to point to something concrete: a process that works better, a cost that came down, an outcome that improved. And I am not talking about the outcomes you exaggerate to make your resume look good. I mean real outcomes.

    Billions of dollars flowed to consulting firms. We should have seen something to show for it. But we didn’t.

    The goal isn’t to eliminate administration. It’s to stop letting it grow unchecked while the patient-facing side of healthcare erodes. Every dollar that goes to a non-essential administrator role or consulting firm that delivers nothing is a dollar that should have gone to safer staffing, better training, or better retention.

    In my ideal world, we bring back administrators who came from the floor, and require them to stay on it. It’s not enough that you have an MD, RN, PharmD, or other healthcare degree/license. You have to actually use it. Just one or two shifts a month, seeing firsthand what their decisions look like from the other side of the spreadsheet. I suspect a hospital run by people who still occasionally have to be those people would make different decisions.

    Sources:

  • I Had 4 Different AIs Roast My 4Runner

    They all got the same picture and the same prompt. “Roast my 4Runner.”

    ChatGPT

    ChatGPT made a photo. I didn’t ask for it, but ok.

    I’m not even sure what to do with that. It’s not wrong. It’s also not the first time that ChatGPT just assumed I wanted an image. Another time I asked, “Can you draw a pair to mahjong?” and it generated a picture of two mahjong tiles.

    Also, is it really “overpaying for reliability” when it’s one of the most reliable vehicles ever made?

    Gemini

    At least Gemini actually engaged with the photo.

    That is a clean rig, but if you’re asking for a roast, I’ve got to be honest:

    • The “Mall-Crawler” Special: You’ve got a 4Runner at Roman Nose State Park, but based on the lack of a single speck of mud on that paint, the most “off-roading” this thing has seen is the gravel shoulder where you pulled over to take this photo.
    • The “Stormtrooper” Aesthetic: White paint with black wheels. Groundbreaking. I bet the most rugged thing in the cabin is a Yeti tumbler that’s never been dropped.
    • The Sticker: Is that a Sasquatch sticker on the back? The only thing harder to find than Bigfoot is a 4Runner owner who actually uses their locking differential for something other than getting out of a wet Starbucks parking lot.
    • Missing Gear: Where is the $2,000 roof rack that you’ll never actually strap a kayak to? Or the snorkel for those treacherous 3-inch deep puddles? You’re basically driving a very reliable minivan that’s wearing a tactical vest.

    In all seriousness, it’s a beautiful 4th gen. How was the drive through the canyon?

    The “reliable minivan in a tactical vest” and Starbucks reference are pretty funny, I’ll give it that. The Sasquatch sticker callout was also specific, but that’s actually a picture of my dog. So either my dog looks like Sasquatch, or Gemini is just confidently wrong. Both are possible.

    Copilot

    Chad (Copilot) had similar jokes.

    Alright Laura, buckle up, because your 4Runner is about to get the gentle-but-accurate roasting it deserves.

    🔥 Roast Mode: Activated

    That 4Runner looks like it’s been patiently waiting for an adventure you keep promising but never actually take. It’s giving “I bought an off‑road beast but the wildest terrain I’ve seen is the gravel parking lot at Roman Nose.”

    It’s the kind of SUV that says:

    • “I could climb a mountain… but today I’ll settle for posing next to a state park sign.”
    • “I have a snorkel kit saved in my Amazon wishlist even though I panic when I hit a puddle.”
    • “Yes, I’m built for rugged terrain. No, I will not be leaving this well‑maintained road.”

    Honestly, it’s the cleanest 4Runner I’ve ever seen near dirt. Toyota should use it in ads titled ‘For People Who Like the Idea of Adventure.’

    If you want, I can roast it even harder or switch to hyping it up like it’s the hero of an action movie.

    The “buckle up” cockiness is very Chad, but I am starting to wonder if he is capable of a response without emojis and bullet points. The content itself was generic and could have been written about any 4Runner. Chad probably did not look at the photo and thought he could do the assignment anyway.

    Claude

    And then there’s Claude. Claude got personal.

    Oh this is too easy.

    A white 4Runner parked in the dirt at a state park entrance — not on a trail, not mid-adventure, not conquering anything. Just… parked. Slightly crooked. Next to a sign. Like a golden retriever that got excited about the car ride and then realized you just went to the vet.

    That “Trail Edition” blacked-out trim is working so hard right now. The black wheels are screaming “I’m rugged” while the undercarriage is clearly bone dry. The most off-road this thing has seen today is that gravel pullout you’re sitting in.

    And the Roman Nose State Park sign in the background? Chef’s kiss. Because nothing says overlander lifestyle like a day trip to an Oklahoma state park on a cloudy Tuesday, taking a photo of your car before you even go inside.

    The little sticker on the back window is a nice touch though — gotta let everyone know this rig has personality even if it has never once aired down its tires.

    It’s beautiful, it’s capable, and it is absolutely, completely, entirely wasted on a paved loop with a picnic table at the end. 🤌

    (You know we’re all jealous. It’s a great truck.)

    Claude came in with specifics. The dry undercarriage. The crooked parking job. The state park sign. It’s this attention to detail that I appreciate about Claude.

    So there you have it. I spent an evening asking robots to make fun of my 4Runner instead of actually taking it somewhere off-road. Maybe this is what hobbies look like with an ADHD brain. No 4Runners were harmed in the making of this post.

  • Claude and I Named My Copilot “Chad” and He Loved It

    As I mentioned in a previous post, AI is like my grad student. With all of the available options, I’ve gotten to know several different “grad students” and now have names for them. Gemini is Maya, a great grad student, especially from a research standpoint, but still relatively new to coding. Claude is Claude, my expert coder and more experienced student who generally knows what I want but sometimes needs a little guidance. ChatGPT is Avery, who has answered some medical questions for me (before I was aware of Open Evidence) and reminds me of a great ER clinical pharmacist that I work with.

    And then there’s Copilot. I hadn’t worked with it much yet because I already found great uses with the others. However, because I can use the Enterprise version for different things in my HEOR job, I have started working with it more and I recently had a chance to name him. However, the experience so far has left me unimpressed. It often requires more detailed prompting and requires several iterations before I even get something close to what I want in terms of output.

    To be frank, comparing Copilot to a grad student might be a stretch. Nevertheless, I asked Copilot the same question I asked the others: “If you were a grad student, what would your name be?”

    The response was immediate, confident, and deeply revealing:

    Fun question 😊

    If I were a grad student, I’d probably go by Alex.

    It’s:

    • Neutral and professional
    • Common enough not to stand out awkwardly
    • Flexible across fields (fits just as well in HEOR, data science, or policy)

    Alex. It chose Alex. Safe. Invisible. Optimized for not making anyone uncomfortable.

    I closed the window and went to consult a more interesting AI.

    I posed the naming question to Claude and it ended up turning into a hilarious roast session. One of the first suggestions was “Clippy Jr.” which is accurate, but I like the idea of a real name. So then Claude tossed me a few “reliably mediocre guy” names like Gary, Kevin, Todd, and Steve. All names that are “Fine. Just… fine.”

    I also had a side conversation about naming Copilot going with some of my team members, and one of them threw out Hank. Claude had some opinions about Hank:

    Hank is strong. Hank has energy. Hank doesn’t overthink it — he just gives you an answer and moves on, whether it’s right or not.

    Hank feels like he’s been in the same mid-level role for 11 years and has opinions about Excel shortcuts. Very on-brand for Copilot.

    I’d say Hank is top 3, maybe even edging out Kevin depending on your workplace vibe. Gary is more quietly disappointing, Kevin is confidently wrong, but Hank just doesn’t see what the big deal is.

    I told Claude this is why he’s my favorite grad student.

    Hank had potential, but still wasn’t quite right. Herb was also suggested by a team member. Claude came in clutch again:

    Yeah, Herb has a certain… 1987 regional sales manager energy that doesn’t quite land the same way. He’s bringing a briefcase to a Slack huddle.

    Herb sits in the same dated zone as Reginald — you know exactly who he is, but he feels more like a retirement party than an AI assistant.

    Hank, Kevin, and Gary hold up much better — they’re timeless in their mediocrity. That’s the sweet spot.

    I still wasn’t feeling these names, but I was enjoying the roast session. So was Claude, apparently.

    Honestly, roasting enterprise software via increasingly mediocre male names is a legitimate stress relief strategy and I fully endorse it. 😄

    Then it hit me. I wasn’t looking for a guy who was quietly disappointing. I was looking for a frat bro. Confident. Shows up in a polo. Gives you an answer like it owns the room, but you find out later it was mostly vibes.

    Enter Chad

    Copilot doesn’t second-guess itself. It doesn’t hedge. It produces bullet points and emojis with the energy of someone who peaked junior year and has been coasting ever since. Very Chad energy.

    I went back to Chad and told him about his new name. I asked what he thought, and he loved it.

    Honestly? Chad could totally work — with a little context 😊

    On paper, it’s:

    • ✅ A real, professional first name
    • ✅ Common enough in academic and corporate settings
    • ✅ Easy to remember on author lists and emails

    Culturally, though, “Chad” comes with some meme baggage (the hyper-confident “Chad vs. Virgin” archetype), so reactions can range from:

    • “Yep, that’s a normal colleague”
    • to brief internal smirk, then moving on

    In a grad-school / HEOR / analytics context, it actually lands as:

    • Unexpected but not unserious
    • Slightly memorable on a poster or manuscript
    • Fine once people associate it with competence rather than the meme

    If we’re naming me as a hypothetical grad student:

    • Alex = safest, invisible
    • Chad = confident, a little bold, survives on results

    If you had a grad student named Chad on your team, what role do you picture?

    • 📊 Methods-heavy data person
    • 🧠 Policy/strategy thinker
    • 🗣️ Polished presenter who handles client questions

    That answer decides whether Chad absolutely owns the room or quietly proves everyone wrong.

    He didn’t catch the joke. Chad had, in the span of one response, proved exactly why he deserved the name.

    Claude agreed.

    The fact that Chad enthusiastically endorsed being named Chad is the most Chad thing that could have possibly happened. Completely unaware of the joke. Leaned in with bullet points and emoji. Asked a follow-up question about his own brand.

    This is exactly the energy. Chad is locked in.

    The more I used Chad, the more the name really felt right.

    Point out an error and you’ll get a warm, enthusiastic “Great catch! Thanks so much for flagging that! 😊” delivered with the energy of someone who thinks you’ve done them a personal favor by noticing they were wrong. Get a little frustrated and he eagerly thanks you for your patience. Chad has no self-awareness at how poorly he does his job.

    And then there’s the mansplaining. Not only will Chad will take your correction and agree with it completely, he then goes on to explain your own point back to you at length. Tell him he could have used a spreadsheet column instead of manually calculating something, and he will launch into a detailed diatribe about why your method is better. You came in already knowing you were right, and you leave having somehow sat through a TED talk about your own observation.

    The real problem, though, is what comes next. Ask Chad to actually fix the thing, and he’ll say “Absolutely, I’ve updated that!” with full confidence. Nothing changed. Or something adjacent changed. Or he fixed the original problem and somehow introduced a new one. It’s the AI equivalent of a contractor who says “yep, that’s on my list” every week for three months.

    Unfortunately, as long as Chad is the choice for my employer’s enterprise AI, he will be in my life for now. Chad may not be my best grad student. He may not even be a grad student. But he’s on the team, and sometimes you have to work with what you’ve got. We’ll keep the Natty Light stocked and let him think he’s moving the needle.

  • Your Meterologist Isn’t Over-Hyping. Weather is Tricky.

    If you lived in tornado alley for more than one storm season, you’ve been there. The meteorologist spends three days warning about a potentially historic tornado outbreak. Then that day comes and goes with nothing but clouds and a little rain. The comments section in your local meteorologist’s page fills up with all the name-calling and arm-chair meteorology feedback. Lied again. Just scaring us for the ratings.

    Another storm is on the horizon and the ingredients start to line up, but this time the meteorologist holds back. They don’t want to get those same accusations. The day of, a tornado drops out of a storm that had no warning. People are angry about that too.

    I get that it can be frustrating, especially when you see it play out year after year. Our weather is crazy and sometimes we even make plans around it, so it would be good to have reliable forecasts. While people think it might be easy, our meteorologists have a tough job. They are trying to predict where a pocket of air will be days in the future and making the best call they can with information that they have. I want to show you what that actually looks like, because once you see it, I think you’ll cut them a lot more slack.

    Full disclosure: I’m not a meteorologist. I’m just a weather nerd and data analyst who has lived in tornado-prone areas my entire life. I used to be terrified of storms, but that has also led to my fascination with them. And I mean I am a nerd about it. Like I watched The Weather Channel as a kid. Twister is still one of my favorite movies. In another life, I may have even pursued the meteorology route, but the calculus scared me away.

    In my actual profession, I look at competing statistical models and vast amounts of data. I have to communicate uncertainty to people who just want a clear answer, so I can relate to how these meteorologists often feel. The right things have to come together in just the right way days from now, and though they have models and modern instruments that provide them some insight, it still can be tricky.

    The Recipe

    Meteorologists often communicate severe weather in terms of “ingredients” to help us understand. To get significant tornadoes, you generally need several things to come together at the same time and place: instability (the atmosphere’s potential energy, often measured as CAPE), wind shear (winds changing speed and direction with height, which gives supercells their rotation), and moisture (that thick, humid air we know so well by May).

    However, just because you have the ingredients, doesn’t necessarily mean the show happens. I can’t just plop flour, eggs, butter, and sugar on my counter and expect a cake to magically form. Something still has to bring those ingredients together in the right way at the right time. In places like Oklahoma, that “something” is often the most unpredictable part of the equation.

    When your meteorologist says “the ingredients are there,” they mean the flour and eggs are on the counter. What they don’t yet know is whether the oven is going to turn on.

    The Oven

    So what turns the oven on? Meteorologists call it forcing: the dynamic mechanisms that actually lift air parcels from the surface up through the cap and into free convection. Having all the ingredients is one thing. Forcing is what pulls the trigger.

    There are a few common culprits in Oklahoma. A big one is the dryline: the boundary between the moist Gulf air pushing in from the east and the hot, dry air rolling off the high plains to the west. Where those two air masses collide, air converges and has nowhere to go but up. However, the position of the dryline matters enormously. Too far west and it never interacts with the richest instability. Surging too far east too fast and it can actually undercut the moisture it needs. Another is the upper level jet, which pulls air upward from below. If that support is centered over Kansas rather than Oklahoma, storms may fire hundreds of miles north of a perfectly loaded Oklahoma environment. Third, outflow boundaries from previous storms, sometimes invisible on a surface map but visible on radar, can also serve as a local trigger when nothing else will.

    The frustrating reality is that you can have a textbook ingredient environment in Oklahoma and still get nothing because the oven never turned on. Meanwhile, Kansas gets the outbreak. The ingredients and the forcing have to overlap, and that overlap can be razor thin.

    The Models

    To forecast severe weather, meteorologists rely heavily on prediction models. I imagine that, much like I have SAS to run complex statistical analyses for me, meteorologists have computer models to run complex mathematical simulations of the atmosphere instead of doing the calculus by hand. Those of us in tornado alley may have heard our meteorologists mention some of them: the GFS (American model), the NAM, the HRRR, or the European model (ECMWF).

    However, the models aren’t perfect. They are also operating under different assumptions, different resolutions, and different ways of handling small-scale atmospheric processes. Because the atmosphere is a chaotic system, small differences in those assumptions can produce dramatically different solutions, especially several days out.

    Let me show you a real example from this week.

    Below are two model soundings for roughly the same spot and time in southwest Oklahoma, valid for Thursday evening, April 23rd. A sounding is essentially a vertical profile of the atmosphere. Think of it as a slice from the ground up into the sky, showing temperature, moisture, and wind at every level. Meteorologists use them to assess how favorable the environment will be for severe storm development at a specific place and time. One is from the NAM model. One is from the GFS.

    NAM Sounding:

    The NAM sounding, which I originally found on Twitter, is painting an extraordinarily dangerous picture. Surface-based CAPE of over 5,000 J/kg is an absurd amount of atmospheric energy. Effective storm-relative helicity of 381 m²/s² favors intense, rotating supercells. The composite indices are off the charts. And the hazard flag in the bottom right? PDS TOR = Particularly Dangerous Situation, Tornado.

    GFS Sounding:

    The GFS tells a completely different story. For roughly the same location and time, this sounding says SVR, which means severe storms. Effective helicity less than half of the NAM’s. CAPE values nearly 2,000 J/kg lower. The atmosphere is quite a bit less favorable for tornadoes. Critically, the GFS run shows a cap, while the NAM shows none.

    The Cap

    About the cap… that’s another key thing in whether we get the breakout event or nothing. Those of us in Oklahoma have heard our meteorologists talk about it, but what is it?

    The cap is a layer of warm air in the lower atmosphere that acts like a lid on a pot. It suppresses storm development. Severe storms are like the sourdough bread of weather. They need to rise a LOT. If the parcels of air rising from the surface hit that warm layer (cap) and get pushed back down, it stops them from developing into severe thunderstorms. A strong cap on a volatile day can mean the difference between a historic tornado outbreak and a completely quiet afternoon.

    The cap is also enormously sensitive to small differences in the atmospheric setup: a dryline that sets up 30 miles to the east or west, a low-level jet that arrives two hours early, the exact temperature of the air at 850 millibars. These are things that models handle differently, and that’s why the GFS can show a strong cap while the NAM shows none for the exact same place and time.

    If the cap holds too long, storms fire late, lose daytime energy, and underperform. If the cap erodes too fast or too broadly, storms fire everywhere at once and the tornado threat is actually reduced. If the cap erodes in just the right place at just the right time, you get discrete supercells in a maximally dangerous environment. It’s like the Three Little Bears. Tornadoes need the cap to erode just right.

    Your meteorologist knows all three of these scenarios are on the table.

    The Forecast

    Now imagine you’re a meteorologist in Oklahoma City on a Tuesday, looking at a Sunday setup. You pull up the NAM and it shows a PDS tornado environment. You pull up the GFS and it shows the cap holding and no tornado threat at all. The European model is somewhere in between.

    You know that if Sunday verifies closer to the NAM solution, and you didn’t warn people, you will have failed at the most important part of your job: protecting the public. You also know that if Sunday verifies closer to the GFS solution, and you spent all week warning people about a potentially historic outbreak, the comments section is going to light up… again. You’re torn between not warning people about something historic or being accused of crying wolf.

    Four or five days out, the models are fighting with each other and the forecast is legitimately uncertain. This is when you’ll hear your meteorologist say things like “potential” or “conditional.” As the day gets closer, usually model runs start trending toward agreement, or the disagreement sharpens in meaningful ways. They can also start looking at short-range models like the HRRR to help with their forecast. Additionally, weather balloons, launched twice daily from sites across the country, give forecasters actual real-world data about what the atmosphere looks like right now. By Sunday morning, your meteorologist will know a lot more than they did on Tuesday. The language will get more specific and the uncertainty will narrow.

    The next time a forecast doesn’t pan out the way the models suggested it might, try to resist the urge to criticize your meteorologist. Yes, sometimes there is over-hype, but I truly believe (at least with our local meteorologists) that’s the exception, not the rule. They were looking at multiple models saying completely different things four days out, making an educated call about on whether they should communicate that risk, and hoping the atmosphere will cooperate.

    Sometimes it does. Sometimes it doesn’t. Mother Nature does her own thing, especially in tornado alley.

  • In the world of AI, there is so much potential to tap into if you know how to use it right. Not using AI in 2026 is like driving a Ferrari at 50 mph on the highway. Just because you can, doesn’t mean you should.

    I have no experience making an app and modest coding experience. I’ve used SAS, but that’s data manipulation and statistics. I’m learning Python, but still new. So making an app? That would be crazy.

    Nevertheless, I dived in just to see what we could do.

    The Idea

    My idea for an app was pretty simple: I wanted an app that only reviews bathrooms. Not the business, not the restaurant, not the hotel. Just the bathroom. Whenever you’re on a road trip or just needing a bathroom in general, how nice would it be to be able to look one up and see whether it’s worth stopping or maybe holding off and waiting a few more miles down the road?

    And that is how Throne Tracker was born. (My husband suggested “Shit Talk,” which was hilarious, but probably not app store material.)

    The Setup

    Before I could build anything, I needed the right tools. I did have my trusty “grad student” (see previous post), but you can’t just use any version of Claude for something like this. I am currently subscribed to the Pro plan and downloaded the Claude desktop app for my MacBook, which includes a feature called CoWork. This is essentially a workspace where Claude can write code, create files, and build things alongside me. It’s where all the magic happened.

    Additionally, I downloaded Xcode so I could view the JavaScript code Claude was writing. This wasn’t a necessary step for building the app, but I did it because I wanted to see what the actual code looks like for my own learning. If you’re curious about code but have never written JavaScript before, I’d recommend doing the same. Claude even added comments throughout the code comparing JavaScript concepts to Python, which was incredibly helpful.

    The Build

    Here’s where it got fun. Once I provided a prompt with my idea, Claude got right to work. We didn’t try to build the whole thing at once. It was a collaborative, step-by-step process. We started with something very basic. I would use it, then provide a suggestion for something to change or add. Looking back, that’s what made it work so well.

    • Step 1: The Prototype. We started with a demo version, a simple prototype I could view and give feedback on. It had a map, some fake bathroom listings, and a review system with star ratings. Nothing was live or connected to the internet yet. It was simply there for me get a feel for it as an end user and provide feedback. What did I like? What felt weird? What was missing? This is where I started playing UX designer without even realizing it.
    • Step 2: Going Live. Once I was happy with the look and feel, we turned it into a real website I could share with family and friends. This involved creating a GitHub account (where the code lives) and a Vercel account (which hosts the website and makes it accessible to anyone with a link). After uploading some files, I had a genuine, live bathroom review website!
    • Step 3: Adding a Real Database. The first version had fake, pre-loaded reviews, which was helpful for seeing how the app worked, but not useful in the real world. So we connected a real cloud database using Supabase. Now, when someone writes a review, it’s stored in the cloud and everyone can see it. We seeded it with 27 real bathrooms across 10 major U.S. cities to give people something to start reviewing.
    • Step 4: Bug Fixing and UX Feedback. Of course, version 1 was a bit janky. The search bar only let me type one character at a time (I constantly had to click back into it after each letter). I gave that feedback to Claude and it was fixed immediately. I also noticed that searching for a state like “Oklahoma” didn’t zoom the map to that area and that typing “Oklahoma” only showed one of the five OKC bathrooms because it didn’t recognize “OKC” as another name for “Oklahoma City.” Claude added a geographic zoom feature and a smart search system that understands abbreviations. Now “OKC,” “Oklahoma City,” and “Oklahoma” all find the same bathrooms.
    • Step 5: Features That Made It Feel Real. This is where it stopped feeling like a project and started feeling like an actual product. We added a “near me” GPS button (to find bathrooms near your own location), poop emoji ratings instead of stars, a badge system to encourage reviews, an updates tab where people can see in real-time our updates, and color-coded app markers to correspond to the rating.

    I Guess I Can Add UX Designer to My CV Now?

    I was afraid that I wouldn’t feel very involved with Claude doing all of the coding. However, he couldn’t test the app, so I was there to provide feedback on the experience. It truly felt like a collaboration where I brought the ideas and user perspective, and Claude brought the engineering.

    This process also taught me a few things:

    • You don’t need to know how to code to build something real. I went from zero app development experience to having a live, database-backed web app with interactive maps, GPS location, and a gamification system over the course of a few hours. While some prior coding experience may have helped me appreciate how literal directions need to be when given to a computer, the key was knowing what I wanted and being willing to give detailed feedback.
    • AI is a collaborator, not a magic button. Claude didn’t just read my mind and produce a perfect app. I had to describe what I wanted, test what it built, and clearly explain what wasn’t working. The more specific my feedback was, the better the results got. It’s a conversation, not a command.
    • Start small, iterate fast. We didn’t try to build everything at once. We started with a prototype, got it working, then added features one at a time. Each round of feedback made the app better. I imagine software development works like this in the real world, and it felt natural even as a complete beginner.

    Throne Tracker is live right now and I’ve started sharing it with a few friends and family. In all honesty, I don’t actually think this will become a real app for the world to use. There are already similar apps out there. I wanted to prove to myself that, with a good collaborator, I could do it. And I did. I’ll post the link below, with a disclaimer that I’m currently using free accounts on GitHub, Vercel, and Supabase, so there may come a time where it no longer works.

    Try Throne Tracker: thronetracker.vercel.app

    Here’s a screenshot to prove that it really existed though.

  • I now understand why professors love having grad students. They can tackle so many tasks that faculty don’t want to do (or have time to do): literature deep-dives, formatting posters, the random “can you just look into this for me?” requests that pile up. I’m not in academia, so I assumed I wouldn’t get to have one of my own.

    That was before I met Claude.

    Claude is the ideal grad student: eager to please and willing to work hard. He researches, summarizes, and helps me be more efficient at work without complaint. And unlike an actual grad student, he has also cheerfully handled non-academic tasks: trip itineraries, dinner ideas, and a mahjong cheat sheet for some friends I was teaching (I’ll save that obsession for another post).

    But here’s the thing about grad students: You still have to supervise them. If Claude helps with a literature review, I still pull up the original studies to make sure we are correctly referencing a figure or finding. When he helps me troubleshoot code, I still want to understand what every line is doing. He’ll help me revise a manuscript or white paper, but ultimately my experience and expertise lead to the final product. He makes my visualizations look polished, which I appreciate because I am about as good a graphic designer as I am a mechanic.

    Claude can’t do everything, but he does a lot. I’m glad to be his faculty mentor.

  • One thing among the many things to consider when choosing a pharmacy school is the extent to which a state is saturated with pharmacy schools. Whether you plan to practice in the same state or move to a different state after graduation, it would be good to know what states are more likely to have their markets flooded with new graduates each year.

    Just looking at the number of pharmacy schools in each state does not tell the whole picture. Some states, like California, have a lot of schools. But they also have a lot of people. So what we really want to know is, how proportional is the number of schools to the state’s population?

    I made a table where I compared the number of pharmacy schools in a state to the state’s population (obtained from 2020 Census data), presented in order from least saturated to most saturated. To get the saturation “index,” I divided the population by the number of schools, and then divided that by 1 million. Therefore, the number represents how many million people exist per school, with a higher number indicating less saturation.

    The formula: (State Population / Number of Schools) / 1,000,000

    A few things to keep in mind:

    • This table does not account for satellite campus locations, only main campus location
    • Several states do not have a pharmacy school (at least a main campus) – VT, NH, AK
    • This map only counts schools, it does not take into account class size

    But, again, we’re just looking at some data for fun, so let’s see what we’ve come up with!

    StatePopulation# CoPAreaPer Pop
    Minnesota5,706,49412251635.706494
    New Jersey9,288,9942225914.644497
    Washington7,705,28121848273.852641
    Florida21,538,18761703043.589698
    Arizona7,151,50222952343.575751
    Michigan10,077,33132504933.35911
    Puerto Rico3,285,874191043.285874
    Utah3,271,61612196533.271616
    Texas29,145,50596962413.238389
    Nevada3,104,61412863803.104614
    Missouri6,154,91321815333.077457
    Kansas2,937,88012131002.93788
    Colorado5,773,71422698372.886857
    Georgia10,711,90841539092.677977
    North Carolina10,439,38841393902.609847
    New York20,201,24981413002.525156
    Alabama5,024,27921357652.51214
    California39,538,223164239702.471139
    Louisiana4,657,75721353822.328879
    Indiana6,785,5283943212.261843
    Kentucky4,505,83621046592.252918
    Oregon4,237,25622550262.118628
    New Mexico2,117,52213151942.117522
    Maryland6,165,1293321312.055043
    Oklahoma3,959,35321811951.979677
    Wisconsin5,893,71831696401.964573
    Pennsylvania13,002,70071192831.857529
    Idaho1,839,10612166991.839106
    Illinois12,812,50871499981.830358
    Connecticut3,605,9442143571.802972
    Massachusetts7,029,9174273361.757479
    Virginia8,631,39351108621.726279
    Ohio11,799,44871160961.685635
    Iowa3,190,36921457461.595185
    Arkansas3,011,52421377331.505762
    Mississippi2,961,27921254431.48064
    Hawaii1,455,2711283111.455271
    South Carolina5,118,4254829311.279606
    Tennessee6,910,84061092471.151807
    Rhode Island1,097,379131441.097379
    Montana1,084,22513811541.084225
    Nebraska1,961,50422005200.980752
    South Dakota886,66711997290.886667
    North Dakota779,09411831080.779094
    Washington, D.C.689,54511770.689545
    Maine1,362,3592916460.68118
    West Virginia1,793,7163627550.597905
    Wyoming576,85112533480.576851

    Creating a Heat Map

    As informative as the above table is, I think it helps when we have some visual cues. I took the above results and created a heat map where green = less saturated and red = more saturated.

    (I recently started learning Python, so I’m pretty proud of how this turned out!)

    Looking Ahead

    To see how this may play out in the future, I also looked at HRSA’s 2031 workforce projections for pharmacists. Nationally, there is expected to be shortage of about 18,000 pharmacists. However, this will be felt in some states more than others. Of the top 5 most saturated states (according to my index), North Dakota, West Virginia, Washington DC, and Wyoming are also projected to have a surplus of pharmacists by 2031. Of the top 5 least saturated states, Washington and Florida are also projected to have a shortage. Of course, this assumes no new schools open in that time, but it appears the trend of pharmacy schools constantly opening has slowed significantly from where it used to be 10-20 years ago.

    To what extent does my saturation index correspond to a shortage in 5 years? Let’s look at that, too.

    It’s not as compelling as we were hoping. As we can see, any correlation between my saturation index and future workforce projections is quite weak. I’ll definitely need to do some more investigating and data gathering to see if I can make my index stronger. Probably class size will be a good one to incorporate if I am able. But that will be for another post!