S
SpectraFit XPS
v2.4.6 한국어

The SpectraFit XPS User Guide

SpectraFit XPS is a professional-grade, browser-based analysis environment for X-ray Photoelectron Spectroscopy. It bridges the gap between lightweight data viewers and full-featured desktop software by pairing a high-precision fitting engine based on the Levenberg–Marquardt Algorithm (LMA) with a publication-quality graphics suite — all running entirely inside your browser, with nothing to install.

Open SpectraFit XPS →free · runs in your browser · nothing to install

Applies to app v2.4.6 · by Yongsup Park · quantitative XPS as a service at pesanalab.com

This page is regenerated from the repository at each release (v2.4.6). The continuously updated, editable edition lives in Google Docs.

0. Quickstart — from raw data to a figure in five steps

New to SpectraFit XPS? This is the whole workflow in miniature. Brackets link to the detailed section.

Figure 1 — The SpectraFit XPS workspace with PET loaded.

Figure 1 — The SpectraFit XPS workspace. Full application window with poly(ethylene terephthalate) (PET) loaded and the Survey tab active. Shows the region tab bar (Survey · C 1s · O 1s · C KVV · O KVV · Valence), the left sidebar (Run Fit / Add Peak, the BACKGROUND selector, and the COMPONENTS list), the central spectrum panel with the gold ROI handles, the lower residual panel, and the footer status bar (point count, line-shape, background type, RSE, and the auto-detected instrument = Scienta).

The header toolbar.

The header toolbar. Left to right: PESAnaLab and Guide links, Open / Import, Save / Export, Reset, the At% quantification panel, and the Plot (Publication Plotter) toggle.

  1. Load your data. Drag a file onto the window, or use Open. VAMAS (.vms), Excel, CSV/Text, and several vendor formats are supported. Multi-region and depth-profile files open as separate tabs/slices automatically. [→ §2]
  2. Set the region of interest (ROI). Drag the two gold handles to bracket your peak(s). Everything outside the shaded band is excluded from the fit. [→ §3]
  3. Choose a background. Pick Shirley (default for most core levels), Linear, Dynamic Shirley, or Tougaard. [→ §3.2]
  4. Add and position peaks. Add a peak, then drag its apex handle — horizontal = binding energy, vertical = height. Arrow keys give fine steps. Add spin–orbit partners with the Doublet icon. [→ §4]
  5. Fit and export. Click Run Fit. When the residual looks flat, open the Publication Plotter and export SVG for journals or PNG for slides. [→ §5, §7, §9]

Tip: a good fit shows a flat, structureless residual in the lower panel. Structured wiggles mean a missing or mis-shaped component.


1. Introduction: the SpectraFit XPS philosophy

Traditional XPS software often suffers from steep learning curves or outdated interfaces. SpectraFit XPS is built around three principles of interactive precision:


2. Data management & persistence

2.1 Multi-format import

SpectraFit XPS handles a wide range of scientific data formats:

The Open / Import dialog.

The Open / Import dialog (the upload icon in the header). Choose Local or Google Drive as the source, then Import Data (spectral files or .par parameter sets) or Open Project (.sfitx).

2.2 Modern file-system integration

Starting with v1.71, SpectraFit XPS uses the Web File System Access API:


3. Region of Interest (ROI) selection

Defining the ROI is the first step in any fit.

3.1 Selection mechanics

Figure 2 — ROI selection on the PET C 1s region.

Figure 2 — ROI selection on the PET C 1s region. The C 1s region with the two vertical gold ROI handles set by double-clicking at ≈ 293.5 eV and ≈ 281.8 eV, bracketing the C 1s envelope. Raw data only (dots) — no components yet — so only the spectrum and the region of interest are shown; everything outside the gold band is excluded from the fit.

3.2 Advanced background modeling

The background represents the inelastic-scattering contribution to the signal. Select a model from the background bar; the choice updates the fit in real time:

Figure 3 — Background-model selector (Shirley, Dynamic, Linear, Tougaard).

Figure 3 — Background-model selector. A close crop of the BACKGROUND control showing the four options — Shirley (highlighted), Dynamic, Linear, Tougaard.

Tougaard U2/U4 parameters in the sidebar.

Tougaard parameters. Selecting Tougaard reveals the B, C, C′, D fields and the one-click Universal Preset directly beneath the selector.


4. Peak fitting & constraints

Figure 4 — PET C 1s resolved into four chemical-state components.

Figure 4 — PET C 1s resolved into four chemical-state components. The headline fitting figure. White dots = raw data; blue line = sum-fit envelope; grey dashed = Shirley background; and four True-Voigt components —

  • ≈ 284.8 eV — C–C / C–H (aromatic ring + backbone carbons); the tallest peak, the Master, and the intensity reference.
  • ≈ 286.3 eV — C–O (ester single-bonded carbon, –O–CH₂–).
  • ≈ 288.7 eV — O–C=O (ester carbonyl carbon).
  • ≈ 291.4 eV — π→π* shake-up satellite (broad and weak; its widths were unlinked from the master so it can broaden independently).

Nominal area ratio C–C/H : C–O : O–C=O ≈ 3 : 1 : 1; the shake-up a few %. The slave FWHMs stay linked to the master (one shared width) and the residual panel is close to structureless (RSE ≈ 0.37). Binding energies are as-measured on this Scienta dataset — use Calibrate BE (§4.4) to place C–C/C–H exactly on the 284.8 eV charge reference if desired.

4.1 Peak architectures

Figure 5 — Spin–orbit doublet (synthetic Au 4f).

Figure 5 — Spin–orbit doublet: synthetic Au 4f. A clean illustration of spin–orbit splitting using the app's built-in synthetic Au 4f sample (it loads automatically when the app opens with no file). Two orange components — Au 4f₇/₂ at ≈ 84.0 eV and Au 4f₅/₂ at ≈ 87.7 eV — separated by the characteristic ≈ 3.7 eV spin–orbit splitting and held at the 4 : 3 area ratio (4f₇/₂ : 4f₅/₂) by the doublet rule. Blue = sum fit, grey dashed = Shirley background, black dots = raw data; rendered white-background in the Publication Plotter. On any real p/d/f peak, clicking the Doublet icon generates the partner automatically.

The same Au 4f doublet inside the fitting workspace.

The doublet in the workspace. The same synthetic Au 4f after Run Fit: the master card carries a dashed DBL row with the partner name, the ΔE spin–orbit separation, and the R intensity ratio — each with its own lock/unlock toggle (see also §4.1 "Doublets").

4.2 The Master Peak concept

The first peak in your list serves as the Master:

An expression constraint being edited.

Expression constraints. Clicking the fx toggle on a slave-peak parameter opens the purple expression field — here the C–O position is tied to the master with P1.pos + 1.6. The cyan chain icons on W-G / W-L show those widths are linked to the Master.

4.3 Interactive handles

You do not need to type numbers to find a good starting point.

A component card in the sidebar.

The component card. POS / HIGT / W-G / W-L sliders with numeric fields and per-parameter lock toggles; top-right are the whole-peak lock, delete, line-shape cycle (Voigt → DS → SGL), and Doublet buttons. Clicking HIGT toggles an AREA readout, and the dashed DBL row appears when a doublet is active.

4.4 BE calibration & peak-model templates

The Calibrate BE panel.

Calibrate BE (sidebar) applies a rigid binding-energy shift: pick a reference (C 1s 284.8 · C 1s NIST 284.6 · Au 4f₇/₂ · Ag 3d₅/₂ · Cu 2p₃/₂), type the position you actually measured, and Apply Shift — optionally to all regions of the sample at once.

The Templates panel with a saved model.

Templates saves the current multi-peak model for reuse (stored in the browser; export/import as .sftemp JSON) — here the four-component "PET C 1s" model from Figure 4, ready to load onto the next PET sample.


5. The optimization engine

5.1 Levenberg–Marquardt optimization

Click Run Fit to begin the iterative optimization. The engine computes the Jacobian of your model and steps through parameter space to minimize the Residual Standard Error (RSE).

5.2 Residual analysis

The residual plot at the bottom is the primary tool for validating a fit.

The live cursor readout.

The footer status bar.

The status rows. Hovering the chart fills the live readout (BE, raw counts, fit, background, residual, and each component's value at the cursor); the footer reports the ROI point count, line-shape, algorithm, background type, RSE, fit convergence, and the auto-detected instrument.


6. Navigation & zooming

6.1 Mouse-anchored zoom

6.2 Depth-profile slider

For samples with multiple etch levels, the Depth-Profile Slider at the top of the main area lets you navigate slices instantly. Use the ← / → arrow keys for rapid frame-by-frame comparison.

The depth-profile slider.

Depth-profile navigation. A multi-block VAMAS file (the same region measured at successive etch levels) opens with the emerald Depth Profile strip — here slice 4/6 of a synthetic O 1s profile, with its etch-time label, arrow steppers, and slider. (Demo file: sample_data/depth_profile_O1s.vms, regenerable with node scripts/gen_depth_profile_vms.mjs.)

6.3 The sample dashboard

The sample dashboard.

Dashboard view. The Dashboard breadcrumb lists every loaded sample on the left with its region and profile counts; the mosaic shows one mini-chart per region of the selected sample. Click any card to jump straight to that region's fitting view.


7. The Publication Plotter

The Publication Plotter is a dedicated design environment that turns your analysis into a figure ready for a high-impact journal.

Figure 6 — The Publication Plotter environment.

Figure 6 — The Publication Plotter. The Figure-4 fit rendered on a white canvas, with the design sidebar: canvas size and frame margins, axis ranges and fonts, raw-data symbol and line widths, the positionable legend, and text annotations. In this view the header actions become SVG and PNG export buttons.

The finished white-background figure.

The finished figure. Black filled circles = raw data, blue = sum fit, coloured lines = the four components, a reversed "Binding Energy (eV)" x-axis (high → low), an "Intensity (a.u.)" y-axis, and the legend moved clear of the peaks — the clean, light figure for slides and papers, replacing the dark in-app view.

7.1 Precision layout

7.2 Styling & annotations


8. Quantification

Quantification was introduced in v1.90-beta and substantially expanded in v2.0 by integrating components of KherveFitting (BSD-3-Clause, by Gwilherm Kerherve, Imperial College London).

Figure 7 — Quantification of Fomblin Y.

Figure 7 — Quantification of Fomblin Y (C, O, F). The Quantification panel over the fitted fomblin_y.vms regions, with Peak Name, BE, raw Area, RSF, ECF, At %, and Wt % beside the stoichiometry bar chart. The Scienta preset was auto-detected from the VAMAS header (blue banner), so RSF and ECF needed no manual setup. The fluorine-shifted C 1s (≈ 293.6 eV) is still correctly named "C 1s" from its VAMAS region label. With the Survey and Valence rows unchecked (they are not core-level regions), the three core-level rows give C 27.5 / O 9.9 / F 62.6 at % — the fluorine-dominated stoichiometry expected for this perfluoropolyether — and fluorine dominates the Wt % column even more strongly.

Note — automatic identification scope. Automatic peak labelling and survey auto-quantification identify only commonly-encountered elements, via their core photoelectron lines, and they trust an explicit VAMAS region label (so a fluorine-shifted C 1s is still named "C 1s", and a valence-band region is named "Valence" rather than a spurious element). For samples containing rarer elements, set the peak name by hand from the peak-name dropdown, which searches the full database. As always, confirm the Peak Name column before trusting At %.

The peak-name candidate dropdown.

Correcting an auto-label. Here the PET π→π* shake-up at ≈ 291.4 eV was auto-labelled "Ca LM2" (an Auger-line coincidence). Selecting the peak and clicking N more matches under its name opens the candidate list — each with its database binding energy — for a one-click correction; or simply type any name by hand.

8.1 Quantification engine

8.2 Instrument auto-detection

The RSF/ECF compatibility warning.

Compatibility warning. Combining the Scienta RSF set (which already includes the instrument transmission) with a TPP-2M ECF would double-correct — the amber banner names the conflict and the fix.

8.3 Survey auto-quantification

Wide-scan (survey) spectra are detected automatically when the BE range exceeds 500 eV. Clicking "Auto-Quantify Survey" in the status bar runs peak detection, element identification against the XPS database, and a quick At % calculation — all without performing a peak fit.

Survey auto-quantification of PET.

Survey auto-quantification. One click on Auto-Quantify Survey (amber, in the footer) reports C 1s 70.1 % / O 1s 29.9 % for the PET survey — matching the C₁₀H₈O₄ repeat unit (nominal 71 : 29 for C and O). See the v2.4.4 release notes for current reliability limits on complex multi-element samples.


9. Exporting & reporting

9.1 Graphic formats

9.2 Data export

The Save & Export dialog.

Save & Export (the blue save icon in the header). Save Project writes the full .sfitx workspace; Export Data offers Excel, Text (.fit), Params (.par), SVG, PNG, and VAMAS — saved to local disk or Google Drive.


10. Quick reference

Action Shortcut / gesture
Set / adjust ROI Drag the gold handles, or double-click to move the nearest ROI edge
Reset view Double-click the chart (resets Y-zoom and snaps the nearest ROI edge to the cursor)
Zoom in / out Mouse wheel (anchored to the pointer)
Reset Y-zoom only Reset Zoom button, upper-left of the plot
Add a peak Click in the spectrum / use the add-peak control
Move a peak Drag its apex handle (horizontal = position, vertical = height)
Fine-tune a peak Select it, then use the arrow keys
Link a peak to the Master Click the Link (chain) icon on the slave peak
Add spin–orbit partner Click the Doublet icon
Run the fit Run Fit button
Accelerate the fit Ctrl + F (Fast Math toggle)
Undo / Redo Ctrl + Z / Ctrl + Shift + Z (50-step history)
Navigate depth-profile slices ← / → arrow keys (or the slice slider)
Calibrate binding energy Calibrate BE button in the sidebar

The first peak in the list is always the Master; linked slaves move with it.


11. Troubleshooting & FAQ

Google Drive shows an "unverified app" warning when I connect. Expected — Google verification can take weeks to months for small projects. The app only accesses files you explicitly open or save, and your data stays in your browser. If you'd rather not grant access, use local files; everything works identically.

My quantification doesn't match my instrument's software. Quantification is published as beta. Confirm the instrument preset (RSF + ECF

My file won't import. Supported formats are VAMAS (.vms), Excel (.xlsx/.xls), Text/CSV, XPS ASCII (.asc), MRS (.mrs), and VG-Microtech (.1). For anything else, export a VAMAS file from your instrument software — the most reliable interchange format. Two-column text must be Binding Energy then Counts.

Which line shape should I use? Voigt for most core levels, Doniach–Sunjic (DS) for metallic peaks with a high-BE asymmetric tail, SGL for CasaXPS-style Gaussian–Lorentzian mixing (the MIX ratio is held fixed during the fit).

My residual has structure / the fit looks off. A sound fit yields a flat, noise-only residual. Structured residuals usually mean a missing component, the wrong line shape, or a background that doesn't match the region — try Tougaard for wide scans, or add/adjust a peak.

Depth-profile .fit export only saved the current slice. Known limitation — the .fit export captures the active window/slice. Use a project (.sfitx) file to preserve the full multi-slice session.


12. Privacy & about

SpectraFit XPS runs entirely in your browser, and your spectral data is never transmitted — fitting, quantification, and export all happen locally. The app collects only anonymous usage statistics (which features and file formats are used, e.g. a download or import event) to guide development; these contain no spectral data and no personal information. If you prefer not to connect Google Drive, simply work from local files instead.

Need quantitative XPS analysis as a service? SpectraFit XPS is a free tool for your own fitting. For full sample characterization, depth profiling, and reporting by specialists, see pesanalab.com.


Release Notes

Ver 2.4.6 — 2026 / 09 / 15

Ver 2.4.5 — 2026 / 08 / 14

Ver 2.4.4 — 2026 / 06 / 21

Ver 2.4.3 — 2026 / 06 / 21

Ver 2.4.2 — 2026 / 06 / 21

Ver 2.4.1 — 2026 / 06 / 21

Ver 2.4.0 — 2026 / 06 / 21

Ver 2.3.0 — 2026 / 04 / 10

Ver 2.2.0 — 2026 / 04 / 09

Ver 2.1.0 – 2.1.2 — 2026 / 04 / 09

Ver 2.0.0 — 2026 / 04 / 08

Ver 1.90-beta — 2026 / 03 / 06

Ver 1.84 — 2026 / 02 / 08

Ver 1.83 — 2026 / 01 / 29

Ver 1.82 / 1.80 — 2026 / 01 / 10

Ver 1.72 — 2026 / 01 / 06

Ver 1.71 — 2026 / 01 / 05

Ver 1.7 — 2026 / 01 / 04

Ver 1.67 — 2026 / 01 / 03

Ver 1.64 — 2026 / 01 / 02

Ver 1.6 — 2026 / 01 / 01

Ver 1.54 — 2025 / 12 / 31

Ver 1.5 — 2025 / 12 / 27

Ver 1.4 and earlier