Finance
This handbook page details processes specific to working with and within this department.
Team
Role | Contributor(s) |
---|---|
Finance Engineer | Isabell Reedy (@ireedy) |
Contact us
- To make a request of this department, create an issue and a team member will get back to you within one business day (If urgent, mention a team member in #g-finance.
- Please use issue comments and GitHub mentions to communicate follow-ups or answer questions related to your request.
- Any Fleet team member can view the kanban board for this department, including pending tasks and the status of new requests.
Responsibilities
The Finance department is directly responsible for accounts receivable including invoicing, accounts payable including commision calculations, exspense reporting including Brex memos and maintaining accurate spend projections in "🧮The numbers", sales taxes, payroll taxes, corporate income/franchise taxes, and financial operations including bank accounts and cash flow management.
Run payroll
Many of these processes are automated, but it's vital to check Gusto and Plane manually for accuracy.
- Salaried fleeties are automated in Gusto and Plane.
- Hourly fleeties and consultants are a manual process each month in Gusto and Plane.
Payroll type | What to use | DRI |
---|---|---|
Commissions and ramp | "Off-cycle - Commission" payroll | Finance Engineer |
Sign-on bonus | "Bonus" payroll | Finance Engineer |
Performance bonus | "Bonus" payroll | Finance Engineer |
Accelerations (quarterly) | "Off-cycle - Commission" payroll | Finance Engineer |
US contractor payroll | "Off-cycle" payroll | Finance Engineer |
To complete payroll for a salaried US employee, use the following steps:
- Log in to your admin Gusto account.
- Navigate to Pay > Run payroll > Run payroll.
- Navigate to the Digital Experience board, and search for "welcoming" issues or "offboarding" issues.
- Ensure that new hires during the payroll period have accurate hours and salary rates reflected (compare with the equity plan), and that offboarded employees' final hours are correctly recorded and their final payroll processed.
- Check for any workiversary compensation changes for the month and ensure they're correctly reflected in both Gusto and the equity plan.
- Once the above is verified correct, ensure payment is via direct deposit and select "Review summary".
- Ensure the payroll date is the last business day of the month, and hit submit.
To complete payroll for a salaried international employee, use the following steps:
- Log in to your admin Plane account.
- While Fleet considers all Fleeties employees, Plane differentiates between employees (that Fleet employs directly) and International contractors (that Fleet employs via a contracted company).
- Verify the number of employees in each country by checking the "Stats" tab in the Fleeties doc. If the numbers seem incorrect, cross-reference with the main Fleeties tab to ensure all employees are accounted for in Plane.
- Verify that all teammates have a planned (or already processed) payroll.
- To check payroll for those Plane considers "employees", go to Payroll > History.
- Verify that any employees getting paid more frequently than monthly have had their payments processed throughout the month (Canada only currently).
- Navigate to the Digital Experience board, and search for "welcoming" issues or "offboarding" issues.
- Ensure that new hires during the payroll period have accurate hours and salary rates reflected (compare with the equity plan), and that offboarded employees' final hours are correctly recorded and their final payroll processed.
- Check for any workiversary compensation changes for the month and ensure they're correctly reflected in both Plane and the equity plan.
- If anything is incorrect, open a "help" ticket using the purple help button and schedule a change/correction for the following pay cycle (note Plane takes more time to process so it is not possible to make instantaneous changes to rectify issues)
- To check payroll for those Plane considers "contractors", go to "Payments" > "Pay contractors".
- Navigate to the "scheduled" tab in the top right of screen to look at what is currently scheduled to be paid.
- Ensure all teammates have a pending payment (except those that invoice for payment).
- Navigate to the Digital Experience board, and search for "welcoming" issues or "offboarding" issues
- Ensure that new hires during the payroll period have accurate hours and salary rates reflected (compare with the equity plan), and that offboarded employees' final hours are correctly recorded and their final payroll processed.
- Check for any workiversary compensation changes for the month and ensure they're correctly reflected in both Plane and the equity plan.
- If anything is incorrect, open a "help" ticket using the purple help button and schedule a change/correction for the following pay cycle (note Plane takes more time to process so it is not possible to make instantaneous changes to rectify issues)
- If all payments are scheduled or processing and are correct, no action needed. This payroll will process successfully without intervention.
- To check payroll for those Plane considers "employees", go to Payroll > History.
To complete payroll for a US contractor, use the following steps:
- Log in to your admin Gusto account.
- Navigate to Time & Attendance > Time tracking > Review & Sync.
- Click "Sync hours to payments" and confirm that the dates reflect the period from the 27th of the previous month to the 26th of the current month.
- Cross-check total hours for contractors in Gusto to the total hours in the KPI spreadsheet to ensure they're correct. Since the KPI spreadsheet tracks hours weekly, ensure any discrepancies are validated.
- Once all entries have been validated, click Sync and lock timesheets > Continue.
- Validate payment amounts are correct, then submit payments.
To complete payroll for an international contractor, use the following steps:
- Contractors in Plane will submit invoices for payment at the end of the month.
- When the contractor submits the invoice for payment, log in to Plane and validate that the amount of hours is in line with time worked, by having their manager review.
- If their manager verifies that the hours are as expected, process the invoice.
- Note: Approving the invoice for payment does not automatically schedule the payment. You will then need to navigate to "Pay contractors" and schedule the payment.
Reconcile monthly recurring expenses
Recurring monthly or annual expenses, such as the tools we use throughout Fleet, are tracked as recurring, non-personnel expenses in "🧮 The Numbers" (¶confidential Google Sheet), along with their payment source. Reconciliation of recurring expenses happens monthly.
Use this spreadsheet as the source of truth. Always make changes to it first before adding or removing a recurring expense. Only track significant expenses. (Other things besides amount can make a payment significant; like it being an individualized expense, for example.)
Register Fleet as an employer with a new state
Fleet must register as an employer in any state where we hire new teammates. To do this, complete the following steps in Gusto:
- After a new teammate completes their Gusto profile, the Finance department will be prompted to approve it for payroll. Sign in to your Gusto admin account and begin the approval process.
- Select "yes" when prompted to file a new hire report and complete the approval process.
- Once the profile is approved, navigate to Tax setup and select the state you’d like to register Fleet in.
- Select “Have us register for you” and then “Start registration.”
- Verify, add, and amend any company information to ensure accuracy.
- Select “Send registration” and authorize payment for the specified amount. CorpNet will then send an email with next steps, which vary by state.
- Update the list of states that Fleet is currently registered with as an employer.
Process an email from a state agency
From time to time, you may get notices via email (or in the mail) from state agencies regarding Fleet's withholding and/or unemployment tax accounts. You can resolve some of these notices on your own by verifying and/or updating the settings in your Gusto account.
If the notice is regarding an upcoming change to your deposit schedule or unemployment tax rate, make the required change in Gusto, such as:
- Update your unemployment tax rate.
- Update your federal deposit schedule.
- Update your state deposit schedule.
In Gusto, you can click How to review your notice to help you understand what kind of notice you received and what additional action you can take to help speed up the time it takes to resolve the issue.
Note: Many agencies do not send notices to Gusto directly, so it’s important that you read and take action before any listed deadlines or effective dates of requested changes, in case you have to do something. If you can't resolve the notice on your own, are unsure what the notice is in reference to, or the tax notice has a missing payment or balance owed, follow the steps in the Report and upload a tax notice in Gusto.
Every quarter, payroll and tax filings are due for each state. Gusto can handle these automatically if Third-party authorization (TPA) is enabled. Each state is unique and Gusto has a library of State registration and resources available to review. You will need to grant Third-party authorization (TPA) per state and this should be checked quarterly before the filing due dates to ensure that Gusto can file on time. -->
Review state employment tax filings for the previous quarter
Every quarter, payroll and tax filings are due for each state. Gusto automates this process, however there are often delays or quirks between Gusto's submission and the state receiving the filings. To mitigate the risk of penalties and to ensure filings occur as expected, follow these steps in the first month of the new quarter, verifying past quarter submission:
- Create an issue to "Review state filings for the previous quarter".
- Copy this text block into the issue to track progress by state:
States checked:
- [ ] California
- [ ] Colorado
- [ ] Connecticut
- [ ] Florida
- [ ] Georgia
- [ ] Hawaii
- [ ] Illinois
- [ ] Kansas
- [ ] Maryland
- [ ] Massachusetts
- [ ] New York
- [ ] Ohio
- [ ] Oregon
- [ ] Pennsylvania
- [ ] Rhode Island
- [ ] Tennessee
- [ ] Texas
- [ ] Utah
- [ ] Virginia
- [ ] Washington
- [ ] Washington, DC
- [ ] West Virginia
- [ ] Wisconsin
- Login to Gusto and navigate to "Taxes and compliance", then "Tax documents".
- Login to each State portal (using the details saved in 1Password) and verify that the portal has received the automated submission from Gusto.
- Check off states that are correct, and use comments to explain any quirks or remediation that's needed.
Update Finance department KPIs
Use the following steps to update the 💸Finance department KPIs by 5pm US central time every Friday.
Runway:
- Add sum of Brex cash account + SVB accounts. All Finance teammates should have personalized logins for each bank to view amounts.
- Send the CEO a Slack DM with the balance of each of Fleet's two bank accounts.
Days to invoice customer:
- Check the invoice sent and payment received report in Salesforce.
- Sort by close date, then check invoice dates for any recently closed deals and enter them in the finance spreadsheet and create new rows at the top of the 'time-to-invoice' tab in the spreadsheet for each new entry. If a company has not been invoiced yet (invoice date is blank) do not enter yet, but verify if an invoice is scheduled to be sent using the Invoice status and upcoming bill dates report. If it doesn't appear here, create an issue on the finance board to investigate.
- Open the "Time-to-invoice" tab in the 💸 Finance metrics spreadsheet. Enter the year and month + customer name in column A, then the # of days between the close date and the invoice date in column B. After entering new entries you will probably have to adjust the formula in column D to include the new cells in the average and make sure the formula includes no further back than the last three months of invoices.
Overdue delinquent invoices:
- Using the Invoice status and upcoming bill dates report, check the invoice date of any entries without a payment received date against the payment terms.
- If the elapsed time exceeds the payment terms the invoice is overdue. If so, click on the link in the "Billing cycle name," and in the billing cycle object, update the billing status to "Overdue."
- Enter the number of invoices overdue in the KPI spreadsheet, and leave a comment on that cell with the names of the companies of overdue customers, if any.
- If any new customers are overdue, notify the CRO by posting a Slack message in the #g-sales channel and @ mention him.
Commission payroll:
- Make sure commission payroll was run on time by logging into Gusto and Plane to check for off-cycle payrolls in line with expected commission calculated in the Commission calculator spreadsheet.
- Log the date the commission was paid out in the "Commission payroll" column of the KPI spreadsheet.
Monthly accounting:
- This will be the date that the monthly accounting issue for the prior month closes. If it has not yet closed, enter N/A.
Days to pay:
- Login to Bill.
- Under the "bills" tab on the menu bar on the left side, select "all bills".
- Sort by "created date."
- Compare the week's entries to the "Time to pay" tab in the finance metrics spreadsheet. Insert new rows at the top for any bills that are not accounted for and enter the vendor name and the # of days between the invoice date and the created date in bill.com.
- Adjust the formula in column E as necessary to calculate the last 30 day average time to pay and enter the result in the KPI spreadsheet.
- If we have any invoices that have not yet been paid that are overdue, make an entry in the overdue vendor payments section and leave a comment in the cell identifying the vendor's name.
Non-personnel monthly burn:
- Copy the amount from the numbers spreadsheet and input in the cell for this week.
SaaS metrics:
For "CAC", "CAC payback", "LTV" and "LTV:CAC" columns, drag the existing formula to this week's row.
Note: the formula relies on inputs in other fields, so if those fields haven't received input yet, it will look odd. If formulas are still broken after inputs in the other columns are added, create an issue on the Finance board noting which columns are affected. Once created, @ mention Finance Engineer in the issue to bring awareness.
For "Average customer age", pull the age in days from the Salesforce "Account age" report, then convert to months by dividing the age in days by 30.417. Put the calculated number into the cell. This metric changes gradually up each week when no new deals close and no customer churns. Because we calculate the age of the customer based on the average lifetime deal length, expected behavior is that it will decrease when a new deal closes, but not drastically (as even a 1-year deal will still add 12 months to the average age).
Create an invoice
To create a new invoice for a Fleet customer, follow these steps:
- Go to the invoice folder in Google Drive.
- Create a copy of the invoice template, and title the copy
[invoice number] Fleet invoice - [customer name]
.- The invoice number follows the format of
YYMMDD[daily issued invoice number]
, where the daily issued invoice number should equal01
if it's the first invoice issued that day,02
if it's the second, etc.
- The invoice number follows the format of
- Edit the new invoice to reflect details from the signed subscription agreement (and PO if required).
- Enter the invoice number (and PO number if required) into the top right section of the invoice.
- Update the date of the invoice to reflect the current date.
- Make sure the payment terms match the signed subscription agreement.
- Copy the customer address from the signed subscription agreement and input it in the "Bill to" section of the invoice.
- Copy the "Billing contact" email from the signed subscription agreement and add it to the last line of the "Bill to" address.
- Make sure the start and end dates of the contract and amount match the subscription agreement.
- If professional services are included in the subscription agreement, include as a separate line in the invoice, and ensure the amounts total correctly.
- Ensure the "Notes" section has wiring instructions for payment via SVB.
- Download the completed invoice as a PDF.
- Send the PDF to the billing contact from the "Bill to" section of the invoice and cc Fleet's billing email address. Use the following template for the email:
Subject: Invoice for Fleet Device Management [invoice number]
Hello,
I've attached the invoice for [customer name]'s purchase of Fleet Device Management's premium subscription.
For payment instructions please refer to your invoice, and reach out to [insert Fleet's billing address] with any questions.
Thanks,
[name]
- Update the opportunity and the opportunity billing cycle in Salesforce to include the "Invoice date" as the day the invoice was sent.
- Notify the AE/CSM that the invoice has been sent.
Certain vendors require invoices submitted via a payment portal (such as Coupa). Once you've generated the invoice using the steps above, upload it to the relevant payment portal and email the billing contact to let them know you've submitted the invoice.
Provide payment information to a customer
For customers with large deployments, Fleet accepts payment via wire transfer or electronic debit (ACH/SWIFT).
Payment information for customers within the United States is on Fleet's invoices. Typically, payment information does not need to be sent separately.
For Fleet customers outside of the United States or instances where a customer is requesting payment information prior to invoicing, provide remittance information to customers by exporting "💸 Paying Fleet" into a PDF, then sending that to the prospect.
Communicate the status of customer financial actions
This reporting is performed to update the status of open or upcoming customer actions regarding the financial health of the opportunity. To complete the report:
- Check SVB and Brex for any recently received payments from customers and record them in SFDC.
- Go to this report folder in SFDC. The three reports will provide the data used in the report.
- Copy the template below and paste it into the #g-sales slack channel and complete all "todos" using the data from Salesforce before sending.
Weekly revenue report - [@`todo: CRO` and @`todo: CEO`]
- Number accounts with outstanding balances = `todo`
- Number of customers awaiting invoices = `todo`
- Number of past-due renewals = `todo`
- Send payment reminders via email to all outstanding accounts by responding to the invoice email initially sent to the customer.
Hello,
This is a reminder that you have an outstanding balance due for your Fleet Device Management premium subscription.
We have included the invoice here for your convenience.
For payment instructions please refer to your invoice, and reach out to [Fleet's billing contact] with any questions.
Thanks,
[name]
- If any accounts will become overdue within a week, reply in thread to the slack post, mention the opportunity owner of the account, and ask them to notify their contact that Fleet is still awaiting payment.
- If Finance is still awaiting a PO one week after the opportunity has been closed/won, reply to the thread in the Slack post, mention the CSM, and ask them to follow up with their customer contact.
- Review the billing cycles report in SFDC for customers on multiyear deals. For any customers due for invoicing within the next week, create an issue on the Finance board.
Obtain a copy of Fleet's W-9
A recent signed copy of Fleet's W-9 form can be found in this confidential PDF in Google Drive.
Run US commission payroll
- Update individual teammates commission calculators (linked from main commission calculator) with new revenue from any deals that are closed-won (have a subscription agreement signed by both parties) and have a close date within the previous month.
- Verify closed-won deal numbers with CRO to ensure any agreed upon exceptions are captured (eg: CRO approves an AE to receive commission on a renewal deal due to cross-sell).
- In the "Monthly commission payroll party" meeting, present the commission calculations for Fleeties receiving commission for approval.
- If there are any quarterly accelerators due for the teammate receiving commission, ensure the individual total includes both the monthly and the quarterly amount.
- After the amounts are approved in the meeting, process the commission payroll.
- Use the off-cycle payroll option in Gusto. Be sure to classify the payment as "Commission" in the "other earnings" field and not the generic "Bonus."
- Once commission payroll has been run, update the main commission calculator to mark the commission as paid.
Run international commission payroll
Follow the steps in run US commission payroll to have the commission amounts approved by the CRO.
After the amounts are approved in the "Monthly commission payroll party", navigate to Help > Ask a question in Plane to request a commission payment for the teammate.
Send a message using the following template
Hello, I’d like to run an off-cycle commission payment for [teammate’s full name] for the period of [commission period]. The amount of [USD amount] should be paid with their next payroll. Please let me know if you need any additional information to process this request. Thanks, [name]
Once Plane confirms the payroll change has been actioned, update the main commission calculator to mark the commission as paid.
Run quarterly or annual employee bonus payroll
- Update individual teammate bonus calculator (linked from main commission calculator) with relevant metrics.
- Bonus plans will have details specified on how to measure success, with most drawing from the KPI spreadsheet or from linked SFDC reports. If unsure where to pull achievement metrics from, contact teammate's manager to clarify.
- In the "Monthly commission payroll party" meeting, present the bonus calculations for Fleeties receiving bonus for approval.
- After the amounts are approved in the meeting, process the bonus payroll.
- Use the off-cycle payroll option in Gusto and be sure to classify the payment as "Bonus".
- For international teammates, you may need to use the "Help" function, or email support to notify Plane of the amount needing to be paid.
- Once bonus payroll has been run, update the main commission calculator to mark the bonus as paid.
Process monthly accounting
Create a new montly accounting issue for the current month and year named "Closing out YYYY-MM" in GitHub and complete all of the tasks in the issue. (This uses the monthly accounting issue template.
- SLA: The monthly accounting issue should be completed and closed before the 7th of the month.
- The close date is tracked each month in KPIs.
- When is the issue created? We create and close the monthly accounting issue for the previous month within the first 7 days of the following month. For example, the monthly accounting issue to close out the month of January is created promptly in February and closed before the end of the day, Feb 7th. A convenient trick is to create the issue on the first Friday of the month and close it ASAP.
Respond to low credit alert
Fleet admins will receive an email alert when the usage of company cards for the month is aproaching the company credit limit. To avoid the limit being exceeded, a Brex admin will follow these steps:
- Sign in to Fleet's Brex account.
- On the landing page, use the "Move money" button to "Add funds to your Brex business accounts".
- Select "Transfer from a connected account" and select the primary business account.
- Choose the "One time" transfer option and process the transfer.
No further action needs to be taken, the amount available for use will increase without disruption to regular processes.
Check franchise tax status
No later than the second month of every quarter, we check Delaware divison of corporations to ensure that Fleet has paid the quarterly franchise tax amounts to remain in good standing with the state of Delaware.
- Go to the DCIS - eCorp website and use the details in 1Password to look up Fleet's status.
- If no outstanding amounts: the tax has been paid.
- If outstanding amounts shown: ensure payment before due date to avoid penalties, interest, and entering bad standing.
Check finances for quirks
Every quarter, we check Quickbooks Online (QBO) for discrepancies and follow up on quirks.
- Check to make sure bookkeeping quirks are all accounted for and resolved or in progress toward resolution.
- Check balance sheet and profit and loss statements (P&Ls) in QBO against the latest monthly workbooks in Google Drive. Ensure reports are in the "accural" accounting method.
- Reach out to Pilot with any differences or quirks, and ask them to resolve/provide clarity. This often will need to happen over a call to review sycnhronously.
- Once quirks are resolved, note the day it was resolved in the spreadsheet.
Report quarterly numbers in Chronograph
Follow these steps to perform quarterly reporting for Fleet's investors:
- Login to Chronograph and upload our profit and loss statement (P&L), balance sheet and cash flow statements for CRV (all in one book saved in Google Drive.
- Provide updated metrics for the following items using Fleet's KPI spreadsheet.
- Headcount at end of the previous quarter.
- Starting ARR for the previous quarter.
- Total new ARR for the previous quarter.
- "Upsell ARR" (new ARR from expansions only- Chronograph defines "upsell" as price increases for any reason. - Fleet does not "upsell" anything; we deliver more value and customers enroll more hosts), downgrade ARR and churn ARR (if any) for the previous quarter.
- Ending ARR for the previous quarter.
- Starting number of customers, churned customers, and the number of new customers Fleet gained during the previous quarter.
- Total amount of Fleet customers at the end of the previous quarter.
- Gross margin %
- How to calculate: (total revenue for the quarter - cost of goods sold for the quarter)/total revenue for the quarter (these metrics can be found in our books from Pilot). Chronograph will automatically conver this number to a %.
- Net dollar retention rate
- How to calculate: (starting ARR + new subscriptions and expansions - churn)/starting ARR.
- Cash burn
- How to calculate: start of quarter runway - end of quarter runway.
Deliver annual report for venture line
Within 60 days of the end of the year, follow these steps:
- Provide Silicon Valley Bank (SVB) with our balance sheet and profit and loss statement (P&L, sometimes called a cashflow statement) for the past twelve months.
- Provide SVB with our board-approved annual operating budgets and projections (on a quarterly granularity) for the new year.
- Deliver this as early as possible in case they have questions.
Process a new vendor invoice
Fleet pays its vendors in less than 15 business days in most cases. All invoices and tax documents should be submitted to the Finance department using the appropriate Fleet email address (confidential Google Doc).
- After making sure the invoice received from a new vendor is valid, add the new vendor to the recurring expenses section of "The numbers" before paying the invoice.
- If we have not paid this vendor before, make sure we have received the required W-9 or W-8 form from the vendor. Accounting cannot process a payment without these tax forms for compliance reasons.
- US-based vendors are required to complete a W-9 form.
- Non-US based vendors and individuals are required to follow these instructions and provide a completed W-8BEN-E form.
Process a request to cancel a vendor
- Make the cancellation notification in accordance with the contract terms between Fleet and the vendor, typically these notifications are made via email and may have a specific address that notice must be sent to. If the vendor has an autorenew contract with Fleet there will often be a window of time in which Fleet can cancel, if notification is made after this time period Fleet may be obligated to pay for the subsequent year even if we don't use the vendor during the next contract term.
- Once cancelled, update the recurring expenses section of The Numbers to reflect the cancellation by changing the projected monthly burn in column G to $0 and adding "CANCELLED" in front of the vendor's name in column C.
Rituals
The following table lists this department's rituals, frequency, and Directly Responsible Individual (DRI).
Stubs
The following stubs are included only to make links backward compatible.
Secure company-issued equipment for a team member
Please see handbook/engineering#secure-company-issued-equipment-for-a-team-member.
Register a domain for Fleet
Please see handbook/register-a-domain-for-fleet.
Updating personnel details
Please see handbook/engineering#update-personnel-details.
Fix a laptop that's not checking in
Please see handbook/engineering#fix-a-laptop-thats-not-checking-in
Enroll a macOS host in dogfood
Please see handbook/engineering#enroll-a-macos-host-in-dogfood
Enroll a Windows or Ubuntu Linux device in dogfood
Please see handbook/engineering#enroll-a-windows-or-ubuntu-linux-device-in-dogfood
Enroll a ChromeOS device in dogfood
Please see handbook/engineering#enroll-a-chromeos-device-in-dogfood
Lock a macOS host in dogfood using fleetctl CLI tool
Please see handbook/engineering#lock-a-macos-host-in-dogfood-using-fleetctl-cli-tool
Book an event
Please see handbook/engineering#book-an-event
Order SWAG
Please see handbook/engineering#order-swag