Pivot Tables
Dictionary-driven pivot tables for any survey sheet. Upload responses and a dictionary, review columns, and export Excel/Word.
Dictionary-driven pivot tables for any survey sheet. Upload responses and a dictionary, review columns, and export Excel/Word.
Foundational structure for term definition and categorical tagging. Optimized for rapid ingestion.
Map header row labels from a dataset using a dictionary or JSON. Supports custom dictionaries and multi-source mapping.
Home · History
Select a project to open its profiles, or create a new project.
No projects yet. Create your first one to get started.
Before a new server version, Export. After deploy, Import to keep history, tables, and settings.
Compare a target sheet with profile results. Generate or view saved summaries.
Upload a file or enter targets manually.
Format: Name, number — one target per line. Example:
Duki, 30 Harnai, 14 Jaffarabad, 104 Lasbela, 73 Quetta, 8
Choose a profile, pick its run, then add. Add more rows for more profiles.
Summary (editable — includes Pending & Total)
Add this summary to profile downloads
Choose which comparison(s) to include — not all. Adds a Summary sheet to that run’s Excel and/or a Word file.
Click a tab to view that summary only.
Summary
Add this summary to profile downloads
Choose which comparison(s) — not all.
Replace responses for this run. Profile dictionary stays the same. Check duplicates, then update.
Uses this profile’s dictionary only.
Check for duplicates
Same as the main workflow — columns from this profile’s dictionary only.
| # | Value | Count | Excel row numbers |
|---|
Full workbook or selected tables/sections. Excel options below apply to every Excel download.
Workbook options
A project groups related profiles (e.g. one survey programme).
Profiles can only be created inside a project. The current project is fixed; profile name is optional.
Select 2 or more runs from this profile. Their datasets are compared side by side (auto quarterly trend). You can rename each column header.
Choose your grouping column before generating.
Only runs with a saved dataset can be compared.
Choose what to export.
Where should the imported profiles go?
Generation · Projects · History insights
A live snapshot of how this server has been used — projects, profiles, generated tables, and recent activity. Filter by project to focus on one programme.
No usage history yet. Generate your first set of tables from a project profile to populate this dashboard.
Tables generated last 7 days
Daily volume of pivot tables saved to history (main + quarter). Quiet days show as empty bars.
Runs by type all‑time
Main results vs quarter-compare runs stored in history.
Section usage checklist groups
How often each section (ID, FMI, BI, …) appears across generated workbooks.
Top profiles by tables produced
Profiles that have generated the most pivot tables. Click a name to open its history.
Projects workload share
Tables and runs grouped by project. Useful when several programmes share one server.
This browser session live workspace
What you have open right now — not yet necessarily saved as a new history run.
Tables per section
Calc modes in use
Recent activity
Latest history runs. Open any row to reload those exact tables (Calc and % toggles work when responses were saved).
| When | Project | Profile | Output | Type | Tables | Sections |
|---|
No runs to show yet.
Stats come from history.db on this server (shared by all visitors). Data Fusion is not counted. Export profiles before a deploy if you need to keep history.
Saved runs for this profile — view results, rename, or delete. Newest first.
← Back to profiles · All projects / Project / Runs
Upload a new Responses dataset only. This profile’s dictionary, keep/drop choices, aggregations, and base columns are reused automatically. Tables are generated and saved to history as soon as the file is ready.
Defaults to the profile name. You can change it before generating.
Dataset
Rows of every table are grouped by this column (e.g. District). Choose “Saved profile settings” to reuse the base columns stored on this profile.
Uses this profile dictionary. Fetch submissions, then generate.
Check for duplicates
Saved profile columns are checked automatically when available. You can change the selection if needed.
| # | Value | Count | Excel row numbers |
|---|
This history run has no saved responses file. Upload the original dataset workbook once so Calc, row drilldown, and Save to dataset work.
Select an item to open that table. Keep or undo individual edits, or apply everything to this run.
You have edits on this run (calculations, moves, or removals). Review them one by one, or keep or discard everything before you leave.
Step 1/4Upload workbooks
Step 1 · Setup
Choose how to load the responses dataset, then add the Dictionary. Tables are built from both.
Dataset
Select Manual upload or Fetch through API to continue.
Fetch responses from ODK Central / API
Pull submissions via OData — no Excel download needed
How to connect ODK Central
…/v1/projects/…/forms/….svc).Saved API connections
No saved connections yet.
Full path required. .svc root is OK — /Submissions is added automatically.
Same credentials as ODK Central login.
Dictionary (required after fetch)
Files stay on this server only for your session and are used solely to build your tables.
← Back to history · Manual quarterly trend analysis
Optional. Uses the same dictionary from step 1. Upload response files (one per period), rename column headers if you like, then generate side-by-side comparison tables. Does not change your main single-file tables or download.
No file
No file
No file
No file
No file
No file
No file
No file
No file
No file
All quarter files must contain this column.
Upload any combination of quarters (1–10). Main single-file workflow is unchanged.
Side-by-side tables from selected history runs.
Integrated comparison tables
← Back to history · Comparison
Step 2 · Data quality
Choose which column(s) should be unique, or scan the entire row. If duplicates are found, processing stops until you upload a clean responses file. Metadata is limited to what you need to locate the rows in the original sheet.
Pick one or more columns (checkboxes). Labels come from the dictionary when available. Or use Skip checking to continue without a duplicate check.
| # | Value | Count | Excel row numbers |
|---|
Step 3 · Classification
Every column was sorted by whether the Dictionary defines choice options for it — not by fixed positions, so this works the same on any dataset + dictionary pair with this structure. Use the → Keep / → Drop buttons to move any column between the two lists before continuing.
Step 4 · Configuration
Every table groups its rows by one column of your choosing — any column from the uploaded sheet, not just a detected anchor. Pick it manually; there's no default. Use one base column for the whole batch, or set it individually per table.
Step 5 · Aggregation
Pick the calculation each kept column's pivot table uses. Numeric columns can use Sum, Average, Count, Max, or Min; everything else counts responses.
Step 6 · Complete
—
— tables built
Quarter compare (manual or auto) is available from the profile History page — not in this wizard.
← Back to history · Data Fusion
Upload any number of roster / repeat-group sheets (CSV or Excel). Each file becomes a column group in one combined table. Rows are joined to the main survey via PARENT_KEY → KEY using the base column you choose below. Metrics (Total, yes/no flags, sums) are auto-detected from each sheet’s columns.
No sheets yet — click + Add sheet to upload.
Complete steps 1–4 first so the main survey KEY and base column are available for joining.
Table 1 of 11