FindPage
View Source:
Billing
Note:
You are viewing an old version of this page.
View the current version.
Prototype !! Buckets Consume: Sink for consumed service; source for refunds Service: Current allocation for service (can go negative if customer desires, or act as access cutoff) Balance: Current customer balance not allocated for service (can go negative as consumed, or positive if prepaid) Invoice: Amount owed on current invoice !! Ticks ! Automatic Ticks * Service tick ** Service -> Consume *** Consumes a bit of service **** once a day for daily consumption (disk, etc) **** once a month for granular service (hosting) **** once a year for registration (domain) * Refund tick ** Service -> Balance *** Refund for unused service, in case of overprovisioning or unconfigured service * Billing tick ** Balance -> Service *** Replenishes Service with enough to cover the next billing period * Invoice tick ** Invoice -> Balance *** Bring Balance from negative to zero to account for currently owed outstanding *** Bring Invoice from positive to zero to account for overpayment * Payment tick ** Outside -> Invoice *** Incoming payments are placed here until they're accounted for by an invoice run ! Manual Ticks * Prepay tick ** Invoice -> Balance *** Preemptively move money to indicate a customer's desire to prepay by owing more on next invoice than is actually outstanding * Service Refund tick ** Consume -> Service *** Refund for consumed but unprovided service (outage, etc) !! Invoice Generation # Generate Refund tick to refund unused service # Generate Billing tick to fund next billing period # Generate Invoice tick to account for payments and refunds # Compute invoice values and lines from all ticks between current and previous Invoice tick !! Example flows * 20-Dec: January period starts December 20th * 29-Dec: New customer provisioned for $10.00 VHOST MED service * 29-Dec: Bucket balances: C:0 S:0 B:0 I:0 * 01-Jan: Service tick: $10.00 VHOST MED - S->C - C:10 S:-10 B:0 I:0 * 20-Jan: February billing period starts * 20-Jan: Refund tick (none necessary, since service was consumed) * 20-Jan: Billing tick - B->S - C:10 S:10 B:-20 I:0 * 20-Jan: Invoice tick - I->B - C:10 S:10 B:0 I:-20 Sample invoice: <pre> $10.00 - VHOST MED: example.com 2011-Jan $10.00 - VHOST MED: example.com 2011-Feb ---- $20.00 - Amount due </pre> * 30-Jan: Payment tick: $20.00 * 01-Feb: Service tick: $10.00 VHOST MED - S->C - C:20 S:0 B:0 I:10 * 20-Feb: March billing period starts * 20-Feb: Refund tick (none necessary) * 20-Feb: Billing tick - B->S - C:20 S:10 B:-10 I:10 * 20-Feb: Invoice tick - I->B - C:20 S:10 B:0 I:0 <pre> $20.00CR - Payment received 2011-01-30, Thank you! $10.00 - VHOST MED: example.com 2011-Mar ---- $10.00 - Amount due </pre>