C & J Precision
Staff sign in
C & J Precision
Dashboard
0
Filament Low/Out
0
Overdue Jobs
0
Pending Quotes
0
Jobs Due This Week
$0.00
Quoted This Week
0
Awaiting Response
—
Next Zinc Batch
Needs Joel's Approval
Jobs Due Soonest
Current Jobs
Needs Reordering
Open Filament Tracker →From Filament Tracker's Re-order list - same tiers, same suggested quantities.
Nothing needs ordering right now.
🎉 Fun Facts
Pulled from your real job history - updates itself as you go.
3D Printing & CAD Quote Details
Add Item to Quote
Fill in one printed item and click Add Item to Quote. Repeat for each different item (material, size, complexity can all differ) - the Quote Summary on the right updates live as you go.
Shows on Pending Quotes and carries through to Current Jobs when sent.
Multiplies material cost only.
Adds % surcharge for failures/tuning.
Additional Custom Items
Quote Summary
Quoted Items
No items added yet - use Add Item to Quote above.
Items in this Quote
| Item | Weight × Qty | Print Time | Complexity | Action |
|---|
3D Scanning Quote Details
Add Item to Quote
Fill in one item to be scanned and click Add Item to Quote. Repeat for each different item - the Quote Summary on the right updates live as you go.
Shows on Pending Quotes and carries through to Current Jobs when sent.
Time spent scanning this item.
Cleanup, mesh repair, and preparing a print-ready file.
Fine detail, awkward geometry, fragile handling.
Additional Custom Items
Quote Summary
Quoted Items
No items added yet - use Add Item to Quote above.
Items in this Quote
| Item | Size × Qty | Processing Hrs | Post-Proc. Hrs | Complexity | Action |
|---|
Zinc Plating Quote Details
Item Batches
Add one batch per size/condition combination (e.g. 500g Small - Clean, then 6x Large - Medium Rust) - the Quote Summary on the right updates live as you go.
Shows on Pending Quotes and carries through to Current Jobs when sent.
Additional Custom Items
Quote Summary
Quoted Items
No batches added yet - use Item Batches above.
Items in this Batch
| Size | Amount | Condition | Action |
|---|
Log a Pending Quote
For a quote you're about to send out. Joel needs to approve it before it's marked ready to send.
From the customer's quote request email, if this came through the website - links this quote to their "Check Your Quote Status" page.
Awaiting Approval
Needs Joel to approve before it can go out.
Ready to Send (0)
Approved and waiting to actually go out to the customer - click Sent once it has.
Sent (Not yet accepted) (0)
Already sent to the customer - kept here for the record.
Active Jobs
Sorted by nearest deadline first.
Create Job Ticket
A workshop-floor ticket for a job that's been accepted - prints small for the label printer so it can be hung near the machine.
Parts / Items
From the customer's quote request email, if this came through the website - links this job to their "Check Your Quote Status" page.
3D Printing & CAD Job
Highlights this job with a blue outline in Active Jobs
Completed Jobs (0)
Customers
Matched by name across Pending Quotes and Current Jobs (neither stores an email address) - results may be incomplete if a customer's name was entered differently in different places.
Commercial Portal
Companies who can search their own name at the Commercial Portal (no account needed) to reorder catalog items or request a quote. Every company is built from the same three pieces below - add what a client needs, skip what they don't.
No companies yet - click Add Company to create the first one.
Add Company
Lowercase, no spaces. Can't be changed once created.
If set, customers are asked for it after picking this company. Blank = straight to the dashboard.
Catalog Items
Reorderable things - image, description, and either a fixed price (optionally dropping at quantity thresholds) or "Contact for quote" with no price shown. Each item can have its own option groups, like Colour or Hard Case.
Quote Forms
Zero or more named request forms, each its own ordered list of fields. Leave this empty for a catalog-only client - no "Request a Quote" section shows on their dashboard at all.
Reference Info
Sidebar content on the customer's dashboard - lead times, a colour palette, a design-slot queue, or a plain note.
What the customer sees, built live as you edit.
Marketing Contacts
0Everyone who ticked "Keep me updated" on a quote form. Export to CSV to import into Mailchimp, Klaviyo, Brevo, or any other email platform.
| Name | Service(s) | Last Quote |
|---|
No opted-in contacts yet.
Communication
Staff alerts and client-facing SMS templates in one place - what gets texted, when, and to who.
New SMS Messages
Replies to the Twilio number land here since it can't take calls - tap the number to call back from your own phone.
Message Templates
Create and save your own SMS templates - no names or personal details are included, just whatever you type below.
Pending Quote Alerts
Text Joel the moment a new quote lands in Pending Quotes and needs a price approved.
Notify via SMS
Only sends once a phone number is set below
Full international format (e.g. +614...) - required by the SMS provider.
Use {customer}, {service} and {price} to include those details.
Recent Activity
| Date | To | Message | Status |
|---|
No messages sent yet.
Machine & Labor Rates
Complexity & Margin
Build Materials
| Name | RRP | $/g | Action |
|---|
Support Materials
| Name | RRP | $/g | Action |
|---|
File-Based Quote Estimation
Drives the live weight/price estimate customers see when they upload a file. Global Assumptions set the fallback for every job; Size Tiers and Price Adjustment can override it per bracket. How this works →
Global Assumptions
Converts a file's real geometry into weight and print time - tune these if quotes consistently run high or low against what you actually print. How this works →
Interior infill only (walls are always solid)
Perimeters + top/bottom, e.g. 3 walls × 0.4mm
Average across your filaments
Sustained print speed
Travel, retraction, layer changes
Flat buffer on top of weight/time/price, to stay on the safe (over, not under) side
Auto-applied when the uploaded 3MF is detected as multi-color/AMS
Heat-up/leveling/purge time paid once per job on the website's Quantity field, not once per part - rough estimate (~15 min default), tune against real jobs
Usable print area, used to check if multiple cart parts could share one bed (see Combined-Bed Setup Savings below)
Usable print area, used the same way as Bed Width above
How much of the bed's raw area multiple parts may claim before being considered a fit - a rough footprint-area check, not true nesting, so this stays well under 100% to leave room for gaps/clearance (60% default)
How wide the low-high quote range shown to customers is when priced from a real uploaded file (18% default) - a Size Tier below can override this for its own bracket
Same, for a quote priced from a Size Tier's typical-part preset rather than real geometry (10% default, tighter since the tier is already a tuned assumption)
Faces steeper than this from vertical are flagged as needing support (45° default, matches typical slicer warnings)
Ignore trivially small overhangs below this total area, to avoid false positives from tiny details
Extra filament weight when supports are needed (75% default, from real support-on/off slice comparisons)
Extra print time when supports are needed (70% default, from real support-on/off slice comparisons)
Size Tiers (Dynamic CRUD)
Lets a specific size bracket override the Global Assumptions or Price Adjustment above - leave a field blank to inherit the global default. How this works →
| Size Name | Up To (g) | Hours | Fill % | Wall (mm) | Safety Margin % | Price Adj % | Range ±% | Action |
|---|
Per-Tier Live Preview
Live price range per tier, using its own Safety Margin/Price Adjustment (or the global default). How this works →
Price Adjustment
Scales the customer-facing file-upload estimate up or down - doesn't affect what staff actually quote. A tier's own Price Adj % overrides this rather than stacking with it. How this works →
Live Preview
Customer-facing estimate (file-upload quote)
Updates as you drag - takes effect once you hit Save All Settings below.
Use-Cases & Material Mappings (Dynamic CRUD)
Shows as "Preferred Material" on the customer 3D Print tab - each one is priced off whichever real material its Real Material dropdown is linked to. How this works →
| Use-Case Name | Material Search String | Real Material | Density (g/cm³) | Action |
|---|
Estimator Accuracy
Tracks quoted-vs-actual accuracy per tier and material as real jobs come in - never changes a setting on its own. How this works →
To auto-fill a result from the file: a plain "Save Project" in Bambu Studio does not embed the real weight/time, even after slicing - only File → Export → Export Plate Sliced File writes that into the file. Export that way and drop the result in below, or just type the numbers in manually either way.
Setting Diagnostics
Flags which setting might be worth reviewing based on real results (needs 5+ reconciled jobs per check) - never writes a value itself, tick off once handled. How this works →
Nothing to flag right now - either accuracy looks fine, or there isn't enough reconciled data per check yet.
Awaiting Real Result
Nothing waiting - every logged quote has been reconciled or dismissed.
Help & How This Works
The full explanation behind every "How this works →" link above, in one place instead of scattered under each field. Nothing here is a control - it's all read-only background.
File-Based Quote Estimation
When a customer uploads a real 3D file on the website, the quote tool computes weight and print time directly from the model's geometry instead of guessing from a size preset. The three sections feed that one calculation, from broadest to most specific: Global Assumptions are the fallback used for every job, Price Adjustment is a single dial that scales the final customer-facing number up or down, and Size Tiers let a specific bracket (Small/Medium/etc) override any of the global assumptions or the price dial once you have real data showing it needs to run differently - leave a tier's fields blank and it just inherits the global values.
Global Assumptions
Walls/top/bottom layers are treated as fully solid (estimated from the model's surface area × Wall Thickness) and only the remaining interior volume is scaled down by Assumed Fill - matching how a real slicer works, rather than shrinking the whole part by the infill %. There's no way to know a file's actual settings without slicing it, so treat these as tunable estimates and adjust them if quotes consistently run high or low against what you actually print (e.g. against Bambu Studio's own sliced weight). Real test files have shown this geometry-based model can miss in either direction depending on how thin/complex a part is - no single Wall Thickness/Fill combo fits every shape - so a flat Safety Margin is added on top of the whole estimate (weight, print time, and price together) to keep it biased toward overshooting rather than underselling a job. If the uploaded 3MF shows multiple filaments actually assigned to it (an AMS/multi-color print), a Multi Filament Print Surcharge is added on top of that. If the model's geometry has steep overhanging faces (same technique slicers use for their own overhang warnings), it likely needs printed supports and support interface material for a good finish, so a Support/Interface Surcharge is added to weight and print time, calibrated against real Bambu Studio support-on/off slices.
Size Tiers
Weight is still the bracket boundary a file-upload quote's raw estimate is matched against (smallest size whose Weight still covers it). The four right-hand columns let a size override the Global Assumptions and the Price Adjustment dial - useful because a single global Fill/Wall/Safety Margin combo can't fit both a thin, hollow part and a chunky solid one (real test files have overshot and undershot at the exact same global settings depending on shape). Leave any of them blank to inherit the global default shown in each column header - only fill in a size once you have a real slice to compare against, not as a guess.
Size Tiers - Per-Tier Live Preview
Each tier's own Up To (g)/Hours, adjusted by its own Safety Margin (or the global default) and priced with whichever Price Adjustment it resolves to - the same stand-in-job approach as the Price Adjustment preview, since there's no real uploaded file to read geometry from here. Fill %/Wall (mm) can't be previewed this way either - they only affect converting real mesh geometry into a weight, which this flat stand-in number never goes through. Updates as you edit a tier or drag the Price Adjustment dial; only takes effect for real once you hit Save All Settings.
Price Adjustment
A dial that scales the live estimate shown to customers who upload a 3D file (the website reads real weight/print time from their file). It does not affect the manual size-tier estimate for customers without a file, and does not affect this calculator's suggested quote, which always shows the true, unadjusted price. Use it to make the file-based up-front estimate read more conservatively without changing what staff actually quote. Negative lowers the customer estimate, positive raises it - and any size tier with its own Price Adj % set uses that instead of this dial, rather than stacking on top of it.
Use-Cases & Material Mappings
These show as "Preferred Material" on the customer-facing 3D Print tab instead of your real Build Materials list, since customers usually don't know exact filament specs. Real Material links each use-case to an actual entry in Build Materials above - that material's real cost (RRP ÷ Spool Size) is what customers are actually charged per gram, so there's one real cost instead of two numbers that can drift apart. Leave a use-case unlinked and it charges $0.00/g (flagged in the table so it doesn't go unnoticed). Density feeds the file-upload weight estimate specifically for that material (leave blank to use the global default in File-Based Quote Estimation).
Estimator Accuracy
Every online quote that used a real uploaded file logs its numbers here automatically the moment it's submitted - no file, just the quoted weight/time and which size tier priced it. Once a job's actually been printed, enter the real result to build a track record per tier and per material. This never changes any setting on its own - it only ever flags what's worth looking at, in the checklist below it, and you decide what (if anything) to do about it. To auto-fill a result from the file: a plain "Save Project" in Bambu Studio does not embed the real weight/time, even after slicing - only File → Export → Export Plate Sliced File writes that into the file.
Estimator Accuracy - Setting Diagnostics
Scans every reconciled job for patterns that point at a specific setting on this page - not just Safety Margin per tier, but Fill %/Wall (mm), Flow Rate/Overhead Multiplier, a specific material's Density, and Multi Filament Surcharge too. Each needs at least 5 reconciled jobs in the relevant group before it'll flag anything, so this fills in gradually as real results come in. It only ever names which setting looks worth a look and why - it never computes or writes a new value for you. Tick a row off once you've made a change (or decided not to) so it stops asking; unticking brings it back into view.
Design Rates
Used by the internal quote calculator (Standard/Commercial per job) and to build the customer-facing hourly rate shown on the CAD quote page.
Design, Prototype & Reverse Engineering Time Reference
Shown to customers on the CAD quote page as a rough guide to how long a project at each detail level tends to take - hours only, no price, since a project's exact price still depends on CAD Rate Standard/Commercial above. Doesn't affect any actual quote calculation.
| Detail Level | Min Hours | Max Hours |
|---|---|---|
| Basic Detail | ||
| Medium Detail | ||
| High Detail | ||
| Very Complex |
Scan Size Tiers
Min/Max Hours feed the customer-facing 3D Scanning tab's Scan Time Estimate box (styled like CAD's - no $ shown there). Purely a reference list now - the internal Scanning calculator prices by actual hours entered per job, not by size tier.
| Name | Min Hrs | Max Hrs | Action |
|---|
Processing Rate
Dual purpose: shown directly to customers as the Processing Rate in their Scan Time Estimate box, and charged internally against the actual Processing Hours entered per job in the Scanning calculator.
Complexity surcharges and Profit Margin are shared with the other calculators (see Complexity & Margin above).
Post-Processing Complexity Tiers
Min/Max Hours feed the customer-facing 3D Scanning tab's Scan Time Estimate box - the Post-Processing half, covering cleanup, mesh repair, and preparing a print-ready file. No $ shown to customers here either, same as the Size Tiers above.
| Complexity Tier | Min Hrs | Max Hrs | Action |
|---|
Post-Processing Rate
Shown directly to customers as the Post-Processing Rate in their Scan Time Estimate box. Priced separately from Processing above - covers cleanup, meshing, and preparing the model for 3D printing, not the scan itself.
Actual 3D printing a copy is quoted separately once the model is ready, using the 3D Printing on Demand calculator - it isn't part of either rate here.
Purpose of the Scan
Desired File Format
How We'll Receive the Item
Brand Colors — Light Mode
Paste a HEX code (or use the picker) for each element to match your website. Preview updates live; click Save All Settings to push it to the whole team, including the customer-facing quote tools. Pick a primary dark enough that white button/tab text stays readable. The quote tools' page background is transparent now (your website's own background shows through), so there's no page background color to set here anymore.
Buttons, active tab, focus rings, toggles. Used in both light and dark mode.
Header bar on each customer-facing quote page (3D Print, CAD, etc). This tool's own nav no longer uses it.
Panels like this one.
Page/section headings, light mode.
Secondary actions, e.g. "Choose 3D File", light mode.
Brand Colors — Dark Mode
Same idea, but for when visitors have dark mode toggled on. The primary/accent color above is shared by both modes.
Same, for dark mode on the quote pages.
Panels like this one.
Fixes headings blending into a light custom header/card color in dark mode.
Secondary actions, dark mode.
Sidebar Color (This Tool Only)
The left-hand navigation rail in this internal tool. Unlike the colors above, this is ONE fixed color used in both light and dark mode - it's meant to stand out as permanent chrome rather than blend with the page. Text color on the rail switches automatically between light and dark depending on how light or dark this color is, so it stays readable whatever you pick.
Delivery Options
Feeds the delivery dropdown on the CAD Design & Reverse Engineering tab in the customer-facing quote tool.
How Did You Hear About Us?
Feeds the referral-source dropdown on the CAD Design & Reverse Engineering tab in the customer-facing quote tool.
Preferred Colours
Feeds the colour dropdown on the CAD Design & Reverse Engineering tab in the customer-facing quote tool. Preferred Material there already pulls from the Build Materials list above.
Estimated Time Frames (Customer-Facing Landing Page)
Quotes is how long it takes you to get pricing back to a customer after they enquire. Every other field is how long the actual job takes once accepted. Zinc Plating isn't listed here - it shows its next batch date instead (see Zinc Plating Settings).
Google Reviews (Customer-Facing Landing Page)
There's no free way for the quote tool page to pull your live Google review score/count automatically, so update these two fields yourself whenever they change on your real Google Business Profile.
Capabilities Page (Customer-Facing Capabilities Page)
Feeds the spec figures shown on the Capabilities page (build volume, size limits, etc. per service). Free text - write whatever wording suits. 3D Printing's "Materials on hand" isn't set here - it lists live from the Build Materials table above instead, so it never drifts out of sync with what you actually stock.
3D Printing on Demand
CNC Machining
CAD Design & Reverse Engineering
3D Scanning Service
Zinc Plating Restoration
Service Availability (Customer-Facing Landing Page)
Turn a service off to hide it from new quote requests without deleting any settings - useful when a queue is full (e.g. too much CAD work on) and you only want to accept certain services for a while. Takes effect once you hit Save All Settings below.
3D Printing on Demand
Accepting new 3D print quote requests
3D Scanning Service
Accepting new 3D scanning quote requests
CAD Design & Reverse Engineering
Accepting new CAD design quote requests
CNC Machining
Accepting new CNC machining quote requests
Zinc Plating Restoration
Accepting new zinc plating quote requests
Website Ticker — Items (Capabilities Ticker)
Turn any of the built-in ticker lines off without touching the data behind them - useful if a line isn't relevant right now (e.g. hide Next Zinc Batch between scheduling rounds). Takes effect once you hit Save All Settings below. Custom text lines each have their own on/off switch in the table below instead.
Available Materials
Live list from Build Materials above
Multi-Colour / AMS Support
3D Printing on Demand capability line
Zinc Plating Finishes
From Capabilities Page > Zinc Plating Restoration
Next Zinc Batch
Soonest upcoming date from Batch Dates
3D Scanning Item Size Range
From Capabilities Page > 3D Scanning Service
CNC Machining Metals
From Capabilities Page > CNC Machining
CNC Other Stock
From Capabilities Page > CNC Machining
Workshop Location
"Chisholm, NSW — workshop pickup available"
Website Ticker — Custom Text (Capabilities Ticker)
Free-text lines for the scrolling ticker strip on the website, alongside the live materials/capabilities lines it already shows - sales, holiday closures, one-off notices. Shown in the order added; drag the grip to reorder. Toggle a line off to hide it without deleting it (e.g. a sale that's currently paused) - re-enable it later instead of retyping. Takes effect once you hit Save All Settings below.
Dashboard Fun Facts
Some fun facts can't be reconstructed from job history (older jobs predate the fields they sum) - set a one-time starting count here and every job counted from Firestore adds on top of it automatically, so you never need to update this again unless the starting figure itself was wrong.
Size Tiers & Pricing
Feeds both the internal Zinc calculator and the Part Size dropdown on the customer-facing Zinc Plating tab. Small is priced by weight by default - toggle any tier's unit between Per KG and Per Item as needed.
| Name | Price | Unit | Action |
|---|
Batch Dates (Customer-Facing Zinc Tab)
We only run zinc plating once or twice a month now, so customers pick which upcoming batch their job goes into instead of us processing everything one-off. Add every scheduled batch date here - the customer-facing tab shows the nearest one and requires picking one to submit a quote. Past dates are kept in the list (not auto-removed) so you can see history; remove them manually whenever you like.
Settings History
A record of who saved settings and when, with the pricing-relevant values at that point - so a mistyped rate can be traced back. Click an entry to see the values.
C & J Precision
Services Quote
Date:
Ref:
Project Overview
Items:
Batches:
Items:
| Description | Amount |
|---|---|
| Material Cost (Includes Qty Multiplier) | |
| Machine Time & Wear (Flat Fee) | |
| Labor & Post-Processing (Flat Fee) | |
| CAD Design Services (Flat Fee) | |
| Additional Items & Services (Flat Fee) | |
| Complexity Adjustment | |
| Items Base Cost (Small/Med/Large/XL/Bulk) | |
| Condition Processing Markup | |
| Additional Custom Items | |
| Base Setup & Processing Fee | |
| Processing Time | |
| Post-Processing Time | |
| Additional Items & Services (Flat Fee) | |
| Complexity Adjustment |
Thank you for choosing C & J Precision. This quote is valid for 30 days.