FRACTIONAL CFO & ECOM DATA ANALYST

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Part Time

WAGE / SALARY

40,000

HOURS PER WEEK

20

DATE UPDATED

Mar 2, 2026

JOB OVERVIEW

THE MISSION

You are the financial architect of the brand.

Your role is to ensure every dollar spent on Meta, TikTok, inventory, or 3PL logistics is accounted for, optimized, and producing a return. You will provide the financial “pulse” that allows leadership to scale aggressively with clarity and confidence.

Our goal is to maintain 100% financial transparency, protect a 35–40% Contribution Margin, and position the company for a $15M+ valuation.

KEY RESPONSIBILITIES
Daily & Monthly P&L Management

• Build and maintain a daily financial P&L (Net Revenue, COGS, Ad Spend, Contribution Margin)
• Monitor financial performance and identify margin fluctuations
• Detect and report money leaks (software waste, team inefficiencies, shipping overages)

3PL Audit & Logistics Analysis

• Weekly reconciliation of 3PL invoices vs Shopify raw data
• Identify billing errors, hidden fees, or overcharges
• Analyze shipping zones, weight classes, and fulfillment costs to protect margins

Inventory Forecasting & Cost Analysis

• Create 30 / 90 / 180-day forecasts aligned with growth and creative launch velocity
• Manage and optimize Cash Conversion Cycle (CCC)
• Support planning for large inventory runs: deposits, reorder timing, and cash allocation

Tax & Compliance (AU & US)

• Prepare and submit Australian BAS statements
• Assist with annual tax strategy and compliance (AU + US Sales Tax / Nexus)
• Ensure financial accuracy and audit readiness

REQUIRED EXPERIENCE

• 3+ years experience working with 8-figure DTC / e-commerce brands
• Advanced proficiency in:
Xero
Shopify (Advanced Reporting)
Google Sheets / Excel (financial modeling & dashboards)
• Strong analytical mindset — able to turn numbers into insights and recommendations
• Experience working with founders and scaling brands preferred

SAMPLE WEEKLY FLOW

Morning: Input Meta/TikTok spend + Shopify sales into Daily P&L
Tuesday: Audit 3PL fulfillment report vs Shopify order IDs
Friday: Present cash flow forecast highlighting upcoming inventory deposits
Quarterly: BAS preparation + US Sales Tax reconciliation

WHY JOIN BEAUTY SLEEP CLUB

• Fast-growing DTC brand with aggressive scaling roadmap
• Work directly with founders and leadership
• High ownership, strategic impact, and growth opportunity
• Flexible remote setup with long-term potential

HOW TO APPLY

Please include:
A short intro about your e-commerce finance experience
Tools you have mastered (Xero, Shopify reporting, forecasting, etc.)
Example of a financial dashboard or forecast you’ve built (screenshot or Loom preferred)

IMPORTANT: Start your application with the phrase “Financial Clarity Drives Growth” so we know you read the full post.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0651
Total Execution Time  0.0665
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,522,984 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/FRACTIONAL-CFO-ECOM-DATA-ANALYST-1590957
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0594 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1590957
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 592388
 LIMIT 1 
0.0435   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1590957
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1590957' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1590957 
0.0018   UPDATE employer_jobs SET hit_counts '***Mar-02-2026=282***Mar-03-2026=168***Mar-04-2026=71***Mar-05-2026=20***Mar-06-2026=8***Mar-07-2026=16***Mar-08-2026=10***Mar-09-2026=23***Mar-10-2026=13***Mar-11-2026=12***Mar-12-2026=10***Mar-13-2026=7***Mar-15-2026=7***Mar-16-2026=8***Mar-17-2026=6***Mar-18-2026=4***Mar-19-2026=9***Mar-20-2026=5***Mar-21-2026=6***Mar-22-2026=2***Mar-23-2026=3***Mar-24-2026=6***Mar-25-2026=3***Mar-26-2026=9***Mar-27-2026=5***Mar-28-2026=6***Mar-29-2026=1***Mar-30-2026=1***Mar-31-2026=6***Apr-01-2026=3***Apr-02-2026=2***Apr-04-2026=1***Apr-05-2026=5***Apr-06-2026=5***Apr-07-2026=6***Apr-08-2026=2***Apr-09-2026=3***Apr-10-2026=5***Apr-12-2026=4***Apr-13-2026=6***Apr-14-2026=22***Apr-15-2026=8***Apr-16-2026=3***Apr-17-2026=3***Apr-18-2026=4***Apr-19-2026=5***Apr-20-2026=7***Apr-21-2026=6***Apr-22-2026=4***Apr-23-2026=6***Apr-24-2026=4***Apr-26-2026=1***Apr-27-2026=3***Apr-28-2026=3***Apr-29-2026=3***Apr-30-2026=1***May-02-2026=4***May-03-2026=1***May-04-2026=6***May-05-2026=5***May-06-2026=6***May-08-2026=4***May-09-2026=1***May-10-2026=1***May-11-2026=3***May-13-2026=1***May-15-2026=3***May-16-2026=3***May-17-2026=3***May-18-2026=2***May-19-2026=4***May-20-2026=4***May-21-2026=3***May-22-2026=1***May-24-2026=5***May-25-2026=3***May-26-2026=1***May-27-2026=3***May-28-2026=2***May-30-2026=1***May-31-2026=2***Jun-01-2026=1***Jun-03-2026=2***Jun-04-2026=3***Jun-08-2026=6***Jun-09-2026=1***Jun-11-2026=1***Jun-14-2026=3***Jun-16-2026=1***Jun-17-2026=1***Jun-18-2026=1***Jun-20-2026=1' WHERE job_id'1590957'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Mar-2026=727***Apr-2026=125***May-2026=72***Jun-2026=21' WHERE job_id'1590957'  
0.0016   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1590957' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1590957 
0.0086   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '592388'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)