Closed gratipay-bot closed 6 years ago
Starting!
Backup taken and verified.
Script ran for 53 seconds (0:00:53.731120).
gratipay::DATABASE=> update exchange_routes set fee_cap = 20.00 where fee_cap is null and network = 'paypal';
UPDATE 13
POSTed MassPay back to Gratipay for 63 users.
$ | |
---|---|
MassPay | 1,573.24 |
5x | 7,866.2 |
Balance | 6,343.32 |
Added | 2,000.00 |
uh what the heck? 50% unsuccessful transactions but normal amount transferred? @whit537 ?
How many new givers did we approve? (roughly)
@rohitpaulk I approved 2.
50% unsuccessful transactions but normal amount transferred?
:flushed:
We had a couple high weeks a month or two ago, but not that high. Hmm ... :thinking:
Looks like this is due to a high number of built up charges...
-- Exchanges by status, this payday
SELECT COUNT(*), status
FROM exchanges
WHERE amount > 0 -- Only payins
AND timestamp > CURRENT_TIMESTAMP - interval '1 day'
GROUP BY status;
count | status
-------+-----------
41 | failed
48 | succeeded
-- Exchanges by status, last payday
SELECT COUNT(*), status
FROM exchanges
WHERE amount > 0 -- only payins
AND timestamp > CURRENT_TIMESTAMP - interval '8 day'
AND timestamp < CURRENT_TIMESTAMP - interval '1 day'
GROUP BY status;
count | status
-------+-----------
4 | failed
38 | succeeded
-- Exchanges by amount, this payday
SELECT COUNT(*) as count, amount + fee AS total
FROM exchanges
WHERE amount > 0 -- Only payins
AND timestamp > CURRENT_TIMESTAMP - interval '1 day'
GROUP BY total
ORDER BY count DESC;
count | total
-------+--------
51 | 10.10 ----- Looks important. A large number of payments that are $9.5 in amount, $0.6 in fees.
6 | 10.61
3 | 10.20
3 | 12.67
etc...
-- When users joined, this payday
SELECT justify_days(CURRENT_TIMESTAMP - p.claimed_time)
FROM exchanges
JOIN participants p ON p.username = exchanges.participant
WHERE amount > 0 -- only payins
AND status = 'failed'
AND timestamp > CURRENT_TIMESTAMP - interval '1 day';
2 years - 4 years, mostly.
-- distribution by amount
SELECT COUNT(*), pi.amount
FROM exchanges
JOIN participants p ON p.username = exchanges.participant
JOIN payment_instructions pi ON pi.participant_id = p.id
JOIN teams t ON t.id = pi.team_id
WHERE exchanges.amount > 0 -- only payins
AND status = 'failed'
AND timestamp > CURRENT_TIMESTAMP - interval '1 day'
GROUP BY pi.amount;
count | amount
-------+--------
6 | 0.00
35 | 0.10
2 | 0.25
3 | 0.50
1 | 1.00
2 | 5.00
1 | 9.00
1 | 12.00
Most of the failed payments are to the Gratipay team.
Received the following from Digital Ocean. Related to payday, @clone1018 @rohitpaulk?
Please verify that it’s you
Your sign in attempt seems a little different than usual. This could be because you are signing in from a different device or a different location.
If you are attempting to sign-in, please use the following code to confirm your identity:
[]
Here are the details of the sign-in attempt: Thursday, August 08/03/17 at 16:44 MST Account: vendors@gratipay.com Location: US IP Address: [] Operating system: OS X 10.11.6 64-bit Browser: Chrome
If this wasn’t you, please reset your password. Like always, if you have any questions please respond to this email to open a support ticket.
Yours securely, Team DigitalOcean
That was me, clicked the wrong login :(
All good. ☺️
Awesome debugging, @rohitpaulk. If at the end of the month our failure rate is > 15%, we'll have something pretty solid to report to Braintree.
justify_days
TIL 😄
Anything left before closing, @clone1018?
Just terror :)
← Payday 269
Runbook
http://inside.gratipay.com/howto/run-payday
Checklist
Rotation