Demystifying comparisons between eBay managed payments and the old way Hint: it's still the old final value fees (before cap) + payment processing fees (analogous to Paypal)

Most often when we sell on eBay, we receive Paypal payments, so we ended up paying eBay’s commissions (also called the final value fee, FVF for short) and Paypal processing fees as a percentage of the sale.

Now eBay pushes out Managed Payments (MP) which combines payment processing fees with the eBay commissions (FVF) because eBay now manages the payment gateway. The rest is every time you sell something, you get a payout (sales – fees) deposited directly to your bank (it used to be collecting paypal balances then withdraw it).

They have a different calculation formula which they claimed the sellers are better off in most cases, but should we take eBay’s word for it? Regardless of whether you are enrolled in managed payments, the fee percentage for each sale depends on:

  • eBay store subscription level
  • category

It’s impractical to do the side by side fee structure comparison to see when we are better off for each sale, plus we cannot easily switch between the two plans.

It’d be very helpful if we can put the managed payment fee structure on the same form as the conventional eBay+Paypal fee structure, and figure out under what conditions we are better off or worse off with managed payments.

Initially I was ready to do the derivations to put both plans on the same scale, but I spotted that managed payment (combined) percentage is simply the vanilla (non-managed) eBay category final value fee + 2.35% payment processing fees! That’s how they’ve calculated the combined managed payments percentage!

This makes life a lot easier. Since I can factor out the 2.35% that applies to the whole sum (which also include shipping and sales tax) regardless of the fee cap, this works exactly the same as Paypal (which charges 2.9%) and we are getting a 0.55% discount in payment processing fees.

For managed payments, since we’ve already separated out the payment processing fees, the fee cap applies to the vanilla final value fee portion which is equivalent to the old eBay final value fee. Keep that in mind.

The part that has changed is the fee cap. The old way caps the commissions/FVF directly regardless of product category, yet the new way (managed payments) caps the sale price that are charged commissions. This means the fee cap goes up or down a little depending on the final value fee percentage class applying to your sale.

eBay set the (commissioned) sale price cap to closely match the realized commission cap in the old way, for example non-store subscriber who will have their raw final value fees capped at $750 will see the same cap for the most common 10% categories (12.35%-2.35% = 10%) because the (commissioned) sale price cap is $7500, which $7500*10%=$750.

Big industrial equipment also have the same cap regardless because $15,000*2% = $300.

For non-store subscribers, 10% is the anchor (iso-fee-cap) category. So you are a little worse of with books (price cap +2%) and better off with musical instruments (price cap -6.5%). 

For store subscribers, you get a bit more break over the fee-cap (lower) because your final value fee percentage is lower than the anchor (likely they chose a breakeven point at 10% when determining the sales price to cap final value fee over. Just easy numbers, not rocket science):

Managed Conventional Discount*
Common (9.15%) $2,500*9.15% = $228.75 $350 (Small stores)
$250 (Big stores)
$121.25 (Small stores)
$21.25 (Big stores)
Heavy gears (1.5%) $15,000*1.5% = $225 $250 $25
Books (12%) $2,500*12% = $300 $350 (Small stores)
$250 (Big stores)
$50 (Small stores)
-$50 (Big stores worse off)
Guitars (3.5%) $2,500*3.5% = $87.5 $350 (Small stores)
$250 (Big stores)
$262.5 (Small stores)
$162.5 (Big stores)

I call Basic/Premium ‘small-stores’ and Anchor/Enterprise ‘big-stores’.

So here are the observations, which is all you need to know:

  • Under managed payments, small-stores gets a better deal than big-stores, because the advantage of the $100 lower fee cap with big stores are eliminated with variable fee caps.
  • The breakeven line for small stores ($350 cap) is 14% fees ($350/$2500), which the highest category is 12% so far. This means small-stores are ALWAYS better off switching to managed payments.
  • The breakeven line for big stores ($250 cap) is 10% fees ($250/$2500), which the only category above that right now is books (12%). Big-stores selling BOOKS are worse off with managed payments.

So in other words,

  • everybody is better off with managed payments (fee-wise) EXCEPT big-stores selling books
  • under managed payments, there’s no final value fee advantage for being a big-store

* Remember you got 0.55% discount over the payment processing portion of the fees too and is not shown here since we’re just talking about savings in vanilla final value fees.

As far as books (12%) is concerned, if you are a big-store owner, your raw commissions cap raised from $250 to $300 because $300 = $2500 * 12%. But if you factor the 0.55% discount, if the sale price is $x,

     $$ (0.12-0.0055) x = 0.1145x > 250 $$ $$ x > 2183.4 $$

Since the raw commissions stops at $300 ($2500 * 12%), the additional $50 cap increase starts to get offset (and turn out positive as the processing fee discounts outweighs the commissions cap increase) when the payment processing discounts ABOVE $2500 covers all of it:

     $$ 0.0055(x-2500) > 50 $$ $$ x>11590.91 $$

So the range of sale price x which the only setup (books for big-store sellers) can do worse is

     $$ 2183.4 < x < 11590.91 $$

There are some ambiguities (technically incorrect documentation) on eBay’s website which implied vanilla final value fees (portion) are charged for sales tax. I made a sale and checked the numbers and it’s not true. Only the 2.35% payment processing fee portion is charged against the sales tax (like paypal for handling extra money), the category final value fee (in my case 9.15%) is not applied to the sales tax.

They actually meant “the 2.35% payment processing fee portion” when they said “managed payment final value fees”. This is also part of the reason why I wrote this article, because they do not use the language that conceptually separate the two portion of the combined final value fees (vanilla final value fee + payment processing fee) in managed payments, thinking that they are simplifying the math for sellers, without realizing if the two concepts really fused into one, they’ll be shortchanging sellers over sales tax.

The $0.3 fixed per-transaction fee applies to both managed payments and the conventional way (Paypal also charge +$0.3 fixed per-transaction), so nothing has changed.

 91 total views,  1 views today

Mathematics of calculating overheads to charge

It’s very common to have a percentage fee (called tax rate below) slapped on our earnings:

  • Commissions (e.g. eBay final value fees)
  • Sales Tax
  • Incremental income taxable within the same bracket.

Many adults cannot directly figure out how much EXTRA do they need to earn to get the target amount of that are rightfully theirs (after fees).

They are missing out these handy intuitions:

  • If your EXTRA earnings are taxed at 40%, not wasting an extra $100 is almost as good as earning $166.67!
  • You always undercharge the fee overhead if you just multiply your target amount with it (intuitive but WRONG). The amount you get shortchanged goes up like a rocket for rates past 10%!

All you need is grade school math to figure it out, but the results are highly non-linear and are not easy to remember. This means the tutorial below makes an excellent discussion material to motivate mathematics education in grade school!

If you want to copy or use the materials, just remember to reference “Rambling Nerd with a Plan” blog page or “Humgar LLC”. You don’t have to ask and you are welcome. I certainly appreciate comments about this tutorial.

Before I start, hints for working with percentages:

  • divide percentages by 100. Think multipliers/factors in your head.
  • a factor of 1 represents the full amount
  • division by x is multiplication by reciprocal 1/x
  • preferably work in terms of shrink/expand factors (multiplications only) over the FULL amount, rather than working out the excesses (additions/subtractions)

Assigning intuitive names are very important for interpreting algebraic expressions with familiar life concepts!

Let’s define these variables first:

  • T is the target price you want to get AFTER the fees
  • D is the damage you should charge
  • r is the rate (fee/tax percentages)
  • E is the excess that goes to the fee/tax collector

These derived variables will be discussed in the body of the tutorial

  • s is the shrinkage (multiplier), where


  • m is the magnifier (multiplier),


  • c is the compensation (multiplier) for billing,


If somebody pays you the total damage D before tax/fees (at rate  r), you are home free with T after subtracting the fees D \times r from D

    \[D - rD = (1-r)D \equiv sD = T\]

In other words, you the FULL damages gets shrunk by a factor s \equiv (1-r) which becomes the target amount T you get to keep for yourself.

Don’t be scared by the algebra! It’s just the other way of saying, if your tax rate is 30%, it means you get to keep 70% of your income, because 100%-30% = 70%, so the shrinkage s is 0.7

Since you have the target price T in mind and want to undo the shrinkage (multiplication) to calculate the full amount you should charge D, you divide the target price by the T by the same factor to magnify it back:

    \[D = \frac{T}{s} = \frac{T}{1-r}\]

It is NEVER helpful to directly multiply the fee/tax percentage with the target price T like what most people would intuitively do. We can think of the division above as multiplying by the reciprocal of the loss factor s or (1-r), which we will call m the magnifier:

    \[m = \frac{1}{s} = \frac{1}{1-r}\]

An alternative view is to break the damage D into target price T along with excess E to bill the customers for the fees/taxes (which goes to the collector):

    \[D = T + E\]

My preferred way to calculate the excess is simply compute D first by finding calculating the magnifier m, or simply dividing the target price T by the shrinkage s

    \[D = mT = \frac{T}{s} = \frac{T}{1-r}\]

then subtract the target price T from the damage D to get the excess:

    \[E \equiv D-T\]

which you can write it in terms of target price T which you know so you don’t have to work out the total damages D first:

    \[E \equiv  D - T = mT - T = T(m-1)\]

We can define compensation (multiplier) c as how much you should multiply the target price T with:

    \[c \equiv m-1\]

to recover your fee/tax costs E:

    \[E = cT\]

e.g. if you need to charge the customer 1.43 times to breakeven after fees (given a 30% tax/fees rate), the overhead ‘item’ on the bill should be 0.43 (43%) of the target price. For a $100 item, you’ll need to bill your customer $43 more just to cover a 30% fees.

In summary, we have

    \[P \equiv T + E = (1+c)T\]

with c that can be figured out quickly as

    \[c = \frac{r}{s}\]

where r and s are both bounded between 0 and 1 which adds up to 1:

    \[r + s = 1\]

Take an example of 30% tax rate (r=0.3), the shrink is 70% (s=0.7), because the factors are complements to each other which adds up to 1.

    \[0.3 + 0.7 = 1\]

If you want to write it all in terms of shrinkage  s:

    \[c = \frac{1}{s}-1 = \frac{1-s}{s}\]

Since 1-s = r, we can rewrite the compensation (factor) in these complement terms (r,s), which I think it’s the easiest way to remember:

    \[c = \frac{r}{s}\]

or simply the rate r divided by shrinkage s,

You can also write it in terms of fees/tax rate r in full:

    \[c = \frac{r}{1-r}\]

e.g. if you have a 30% tax rate , you can find the compensation (factor) c by calculating 3/7, because it’s simply 30% over 70%.

To estimate the overhead charge to offset the fee percentage, or compensation c by multiplying with the target price T:





The gap (amount you get shortchanged by computing compensation c wrong) is:

    \[g \equiv c-r = \frac{r}{1-r}-r = \frac{r^2}{1-r}\]

The numbers look close enough (for the intuitive but wrong way) when it’s like around 10%, but your loss (overheads not charged) shoots up (non-linearly) as the fee/tax percentage goes up beyond 10%!

Fee percentage


Correct overhead % to charge

    \[c = \frac{r}{1-r} = \frac{r}{s}\]



5% 5.26% 0.26%
10% 11.11% 1.1%
20% 25% 5%
30% 42.86% 12.86%
40% 66.67% 26.67%
50% 100% 50%

Intuitively, you need to charge DOUBLE the target price if half of it gets taxed to breakeven, NOT adding half of the target price as the overhead! The FULL target price itself is the right overhead to charge for a 50% tax rate!

Since the numerator r is bounded because 0 \leq r < 1, the denominator (1-r) can blow up (the overhead needed to charge your customer) as it gets small (i.e. high tax/fee percentage). Here’s a plot of



e.g. A 66.6% imports tax rate means giving two cars to the government when you import one!

To push it to the extreme, 90% tax rate would mean 900% overhead, which means if you buy one car, you give the government 9 cars, assuming they don’t tax themselves. Your estimates are off by 10 times if you use the wrong method to compute the excess E making up for the tax that gets charged.

If people can think in terms of the excess you will need to earn EXTRA to offset the tax rate, you will think twice about letting the government dip in another 2% or so. That’s why welfare-state through taxes can be highly counter-productive when it get past certain point.

Advanced analysis for the intrigued

Just for fun, let’s investigate the impractical case (communist tyrants) when tax rates gets to 100% and above (r \geq 1):

Fee percentage


Correct overhead % to charge

    \[c = \frac{r}{1-r} = \frac{r}{s}\]



\vdots \vdot \vdots
90% 900% 810%
100% \infty \infty
200% -200% -400%
300% -150% -450%
\vdots \vdot \vdots
\infty -100%

When charged 100% tax rate, the government seize any gains from your production. There’s never enough overhead you can charge your customer to breakeven.

The more perverted case is what happens when you go above 100%, say at 200% tax rate? When you sell $100 worth of stuff, you pay the government $200 to do so. You are paying a $100 penalty to work/produce $100 for the government. Twisted!

Then how do we explain the negative numbers in the compensation (factor) c? In reality, it means you ALWAYS make a loss no matter what. There’s no way you can bill your customer to make up for the loss.

In the unrealistic (unicorn) case, if the benevolent crazy dictator is willing and able to compensates your losses (at the sales tax rate), aka giving you money back every time you lose money,

    \[P = (1+c)T\]

means the the magnifier m \equiv (1+c) < 0 for sure when r \ge 1. It’s illustrated in the graph as a deadzone

    \[-1 < \frac{r}{1-r} < 0\]


which you can verify the same by solving this inequality

    \[-1 < \frac{r}{1-r} \leq 0\]

and realize you get r-1 \ge r when (1-r) \leq 0, which boils down to saying -1 \ge 0 which is a contradiction.

That means to achieve target earnings T under tax rates above 100%, you should charge the customer negative amounts (i.e. giving away goods + money) in order to get the negative taxes (subsidy).

e.g. At 300% tax rate (r=3), it your sticker price (also target price) is $100, you’ll need to GIVE the customer $50 so the government will triple match your loss as a subsidy (which is $150), which is enough to cover the $50 giveaway (to the customer) plus the $100 so you’ll breakeven.

Having negative tax (subsidy) is a perverse incentive. Forget about maintaining a target earning (same as the original sticker price for the goods you are selling), just lose (give away) money as fast as you can to suck up as much subsidy as you can before the system collapse.

I still fondly recall my economics 301 (intermediate microeconomics professors) James Montgomery saying that “if you can graph it, it can possibly happen” in the lecture.

Even more sophisticated math for the geeks

Remember from above, the magnification factor m can be rewritten as the reciprocal of shrinkage factor s?

    \[m = \frac{1}{s} = \frac{1}{1-r}\]

which reminds me of geometric series

    \[\frac{1}{1-r} = 1 + r + r^2 + r^3 + \cdots}\]

given |r| < 1? For non-perverted cases, we are considering 0 \leq r < 1, which is well within the domain.

This gives an idea of approximating the compensation factor c:

    \[m \equiv 1+c = 1 + r + r^2 + r^3 + \cdots\]

which after taking 1 off both sides:

    \[c = r + r^2 + r^3 + \cdots\]

This explains exactly why people are wrong to just assume c is just r, because their false intuition kept ONLY the first order term in the power series approximation!

The gap (how much they are off with the WRONG way), is

    \[g \equiv c-r = \frac{r^2}{1-r} = r^2 + r^3 + \cdots\]

So while 0.1^2 dies fast enough (0.01) by 2nd order term, 0.9^2=0.81, 0.9^3 = 0.729 … are still very significant up to say 6th order term which makes it off by a factor of 8.1.

Yes, you are off by 1% when the tax rate is 10%, but you can be wrong by a factor of 8.1 times just multiplying the tax rate with the target price T to estimate the amount of excess E to collect to make up for the fees!


  • The total damage (bill) you should charge your customer can be calculated by dividing the target amount (of money you want to home free with) by the shrinkage, which is (1 – tax rate). e.g. 30% tax rate means 70% shrinkage. Divide the target by 0.7 to get the final bill
  • A shortcut to calculate how much you should put in (by multiplying with the target price) for an charge item on the bill to make up for the fees is (tax rate)/(shrinkage) e.g. 30% tax rate means 70% shrinkage. Multiply the target by 30/70 (or 3/7, which is 42%) to get the excess which covers the fee.
  • Do NOT attempt to use the rule of thumb to calculate the excess by just multiplying with the tax rate unless it’s 10% or less. The ‘rule of thumb’ assumed r^2 (and thus the higher powers) are insignificant, which is nowhere true for 0.1 and above based on this graph!


 73 total views

OKI C3200N Color LED Printer Toner Reset

I’ve had my C3200N printer as a workhorse for a decade until it died. Before I toss out the service manual and the instruction to reset the toner, I’ll put it here for those who still got mileage left for the printer

Here’s the service manual:

Back up here:

The important pages where the service menu is in page 124-125 (Maintenance Menu), 134-136 (Menu Tree), 152 (Factory mode = Do not cut fuse of consumables)


Summary (

*** Do NOT use NV-RAM INITIAL RESET. It’ll screw things up (like losing MAC address). You can go into the service menu to reset toner, drum, fuser and belt individually***

Here’s the directions by user “Nono” which I think it’s the best:

A C3200N here…

I never wanted to do the NVRAM complete reset because I was scared of losing the network MAC address as mention somewhere else on this forum. And basically controlling the consumable level independently was interesting… My c3200n printer was bought last month (09/2006), guessing here that the bios may be different depending on release date (this walkthrough might not work for everyone).

Sooooo, after much button pressing, restarts and coffees.. here it is:

Get to the standard “Diagnostic mode” as describe on this thread:

1) Turn off printer.

2) Turn on printer, while holding the + and – buttons.

3) The LCD Shows “OKI User”, Scroll to “Engine Diag Mode”, press “enter”.

The display shows “Diag Mode 01.02.02 S-Mode” as mention multiple times on this thread.

At this point you should wait for the initialization cycle to complete. I mean for all the motors and gears to have finished their noises and cycles – otherwise you will end up with a LCD switching between two different info screens – not a big deal but still annoying.

Now we want to go in “regist mode” by:

1) Pressing the “Online”, “Cancel”, “Enter”, “-” and “Back” AT THE SAME TIME (not in any sequence – at the same time). Yes! That is 5 buttons.

2) After within two seconds the LCD menu will show “READY”. If it doesn’t, release button and repress buttons again.

3) The buttons release sequence is important. So, read this before letting go your five fingers: Release the “Enter” button first and THEN the four others. LCD is still showing “READY”.

4) Press the “Online” and “Cancel” button at the same time BRIEFLY. Don’t wait before pressing them after the five fingers sequence otherwise you will miss your time slot.

You can always switch back from the “READY” to the “Diag Mode 01.02.02 S-Mode” menu by pressing the five buttons again.

Don’t laugh. I know it seems a lot of gymnastic. Well I guess they didn’t want the user to find that one easily.

Now you see “Eng Diag Level 2”

Taking from someone else on this thread (with some modifications for the c3200n):

Press either the + or – button until “CONSUMABLE COUNTER SET” is displayed, press the Enter button; you are now in the menu to set various consumables.

1) Press either the + or – buttons to scroll through the various consumables, at the desired consumable (ie. “K-ID UNIT …” for the Black Image Drum Unit, “C-Toner” for cyan toner, etc.), press the Enter button and the last digit of the count will start flashing.

2) Press the Cancel button to decrease the digit amount or press the On-line button to increase the digit amount; press the + or – buttons to move along individual digits in the count. Note that it will not show the remaining but the usage (100\% means it is empty).

7) Once the count is at the level you desire, press and hold the On-line, Cancel simultaneously until the numbers stop flashing; you have reset that consumable’s count to the number you specified. Note that you may end up with a different value then the one that was entered when saving. The printer engine is probably jumping to the nearest registered/acceptable value. If someone find a way to save the exact value, let us know.

8) Press the + or – buttons to move to the next consumable and repeat at step 5.

9) Once all consumable counts have been set to desired amounts that are below their end-of-life thresholds, you can use the Back, +, & – buttons to exit through the menus (reverse of steps 2 through 4) until “INITIALIZING” is displayed. Or turn printer off and on.

10) You’re finished! Now log in to the web interface with your browser and check to see the remaining life of your consumables.

There is another way to get to the “Eng Diag Level 2” menu – I did it at one point but wasn’t able to reproduce. But this method worked for me even if you may need some practice. You can also get to level 3 and level 4 after the release of the five fingers step by pressing something else then the “online” and “cancel”.

Good luck.

by unknown on Oct 19, 2006 at 12:46pm

 67 total views,  2 views today

termdd.sys BSOD because of remote hack attempts

Recently my computer keeps ‘randomly’ getting BSOD over “termdd.sys” and “IRQL_NOT_LESS_OR_EQUAL”. Upon some research on “termdd.sys”, I noticed there’s a RDP heap corruption attack ( for RDP services.

In the past, I opened up my computer’s RDP service to the wild (bad practice) by routing the traffic to the right computer. The attempts did not successfully break into my computer, but in the process, these villains are corrupting my computer memory (heap) thus causing the BSOD.

Instead, I plugged the bad practice of opening up web services that are only for me to use. Instead connect to my home network using VPN when I need to access my computers. Since then the BSOD disappeared.

Lesson learned: Your computer is not hacked by a remote exploit (probably patched enough) doesn’t mean the exploit won’t trash your computer memory till it crashes. Better use a VPN than directly opening up RDP to the wild internet.

 73 total views,  1 views today

Handmade Powerful 100W flashlight

I had an old LED COB light that the power conversion circuit failed, so I decide to gut it and turn it into a lantern / flashlight with a spare 6V sealed acid battery, using a simple DC-DC (boost) converter board.

The 6V lead acid battery eventually died so I converted the unit to accept 6V~12V from outside. The whole lanter was made from whatever leftovers/excess materials I have in my lab, including a PC fan I got for free after rebates years ago. The case is made out of the case for a roll of lint-free alcohol wipes.

 95 total views

Taiwanese Idioms 臺灣俚諺 懶鳥比雞腿、捧人LP



「痧疥懶看做釘珠小刀柄」: 眼花看錯



 402 total views,  1 views today

Foobar2000 alternatives for Linux

I am a big fan of foobar2000 because it’s one of the most terse yet flexible package for playing music. I tried using RhythmBox that came with Linux Mint, but it’s annoying as hell. When you double click an audio file, it’ll adds to a default playlist and after it finished playing, it’ll go and play other songs you’ve previously clicked (because they were accumulated on the playlist).

Out of frustration, I tried to stick with my favorite, I found foobar2000 has a wine port available on Snap package manager. Downloaded it and realized it has a lot of work to do to make it work on linux:

  • Fonts do not scale. It’s always that tiny and not all the UI controls looks odd
  • The paths assumed windows drive letters. Sometimes if I drag and drop files from a bitlocker drive (mounted with dislocker), it’ll assume the file came from some complicated path under Z:\. WTF

Ended up downloading Clementine. It at least let me remove songs from the playlist by pressing “Del” button. But I’m not happy that it doesn’t have CDDB.

Turns out there are better options the Clementine. I found this StackExchange while searching for FreeDB options:

Turns out DeaDBeeF (a hex pun) looks like a watered down version of foobar2000. So, Clementine, Foobar2000-Wine and RhythmBox is out.

 889 total views,  3 views today

Advanced classical Taiwanese swears 100年前台灣人都罵什麼髒話?絕對不只「X你娘」,一口氣譙完



 174 total views

FREE oscilloscopes for innovators in response to #ChinaVirus #CCPvirus

In the time of national emergency against the Chinese Communist Party Virus, or #CCPvirus in short, we are glad to offer FREE basic 100Mhz oscilloscopes (or mixed-signal oscilloscopes) to makers and engineers in the US who are stepping up with innovations to help.

Example include:

  • Simple ventilators that can be built quickly within US (
  • Robots that reduce direct human interaction with the infected patients
  • Machines that sanitize the contaminated environment quickly and efficiently
  • Any innovation you can come up with to help the front-line medical staff, produce the medical supplies we need, improve the logistics, and means to slow the spread.

Just send me (to

  • a project description
  • why you need the oscilloscope
  • whether you need the logic analyzer function (mixed-signal)
  • does your project require fancy oscilloscope features like FFT, calculus, phase difference, deep memory, talking to the PC
  • your name, address and phone number for shipping

and I’ll make the arrangements immediately.

Currently available models (subject to availability)

  • HP 54645A
  • HP 54645D
  • Agilent 54622D (Mixed-Signal)
  • HP 6632B Systems Power Supply (20V, 5A, Fast recovery)

These models has a no-brainer learning curve for any motivated maker/engineer who are up to the game innovating something serious. Time is ticking. We want you to use the oscilloscope right away! Higher bandwidth oscilloscopes are available as loaner if your project justifies it.

It’s on an honor system. Please don’t abuse the program so the innovators who genuinely need the oscilloscope will have what they need!

We thank all the innovators who contribute their time and effort in response to the CCP virus outbreak!

Stay safe, wash your hands, and stay home whenever practical.
Save lives by slowing the spread within our medical system’s capacity.

 234 total views